From d1f10447c62477d911ba0aacf685e96e8ba80e1e Mon Sep 17 00:00:00 2001 From: DerLinkman Date: Tue, 16 Jan 2024 10:16:53 +0000 Subject: [PATCH] deploy: e44f5f6612731e1f1382a87f41b48464c2b1dd5e --- 404.html | 237 +--------- categories/beta/index.html | 231 +--------- categories/beta/index.xml | 8 +- categories/beta/page/1/index.html | 12 +- categories/cve/index.html | 8 + categories/cve/index.xml | 6 +- categories/cve/page/1/index.html | 2 + categories/documentation/index.html | 229 +--------- categories/documentation/index.xml | 2 +- categories/documentation/page/1/index.html | 12 +- categories/guides/index.html | 8 + categories/guides/index.xml | 2 +- categories/guides/page/1/index.html | 2 + categories/hotfix/index.html | 239 +--------- categories/hotfix/index.xml | 26 +- categories/hotfix/page/1/index.html | 12 +- categories/index.html | 312 +------------ categories/index.xml | 2 +- categories/information/index.html | 8 + categories/information/index.xml | 6 +- categories/information/page/1/index.html | 2 + categories/news/index.html | 15 + categories/news/index.xml | 28 +- categories/news/page/1/index.html | 2 + categories/nightly/index.html | 231 +--------- categories/nightly/index.xml | 8 +- categories/nightly/page/1/index.html | 12 +- categories/security-advisories/index.html | 8 + categories/security-advisories/index.xml | 6 +- .../security-advisories/page/1/index.html | 2 + categories/security/index.html | 234 +--------- categories/security/index.xml | 14 +- categories/security/page/1/index.html | 12 +- categories/social-media/index.html | 231 +--------- categories/social-media/index.xml | 4 +- categories/social-media/page/1/index.html | 12 +- categories/status/index.html | 8 + categories/status/index.xml | 6 +- categories/status/page/1/index.html | 2 + categories/updates/index.html | 288 ++---------- categories/updates/index.xml | 182 +++----- categories/updates/page/1/index.html | 12 +- categories/updates/page/2/index.html | 16 + categories/whats-up/index.html | 8 + categories/whats-up/index.xml | 2 +- categories/whats-up/page/1/index.html | 2 + css/style.min.css | 2 +- css/style.min.css.map | 96 ++-- de/404.html | 237 +--------- de/categories/beta/index.html | 231 +--------- de/categories/beta/index.xml | 2 +- de/categories/beta/page/1/index.html | 12 +- de/categories/cve/index.html | 8 + de/categories/cve/index.xml | 6 +- de/categories/cve/page/1/index.html | 2 + de/categories/dokumentation/index.html | 229 +--------- de/categories/dokumentation/index.xml | 2 +- de/categories/dokumentation/page/1/index.html | 12 +- de/categories/guides/index.html | 8 + de/categories/guides/index.xml | 2 +- de/categories/guides/page/1/index.html | 2 + de/categories/hinweis/index.html | 8 + de/categories/hinweis/index.xml | 6 +- de/categories/hinweis/page/1/index.html | 2 + de/categories/hotfix/index.html | 239 +--------- de/categories/hotfix/index.xml | 24 +- de/categories/hotfix/page/1/index.html | 12 +- de/categories/index.html | 312 +------------ de/categories/index.xml | 2 +- de/categories/news/index.html | 14 + de/categories/news/index.xml | 26 +- de/categories/news/page/1/index.html | 2 + de/categories/nightly/index.html | 231 +--------- de/categories/nightly/index.xml | 2 +- de/categories/nightly/page/1/index.html | 12 +- de/categories/sicherheit/index.html | 234 +--------- de/categories/sicherheit/index.xml | 14 +- de/categories/sicherheit/page/1/index.html | 12 +- de/categories/sicherheitshinweise/index.html | 8 + de/categories/sicherheitshinweise/index.xml | 6 +- .../sicherheitshinweise/page/1/index.html | 2 + de/categories/social-media/index.html | 231 +--------- de/categories/social-media/index.xml | 2 +- de/categories/social-media/page/1/index.html | 12 +- de/categories/status/index.html | 8 + de/categories/status/index.xml | 6 +- de/categories/status/page/1/index.html | 2 + de/categories/updates/index.html | 288 ++---------- de/categories/updates/index.xml | 178 +++----- de/categories/updates/page/1/index.html | 12 +- de/categories/updates/page/2/index.html | 16 + de/categories/wie-schauts-aus/index.html | 8 + de/categories/wie-schauts-aus/index.xml | 2 +- .../wie-schauts-aus/page/1/index.html | 2 + de/imprint/index.html | 273 +---------- de/index.html | 426 ++---------------- de/index.xml | 256 ++--------- de/page/1/index.html | 12 +- de/page/2/index.html | 410 ++--------------- de/page/3/index.html | 355 ++------------- de/page/4/index.html | 59 +++ de/page/5/index.html | 59 +++ de/page/6/index.html | 19 + de/policy/index.html | 359 +-------------- de/posts/2021/heise_ct_10-2021/index.html | 303 +------------ de/posts/2021/log4j-dec2021/index.html | 309 +------------ .../2021/mailcow_housing_external/index.html | 304 +------------ de/posts/2021/mooctober2021/index.html | 299 +----------- de/posts/2021/moore_october21/index.html | 306 +------------ de/posts/2021/moovember2021/index.html | 392 +--------------- .../2021/rspamd_memleak_sep2021/index.html | 306 +------------ de/posts/2022/2022-04-info/index.html | 306 +------------ .../de-youtube-raspberrypicloud/index.html | 316 +------------ de/posts/2022/docs-update-2.0/index.html | 312 +------------ de/posts/2022/mailcow-feat-alpine/index.html | 24 + de/posts/2022/mailcow-twitter/index.html | 308 +------------ de/posts/2022/nightly-tests-bs5/index.html | 322 +------------ de/posts/2022/our-new-demos/index.html | 325 +------------ de/posts/2022/release-2022-01/index.html | 342 +------------- de/posts/2022/release-2022-01a/index.html | 337 +------------- de/posts/2022/release-2022-03/index.html | 331 +------------- de/posts/2022/release-2022-03a/index.html | 319 +------------ de/posts/2022/release-2022-04/index.html | 350 +------------- de/posts/2022/release-2022-05/index.html | 400 +--------------- de/posts/2022/release-2022-05d/index.html | 310 +------------ de/posts/2022/release-2022-06/index.html | 359 +-------------- de/posts/2022/release-2022-07/index.html | 367 +-------------- de/posts/2022/release-2022-07a/index.html | 318 +------------ de/posts/2022/release-2022-08/index.html | 367 +-------------- de/posts/2022/release-2022-08b/index.html | 313 +------------ de/posts/2022/release-2022-09/index.html | 30 ++ de/posts/2022/release-2022-10/index.html | 14 + de/posts/2022/release-2022-10a/index.html | 18 + de/posts/2022/release-2022-11a/index.html | 27 ++ de/posts/2022/release-2022-12/index.html | 24 + de/posts/2022/welcome-new-blog/index.html | 323 +------------ de/posts/2023/arm64-announcement/index.html | 18 + de/posts/2023/arm64-delay/index.html | 19 + de/posts/2023/arm64-open-beta/index.html | 18 + de/posts/2023/cve-2023-34108/index.html | 18 + de/posts/2023/ldap-announcement/index.html | 22 + de/posts/2023/letters-mystery/index.html | 21 + de/posts/2023/mailcow-idp/index.html | 65 +++ de/posts/2023/release-2023-01/index.html | 27 ++ de/posts/2023/release-2023-04/index.html | 32 ++ de/posts/2023/release-2023-05/index.html | 23 + de/posts/2023/release-2023-05a/index.html | 19 + de/posts/2023/release-2023-07/index.html | 22 + de/posts/2023/release-2023-08/index.html | 31 ++ de/posts/2023/release-2023-09/index.html | 27 ++ de/posts/2023/release-2023-10/index.html | 55 +++ de/posts/2023/release-2023-11/index.html | 95 ++++ de/posts/2023/release-2023-12/index.html | 63 +++ .../2023/spamhaus-dnsblocklist/index.html | 19 + de/posts/index.html | 316 ++----------- de/posts/index.xml | 241 +++------- de/posts/page/1/index.html | 12 +- de/posts/page/2/index.html | 275 ++--------- de/posts/page/3/index.html | 18 + de/posts/whats-up-arm64/index.html | 25 + de/sitemap.xml | 2 +- de/tags/2021/index.html | 255 +---------- de/tags/2021/index.xml | 14 +- de/tags/2021/page/1/index.html | 12 +- de/tags/2022/index.html | 294 ++---------- de/tags/2022/index.xml | 80 +--- de/tags/2022/page/1/index.html | 12 +- de/tags/2022/page/2/index.html | 8 + de/tags/2023/index.html | 26 ++ de/tags/2023/index.xml | 135 +++--- de/tags/2023/page/1/index.html | 2 + de/tags/alpine/index.html | 8 + de/tags/alpine/index.xml | 2 +- de/tags/alpine/page/1/index.html | 2 + de/tags/arm64/index.html | 12 + de/tags/arm64/index.xml | 18 +- de/tags/arm64/page/1/index.html | 2 + de/tags/authentik/index.html | 8 + de/tags/authentik/index.xml | 2 +- de/tags/authentik/page/1/index.html | 2 + de/tags/bugfix/index.html | 278 +----------- de/tags/bugfix/index.xml | 54 +-- de/tags/bugfix/page/1/index.html | 12 +- de/tags/challenge/index.html | 8 + de/tags/challenge/index.xml | 6 +- de/tags/challenge/page/1/index.html | 2 + de/tags/changelog/index.html | 282 ++---------- de/tags/changelog/index.xml | 170 +++---- de/tags/changelog/page/1/index.html | 12 +- de/tags/changelog/page/2/index.html | 14 + de/tags/community/index.html | 8 + de/tags/community/index.xml | 6 +- de/tags/community/page/1/index.html | 2 + de/tags/cors/index.html | 8 + de/tags/cors/index.xml | 2 +- de/tags/cors/page/1/index.html | 2 + de/tags/cve/index.html | 8 + de/tags/cve/index.xml | 6 +- de/tags/cve/page/1/index.html | 2 + de/tags/dnsbl/index.html | 9 + de/tags/dnsbl/index.xml | 4 +- de/tags/dnsbl/page/1/index.html | 2 + de/tags/doku/index.html | 229 +--------- de/tags/doku/index.xml | 2 +- de/tags/doku/page/1/index.html | 12 +- de/tags/dqs/index.html | 8 + de/tags/dqs/index.xml | 2 +- de/tags/dqs/page/1/index.html | 2 + de/tags/empfehlungen/index.html | 229 +--------- de/tags/empfehlungen/index.xml | 2 +- de/tags/empfehlungen/page/1/index.html | 12 +- de/tags/faq/index.html | 8 + de/tags/faq/index.xml | 2 +- de/tags/faq/page/1/index.html | 2 + de/tags/feedback/index.html | 231 +--------- de/tags/feedback/index.xml | 2 +- de/tags/feedback/page/1/index.html | 12 +- de/tags/hotfix/index.html | 238 +--------- de/tags/hotfix/index.xml | 12 +- de/tags/hotfix/page/1/index.html | 12 +- de/tags/identity-provider/index.html | 8 + de/tags/identity-provider/index.xml | 2 +- de/tags/identity-provider/page/1/index.html | 2 + de/tags/index.html | 228 +--------- de/tags/index.xml | 2 +- de/tags/info/index.html | 8 + de/tags/info/index.xml | 6 +- de/tags/info/page/1/index.html | 2 + de/tags/installation/index.html | 8 + de/tags/installation/index.xml | 2 +- de/tags/installation/page/1/index.html | 2 + de/tags/keycloak/index.html | 8 + de/tags/keycloak/index.xml | 2 +- de/tags/keycloak/page/1/index.html | 2 + de/tags/ldap/index.html | 9 + de/tags/ldap/index.xml | 8 +- de/tags/ldap/page/1/index.html | 2 + de/tags/log4j/index.html | 231 +--------- de/tags/log4j/index.xml | 2 +- de/tags/log4j/page/1/index.html | 12 +- de/tags/memoryleak/index.html | 231 +--------- de/tags/memoryleak/index.xml | 2 +- de/tags/memoryleak/page/1/index.html | 12 +- de/tags/news/index.html | 8 + de/tags/news/index.xml | 2 +- de/tags/news/page/1/index.html | 2 + de/tags/nightly/index.html | 232 +--------- de/tags/nightly/index.xml | 4 +- de/tags/nightly/page/1/index.html | 12 +- de/tags/oidc/index.html | 8 + de/tags/oidc/index.xml | 2 +- de/tags/oidc/page/1/index.html | 2 + de/tags/performance/index.html | 8 + de/tags/performance/index.xml | 2 +- de/tags/performance/page/1/index.html | 2 + de/tags/recommendations/index.html | 231 +--------- de/tags/recommendations/index.xml | 2 +- de/tags/recommendations/page/1/index.html | 12 +- de/tags/security/index.html | 231 +--------- de/tags/security/index.xml | 2 +- de/tags/security/page/1/index.html | 12 +- de/tags/sicherheit/index.html | 9 + de/tags/sicherheit/index.xml | 10 +- de/tags/sicherheit/page/1/index.html | 2 + de/tags/single-sign-on/index.html | 8 + de/tags/single-sign-on/index.xml | 2 +- de/tags/single-sign-on/page/1/index.html | 2 + de/tags/social-media/index.html | 231 +--------- de/tags/social-media/index.xml | 2 +- de/tags/social-media/page/1/index.html | 12 +- de/tags/sogo/index.html | 8 + de/tags/sogo/index.xml | 2 +- de/tags/sogo/page/1/index.html | 2 + de/tags/spamhaus/index.html | 9 + de/tags/spamhaus/index.xml | 4 +- de/tags/spamhaus/page/1/index.html | 2 + de/tags/sso/index.html | 8 + de/tags/sso/index.xml | 2 +- de/tags/sso/page/1/index.html | 2 + de/tags/status/index.html | 8 + de/tags/status/index.xml | 2 +- de/tags/status/page/1/index.html | 2 + de/tags/testing/index.html | 231 +--------- de/tags/testing/index.xml | 2 +- de/tags/testing/page/1/index.html | 12 +- de/tags/tutorial/index.html | 8 + de/tags/tutorial/index.xml | 2 +- de/tags/tutorial/page/1/index.html | 2 + de/tags/update/index.html | 288 ++---------- de/tags/update/index.xml | 177 +++----- de/tags/update/page/1/index.html | 12 +- de/tags/update/page/2/index.html | 16 + de/tags/wichtig/index.html | 236 +--------- de/tags/wichtig/index.xml | 22 +- de/tags/wichtig/page/1/index.html | 12 +- "de/tags/\303\244nderungen/index.html" | 229 +--------- "de/tags/\303\244nderungen/index.xml" | 2 +- "de/tags/\303\244nderungen/page/1/index.html" | 12 +- en/sitemap.xml | 2 +- images/fixit.min.svg | 1 + images/hugo.min.svg | 1 + images/loading.min.svg | 1 + imprint/index.html | 281 +----------- index.html | 425 ++--------------- index.xml | 246 ++-------- js/theme.min.js | 5 +- lib/fontawesome-free/all.min.css | 9 +- lib/katex/katex.min.css | 2 +- lib/katex/katex.min.js | 2 +- lib/katex/mhchem.min.js | 2 +- .../css/lightgallery-bundle.min.css | 1 + lib/lightgallery/lightgallery.min.js | 8 + .../plugins/thumbnail/lg-thumbnail.min.js | 8 + lib/lightgallery/plugins/zoom/lg-zoom.min.js | 8 + lib/webfonts/fa-brands-400.ttf | Bin 181852 -> 189684 bytes lib/webfonts/fa-brands-400.woff2 | Bin 105536 -> 109808 bytes lib/webfonts/fa-regular-400.ttf | Bin 60520 -> 63348 bytes lib/webfonts/fa-regular-400.woff2 | Bin 23940 -> 24488 bytes lib/webfonts/fa-solid-900.ttf | Bin 388460 -> 394668 bytes lib/webfonts/fa-solid-900.woff2 | Bin 154228 -> 150020 bytes lib/webfonts/fa-v4compatibility.ttf | Bin 10556 -> 10172 bytes lib/webfonts/fa-v4compatibility.woff2 | Bin 4960 -> 4568 bytes page/1/index.html | 12 +- page/2/index.html | 400 ++-------------- page/3/index.html | 334 ++------------ page/4/index.html | 61 +++ page/5/index.html | 51 +++ policy/index.html | 359 +-------------- posts/2021/log4j-dec2021/index.html | 309 +------------ posts/2021/mooctober2021/index.html | 299 +----------- posts/2021/moore_october21/index.html | 306 +------------ posts/2021/moovember2021/index.html | 390 +--------------- posts/2021/rspamd_memleak_sep2021/index.html | 306 +------------ posts/2021/xubium_recommend/index.html | 311 +------------ posts/2022/2022-04-info/index.html | 306 +------------ posts/2022/docs-update-2.0/index.html | 313 +------------ posts/2022/mailcow-feat-alpine/index.html | 22 + posts/2022/mailcow-twitter/index.html | 308 +------------ posts/2022/nightly-tests-bs5/index.html | 321 +------------ posts/2022/our-new-demos/index.html | 325 +------------ posts/2022/release-2022-01/index.html | 342 +------------- posts/2022/release-2022-01a/index.html | 345 +------------- posts/2022/release-2022-03/index.html | 355 +-------------- posts/2022/release-2022-03a/index.html | 319 +------------ posts/2022/release-2022-04/index.html | 350 +------------- posts/2022/release-2022-05/index.html | 400 +--------------- posts/2022/release-2022-05d/index.html | 309 +------------ posts/2022/release-2022-06/index.html | 360 +-------------- posts/2022/release-2022-07/index.html | 367 +-------------- posts/2022/release-2022-07a/index.html | 318 +------------ posts/2022/release-2022-08/index.html | 366 +-------------- posts/2022/release-2022-08b/index.html | 313 +------------ posts/2022/release-2022-09/index.html | 30 ++ posts/2022/release-2022-10/index.html | 14 + posts/2022/release-2022-10a/index.html | 23 + posts/2022/release-2022-11a/index.html | 27 ++ posts/2022/release-2022-12/index.html | 24 + posts/2022/welcome-new-blog/index.html | 323 +------------ posts/2023/arm64-announcement/index.html | 18 + posts/2023/arm64-delay/index.html | 19 + posts/2023/arm64-open-beta/index.html | 18 + posts/2023/cve-2023-34108/index.html | 18 + posts/2023/ldap-announcement/index.html | 22 + posts/2023/letters-mystery/index.html | 21 + posts/2023/mailcow-idp/index.html | 53 +++ posts/2023/release-2023-01/index.html | 27 ++ posts/2023/release-2023-04/index.html | 32 ++ posts/2023/release-2023-05/index.html | 23 + posts/2023/release-2023-05a/index.html | 19 + posts/2023/release-2023-07/index.html | 22 + posts/2023/release-2023-08/index.html | 27 ++ posts/2023/release-2023-09/index.html | 27 ++ posts/2023/release-2023-10/index.html | 55 +++ posts/2023/release-2023-11/index.html | 95 ++++ posts/2023/release-2023-12/index.html | 63 +++ posts/2023/spamhaus-dnsblocklist/index.html | 20 + posts/index.html | 316 ++----------- posts/index.xml | 232 +++------- posts/page/1/index.html | 12 +- posts/page/2/index.html | 269 ++--------- posts/page/3/index.html | 16 + posts/whats-up-arm64/index.html | 25 + robots.txt | 69 ++- sitemap.xml | 2 +- tags/2021/index.html | 251 +---------- tags/2021/index.xml | 12 +- tags/2021/page/1/index.html | 12 +- tags/2022/index.html | 294 ++---------- tags/2022/index.xml | 85 +--- tags/2022/page/1/index.html | 12 +- tags/2022/page/2/index.html | 8 + tags/2023/index.html | 26 ++ tags/2023/index.xml | 135 +++--- tags/2023/page/1/index.html | 2 + tags/alpine/index.html | 8 + tags/alpine/index.xml | 2 +- tags/alpine/page/1/index.html | 2 + tags/arm64/index.html | 12 + tags/arm64/index.xml | 18 +- tags/arm64/page/1/index.html | 2 + tags/authentik/index.html | 8 + tags/authentik/index.xml | 2 +- tags/authentik/page/1/index.html | 2 + tags/bugfix/index.html | 278 +----------- tags/bugfix/index.xml | 56 +-- tags/bugfix/page/1/index.html | 12 +- tags/challenge/index.html | 8 + tags/challenge/index.xml | 6 +- tags/challenge/page/1/index.html | 2 + tags/changelog/index.html | 285 ++---------- tags/changelog/index.xml | 177 +++----- tags/changelog/page/1/index.html | 12 +- tags/changelog/page/2/index.html | 15 + tags/community/index.html | 8 + tags/community/index.xml | 6 +- tags/community/page/1/index.html | 2 + tags/cors/index.html | 8 + tags/cors/index.xml | 2 +- tags/cors/page/1/index.html | 2 + tags/cve/index.html | 8 + tags/cve/index.xml | 6 +- tags/cve/page/1/index.html | 2 + tags/dnsbl/index.html | 9 + tags/dnsbl/index.xml | 4 +- tags/dnsbl/page/1/index.html | 2 + tags/docs/index.html | 229 +--------- tags/docs/index.xml | 2 +- tags/docs/page/1/index.html | 12 +- tags/dqs/index.html | 8 + tags/dqs/index.xml | 2 +- tags/dqs/page/1/index.html | 2 + tags/faq/index.html | 8 + tags/faq/index.xml | 2 +- tags/faq/page/1/index.html | 2 + tags/feedback/index.html | 231 +--------- tags/feedback/index.xml | 8 +- tags/feedback/page/1/index.html | 12 +- tags/hotfix/index.html | 238 +--------- tags/hotfix/index.xml | 12 +- tags/hotfix/page/1/index.html | 12 +- tags/identity-provider/index.html | 8 + tags/identity-provider/index.xml | 2 +- tags/identity-provider/page/1/index.html | 2 + tags/important/index.html | 236 +--------- tags/important/index.xml | 22 +- tags/important/page/1/index.html | 12 +- tags/index.html | 228 +--------- tags/index.xml | 2 +- tags/info/index.html | 8 + tags/info/index.xml | 6 +- tags/info/page/1/index.html | 2 + tags/installation/index.html | 8 + tags/installation/index.xml | 2 +- tags/installation/page/1/index.html | 2 + tags/keycloak/index.html | 8 + tags/keycloak/index.xml | 2 +- tags/keycloak/page/1/index.html | 2 + tags/ldap/index.html | 9 + tags/ldap/index.xml | 8 +- tags/ldap/page/1/index.html | 2 + tags/log4j/index.html | 231 +--------- tags/log4j/index.xml | 2 +- tags/log4j/page/1/index.html | 12 +- tags/memoryleak/index.html | 231 +--------- tags/memoryleak/index.xml | 2 +- tags/memoryleak/page/1/index.html | 12 +- tags/news/index.html | 8 + tags/news/index.xml | 2 +- tags/news/page/1/index.html | 2 + tags/nightly/index.html | 232 +--------- tags/nightly/index.xml | 10 +- tags/nightly/page/1/index.html | 12 +- tags/oidc/index.html | 8 + tags/oidc/index.xml | 2 +- tags/oidc/page/1/index.html | 2 + tags/performance/index.html | 8 + tags/performance/index.xml | 2 +- tags/performance/page/1/index.html | 2 + tags/recommendations/index.html | 231 +--------- tags/recommendations/index.xml | 2 +- tags/recommendations/page/1/index.html | 12 +- tags/security/index.html | 233 +--------- tags/security/index.xml | 10 +- tags/security/page/1/index.html | 12 +- tags/single-sign-on/index.html | 8 + tags/single-sign-on/index.xml | 2 +- tags/single-sign-on/page/1/index.html | 2 + tags/social-media/index.html | 231 +--------- tags/social-media/index.xml | 4 +- tags/social-media/page/1/index.html | 12 +- tags/sogo/index.html | 8 + tags/sogo/index.xml | 2 +- tags/sogo/page/1/index.html | 2 + tags/spamhaus/index.html | 9 + tags/spamhaus/index.xml | 4 +- tags/spamhaus/page/1/index.html | 2 + tags/sso/index.html | 8 + tags/sso/index.xml | 2 +- tags/sso/page/1/index.html | 2 + tags/status/index.html | 8 + tags/status/index.xml | 2 +- tags/status/page/1/index.html | 2 + tags/testing/index.html | 231 +--------- tags/testing/index.xml | 8 +- tags/testing/page/1/index.html | 12 +- tags/tutorial/index.html | 8 + tags/tutorial/index.xml | 2 +- tags/tutorial/page/1/index.html | 2 + tags/update/index.html | 288 ++---------- tags/update/index.xml | 181 +++----- tags/update/page/1/index.html | 12 +- tags/update/page/2/index.html | 16 + 512 files changed, 5640 insertions(+), 35558 deletions(-) create mode 100644 categories/cve/index.html create mode 100644 categories/cve/page/1/index.html create mode 100644 categories/guides/index.html create mode 100644 categories/guides/page/1/index.html create mode 100644 categories/information/index.html create mode 100644 categories/information/page/1/index.html create mode 100644 categories/news/index.html create mode 100644 categories/news/page/1/index.html create mode 100644 categories/security-advisories/index.html create mode 100644 categories/security-advisories/page/1/index.html create mode 100644 categories/status/index.html create mode 100644 categories/status/page/1/index.html create mode 100644 categories/updates/page/2/index.html create mode 100644 categories/whats-up/index.html create mode 100644 categories/whats-up/page/1/index.html create mode 100644 de/categories/cve/index.html create mode 100644 de/categories/cve/page/1/index.html create mode 100644 de/categories/guides/index.html create mode 100644 de/categories/guides/page/1/index.html create mode 100644 de/categories/hinweis/index.html create mode 100644 de/categories/hinweis/page/1/index.html create mode 100644 de/categories/news/index.html create mode 100644 de/categories/news/page/1/index.html create mode 100644 de/categories/sicherheitshinweise/index.html create mode 100644 de/categories/sicherheitshinweise/page/1/index.html create mode 100644 de/categories/status/index.html create mode 100644 de/categories/status/page/1/index.html create mode 100644 de/categories/updates/page/2/index.html create mode 100644 de/categories/wie-schauts-aus/index.html create mode 100644 de/categories/wie-schauts-aus/page/1/index.html create mode 100644 de/page/4/index.html create mode 100644 de/page/5/index.html create mode 100644 de/page/6/index.html create mode 100644 de/posts/2022/mailcow-feat-alpine/index.html create mode 100644 de/posts/2022/release-2022-09/index.html create mode 100644 de/posts/2022/release-2022-10/index.html create mode 100644 de/posts/2022/release-2022-10a/index.html create mode 100644 de/posts/2022/release-2022-11a/index.html create mode 100644 de/posts/2022/release-2022-12/index.html create mode 100644 de/posts/2023/arm64-announcement/index.html create mode 100644 de/posts/2023/arm64-delay/index.html create mode 100644 de/posts/2023/arm64-open-beta/index.html create mode 100644 de/posts/2023/cve-2023-34108/index.html create mode 100644 de/posts/2023/ldap-announcement/index.html create mode 100644 de/posts/2023/letters-mystery/index.html create mode 100644 de/posts/2023/mailcow-idp/index.html create mode 100644 de/posts/2023/release-2023-01/index.html create mode 100644 de/posts/2023/release-2023-04/index.html create mode 100644 de/posts/2023/release-2023-05/index.html create mode 100644 de/posts/2023/release-2023-05a/index.html create mode 100644 de/posts/2023/release-2023-07/index.html create mode 100644 de/posts/2023/release-2023-08/index.html create mode 100644 de/posts/2023/release-2023-09/index.html create mode 100644 de/posts/2023/release-2023-10/index.html create mode 100644 de/posts/2023/release-2023-11/index.html create mode 100644 de/posts/2023/release-2023-12/index.html create mode 100644 de/posts/2023/spamhaus-dnsblocklist/index.html create mode 100644 de/posts/page/3/index.html create mode 100644 de/posts/whats-up-arm64/index.html create mode 100644 de/tags/2022/page/2/index.html create mode 100644 de/tags/2023/index.html create mode 100644 de/tags/2023/page/1/index.html create mode 100644 de/tags/alpine/index.html create mode 100644 de/tags/alpine/page/1/index.html create mode 100644 de/tags/arm64/index.html create mode 100644 de/tags/arm64/page/1/index.html create mode 100644 de/tags/authentik/index.html create mode 100644 de/tags/authentik/page/1/index.html create mode 100644 de/tags/challenge/index.html create mode 100644 de/tags/challenge/page/1/index.html create mode 100644 de/tags/changelog/page/2/index.html create mode 100644 de/tags/community/index.html create mode 100644 de/tags/community/page/1/index.html create mode 100644 de/tags/cors/index.html create mode 100644 de/tags/cors/page/1/index.html create mode 100644 de/tags/cve/index.html create mode 100644 de/tags/cve/page/1/index.html create mode 100644 de/tags/dnsbl/index.html create mode 100644 de/tags/dnsbl/page/1/index.html create mode 100644 de/tags/dqs/index.html create mode 100644 de/tags/dqs/page/1/index.html create mode 100644 de/tags/faq/index.html create mode 100644 de/tags/faq/page/1/index.html create mode 100644 de/tags/identity-provider/index.html create mode 100644 de/tags/identity-provider/page/1/index.html create mode 100644 de/tags/info/index.html create mode 100644 de/tags/info/page/1/index.html create mode 100644 de/tags/installation/index.html create mode 100644 de/tags/installation/page/1/index.html create mode 100644 de/tags/keycloak/index.html create mode 100644 de/tags/keycloak/page/1/index.html create mode 100644 de/tags/ldap/index.html create mode 100644 de/tags/ldap/page/1/index.html create mode 100644 de/tags/news/index.html create mode 100644 de/tags/news/page/1/index.html create mode 100644 de/tags/oidc/index.html create mode 100644 de/tags/oidc/page/1/index.html create mode 100644 de/tags/performance/index.html create mode 100644 de/tags/performance/page/1/index.html create mode 100644 de/tags/sicherheit/index.html create mode 100644 de/tags/sicherheit/page/1/index.html create mode 100644 de/tags/single-sign-on/index.html create mode 100644 de/tags/single-sign-on/page/1/index.html create mode 100644 de/tags/sogo/index.html create mode 100644 de/tags/sogo/page/1/index.html create mode 100644 de/tags/spamhaus/index.html create mode 100644 de/tags/spamhaus/page/1/index.html create mode 100644 de/tags/sso/index.html create mode 100644 de/tags/sso/page/1/index.html create mode 100644 de/tags/status/index.html create mode 100644 de/tags/status/page/1/index.html create mode 100644 de/tags/tutorial/index.html create mode 100644 de/tags/tutorial/page/1/index.html create mode 100644 de/tags/update/page/2/index.html create mode 100644 images/fixit.min.svg create mode 100644 images/hugo.min.svg create mode 100644 images/loading.min.svg create mode 100644 lib/lightgallery/css/lightgallery-bundle.min.css create mode 100644 lib/lightgallery/lightgallery.min.js create mode 100644 lib/lightgallery/plugins/thumbnail/lg-thumbnail.min.js create mode 100644 lib/lightgallery/plugins/zoom/lg-zoom.min.js create mode 100644 page/4/index.html create mode 100644 page/5/index.html create mode 100644 posts/2022/mailcow-feat-alpine/index.html create mode 100644 posts/2022/release-2022-09/index.html create mode 100644 posts/2022/release-2022-10/index.html create mode 100644 posts/2022/release-2022-10a/index.html create mode 100644 posts/2022/release-2022-11a/index.html create mode 100644 posts/2022/release-2022-12/index.html create mode 100644 posts/2023/arm64-announcement/index.html create mode 100644 posts/2023/arm64-delay/index.html create mode 100644 posts/2023/arm64-open-beta/index.html create mode 100644 posts/2023/cve-2023-34108/index.html create mode 100644 posts/2023/ldap-announcement/index.html create mode 100644 posts/2023/letters-mystery/index.html create mode 100644 posts/2023/mailcow-idp/index.html create mode 100644 posts/2023/release-2023-01/index.html create mode 100644 posts/2023/release-2023-04/index.html create mode 100644 posts/2023/release-2023-05/index.html create mode 100644 posts/2023/release-2023-05a/index.html create mode 100644 posts/2023/release-2023-07/index.html create mode 100644 posts/2023/release-2023-08/index.html create mode 100644 posts/2023/release-2023-09/index.html create mode 100644 posts/2023/release-2023-10/index.html create mode 100644 posts/2023/release-2023-11/index.html create mode 100644 posts/2023/release-2023-12/index.html create mode 100644 posts/2023/spamhaus-dnsblocklist/index.html create mode 100644 posts/page/3/index.html create mode 100644 posts/whats-up-arm64/index.html create mode 100644 tags/2022/page/2/index.html create mode 100644 tags/2023/index.html create mode 100644 tags/2023/page/1/index.html create mode 100644 tags/alpine/index.html create mode 100644 tags/alpine/page/1/index.html create mode 100644 tags/arm64/index.html create mode 100644 tags/arm64/page/1/index.html create mode 100644 tags/authentik/index.html create mode 100644 tags/authentik/page/1/index.html create mode 100644 tags/challenge/index.html create mode 100644 tags/challenge/page/1/index.html create mode 100644 tags/changelog/page/2/index.html create mode 100644 tags/community/index.html create mode 100644 tags/community/page/1/index.html create mode 100644 tags/cors/index.html create mode 100644 tags/cors/page/1/index.html create mode 100644 tags/cve/index.html create mode 100644 tags/cve/page/1/index.html create mode 100644 tags/dnsbl/index.html create mode 100644 tags/dnsbl/page/1/index.html create mode 100644 tags/dqs/index.html create mode 100644 tags/dqs/page/1/index.html create mode 100644 tags/faq/index.html create mode 100644 tags/faq/page/1/index.html create mode 100644 tags/identity-provider/index.html create mode 100644 tags/identity-provider/page/1/index.html create mode 100644 tags/info/index.html create mode 100644 tags/info/page/1/index.html create mode 100644 tags/installation/index.html create mode 100644 tags/installation/page/1/index.html create mode 100644 tags/keycloak/index.html create mode 100644 tags/keycloak/page/1/index.html create mode 100644 tags/ldap/index.html create mode 100644 tags/ldap/page/1/index.html create mode 100644 tags/news/index.html create mode 100644 tags/news/page/1/index.html create mode 100644 tags/oidc/index.html create mode 100644 tags/oidc/page/1/index.html create mode 100644 tags/performance/index.html create mode 100644 tags/performance/page/1/index.html create mode 100644 tags/single-sign-on/index.html create mode 100644 tags/single-sign-on/page/1/index.html create mode 100644 tags/sogo/index.html create mode 100644 tags/sogo/page/1/index.html create mode 100644 tags/spamhaus/index.html create mode 100644 tags/spamhaus/page/1/index.html create mode 100644 tags/sso/index.html create mode 100644 tags/sso/page/1/index.html create mode 100644 tags/status/index.html create mode 100644 tags/status/page/1/index.html create mode 100644 tags/tutorial/index.html create mode 100644 tags/tutorial/page/1/index.html create mode 100644 tags/update/page/2/index.html diff --git a/404.html b/404.html index cbd3eb104..c09a0cb27 100644 --- a/404.html +++ b/404.html @@ -1,229 +1,8 @@ - - - - - - - - 404 Page not found - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - -
- -
-
- - -
-
-

-

The page you're looking for doesn't exist. Sorry.  - -

-
-
0% -
-
- +404 Page not found - mailcow: dockerized - Blog +

The page you're looking for doesn't exist. Sorry.  +

0%
\ No newline at end of file diff --git a/categories/beta/index.html b/categories/beta/index.html index 680ac1f17..6a308cfd0 100644 --- a/categories/beta/index.html +++ b/categories/beta/index.html @@ -1,223 +1,8 @@ - - - - - - - - Beta - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
0% -
-
- +Beta - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/beta/index.xml b/categories/beta/index.xml index 43d015447..294eee81f 100644 --- a/categories/beta/index.xml +++ b/categories/beta/index.xml @@ -1,4 +1,4 @@ -Beta on mailcow: dockerized - Bloghttps://mailcow.email/categories/beta/Recent content in Beta on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it’s still exclusively in the nightly builds because we want to optimize the UI. -And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know! \ No newline at end of file +Beta - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/beta/Beta - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/nightly-tests-bs5/Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!]]> \ No newline at end of file diff --git a/categories/beta/page/1/index.html b/categories/beta/page/1/index.html index f7d2e6aec..56f902b2d 100644 --- a/categories/beta/page/1/index.html +++ b/categories/beta/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/beta/ - - - - - - +https://mailcow.email/categories/beta/ + \ No newline at end of file diff --git a/categories/cve/index.html b/categories/cve/index.html new file mode 100644 index 000000000..9065b3a1d --- /dev/null +++ b/categories/cve/index.html @@ -0,0 +1,8 @@ +CVE - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/cve/index.xml b/categories/cve/index.xml index ec1bb675b..f9b4633b2 100644 --- a/categories/cve/index.xml +++ b/categories/cve/index.xml @@ -1,3 +1,3 @@ -CVE on mailcow: dockerized - Bloghttps://mailcow.email/categories/cve/Recent content in CVE on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p> \ No newline at end of file +CVE - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/cve/CVE - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/cve-2023-34108/Moohoo everyone!

+

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

+

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

]]>
\ No newline at end of file diff --git a/categories/cve/page/1/index.html b/categories/cve/page/1/index.html new file mode 100644 index 000000000..a7494e9da --- /dev/null +++ b/categories/cve/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/cve/ + \ No newline at end of file diff --git a/categories/documentation/index.html b/categories/documentation/index.html index f1f29f5b3..e1e48423c 100644 --- a/categories/documentation/index.html +++ b/categories/documentation/index.html @@ -1,221 +1,8 @@ - - - - - - - - Documentation - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
-
- - -
-
-
- - -
-
0% -
-
- +Documentation - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/documentation/index.xml b/categories/documentation/index.xml index 9a739e244..6cc6e1b56 100644 --- a/categories/documentation/index.xml +++ b/categories/documentation/index.xml @@ -1,4 +1,4 @@ -Documentation on mailcow: dockerized - Bloghttps://mailcow.email/categories/documentation/Recent content in Documentation on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) +Documentation - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/documentation/Documentation - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100Authorhttps://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) We have an exciting news to share with you! We present you the newly released mailcow: dockerized Docs 2.0! Not much may have changed at first glance (you would think) but under the hood a lot has changed! diff --git a/categories/documentation/page/1/index.html b/categories/documentation/page/1/index.html index 039f76a6b..9cae11b2f 100644 --- a/categories/documentation/page/1/index.html +++ b/categories/documentation/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/documentation/ - - - - - - +https://mailcow.email/categories/documentation/ + \ No newline at end of file diff --git a/categories/guides/index.html b/categories/guides/index.html new file mode 100644 index 000000000..4ec517b0a --- /dev/null +++ b/categories/guides/index.html @@ -0,0 +1,8 @@ +Guides - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/guides/index.xml b/categories/guides/index.xml index af5988de5..648f800c4 100644 --- a/categories/guides/index.xml +++ b/categories/guides/index.xml @@ -1 +1 @@ -Guides on mailcow: dockerized - Bloghttps://mailcow.email/categories/guides/Recent content in Guides on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Guides - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/guides/Guides - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Authorhttps://mailcow.email/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="A small guide for installing mailcow on Alpine Linux" referrerpolicy="no-referrer"/></div>A small guide for installing mailcow on Alpine Linux \ No newline at end of file diff --git a/categories/guides/page/1/index.html b/categories/guides/page/1/index.html new file mode 100644 index 000000000..edccc6004 --- /dev/null +++ b/categories/guides/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/guides/ + \ No newline at end of file diff --git a/categories/hotfix/index.html b/categories/hotfix/index.html index ca3adcffd..13bfbf8fa 100644 --- a/categories/hotfix/index.html +++ b/categories/hotfix/index.html @@ -1,226 +1,13 @@ - - - - - - - - Hotfix - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Hotfix - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/hotfix/index.xml b/categories/hotfix/index.xml index 15c461aee..3c990df50 100644 --- a/categories/hotfix/index.xml +++ b/categories/hotfix/index.xml @@ -1,18 +1,18 @@ -Hotfix on mailcow: dockerized - Bloghttps://mailcow.email/categories/hotfix/Recent content in Hotfix on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p>๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, +Hotfix - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/hotfix/Hotfix - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/cve-2023-34108/Moohoo everyone!

+

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

+

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

]]>
๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-11a/Moohoo everyone!

+

Due to the 2022-11a 2022-11b update, here are the changelogs of the 2022-11a 2022-11b update and the changes of the major version (2022-11).

+
+

Weยดve released 2022-11b already!

+
]]>
โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-10a/Moohoo everyone!

+

Yesterday (on 25th October 2022) weยดve released the 2022-10 update. +This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.

+

We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!

]]>
โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Authorhttps://mailcow.email/posts/2022/release-2022-05d/Hello all, Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. It is strongly recommended to install the update as soon as possible to prevent exploitation. As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. +The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100Authorhttps://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.
\ No newline at end of file diff --git a/categories/hotfix/page/1/index.html b/categories/hotfix/page/1/index.html index 55f85edbb..7aaa6a195 100644 --- a/categories/hotfix/page/1/index.html +++ b/categories/hotfix/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/hotfix/ - - - - - - +https://mailcow.email/categories/hotfix/ + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html index 480d6e8b8..05c886ad4 100644 --- a/categories/index.html +++ b/categories/index.html @@ -1,305 +1,7 @@ - - - - - - - - All Categories - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
0% -
-
- +All Categories - mailcow: dockerized - Blog +

All Categories 14

0%
\ No newline at end of file diff --git a/categories/index.xml b/categories/index.xml index 4ceb5d916..201abef75 100644 --- a/categories/index.xml +++ b/categories/index.xml @@ -1 +1 @@ -Categories on mailcow: dockerized - Bloghttps://mailcow.email/categories/Recent content in Categories on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200Updateshttps://mailcow.email/categories/updates/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/updates/Newshttps://mailcow.email/categories/news/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/news/What's up?https://mailcow.email/categories/whats-up/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/whats-up/Informationhttps://mailcow.email/categories/information/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/information/Statushttps://mailcow.email/categories/status/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/status/CVEhttps://mailcow.email/categories/cve/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/cve/Hotfixhttps://mailcow.email/categories/hotfix/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/hotfix/Security advisorieshttps://mailcow.email/categories/security-advisories/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/security-advisories/Guideshttps://mailcow.email/categories/guides/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/categories/guides/Securityhttps://mailcow.email/categories/security/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/security/Betahttps://mailcow.email/categories/beta/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/beta/Nightlyhttps://mailcow.email/categories/nightly/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/categories/nightly/Documentationhttps://mailcow.email/categories/documentation/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/categories/documentation/Social Mediahttps://mailcow.email/categories/social-media/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/categories/social-media/ \ No newline at end of file +Categories - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/Categories - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200Updateshttps://mailcow.email/categories/updates/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/categories/updates/Newshttps://mailcow.email/categories/news/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/categories/news/What's up?https://mailcow.email/categories/whats-up/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/categories/whats-up/Informationhttps://mailcow.email/categories/information/Fri, 28 Jul 2023 16:00:10 +0200Authorhttps://mailcow.email/categories/information/Statushttps://mailcow.email/categories/status/Fri, 28 Jul 2023 16:00:10 +0200Authorhttps://mailcow.email/categories/status/CVEhttps://mailcow.email/categories/cve/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/categories/cve/Hotfixhttps://mailcow.email/categories/hotfix/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/categories/hotfix/Security advisorieshttps://mailcow.email/categories/security-advisories/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/categories/security-advisories/Guideshttps://mailcow.email/categories/guides/Fri, 04 Nov 2022 10:00:00 +0100Authorhttps://mailcow.email/categories/guides/Securityhttps://mailcow.email/categories/security/Fri, 30 Sep 2022 12:30:10 +0200Authorhttps://mailcow.email/categories/security/ \ No newline at end of file diff --git a/categories/information/index.html b/categories/information/index.html new file mode 100644 index 000000000..fe547f5cc --- /dev/null +++ b/categories/information/index.html @@ -0,0 +1,8 @@ +Information - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/information/index.xml b/categories/information/index.xml index bec06231f..1260b56f0 100644 --- a/categories/information/index.xml +++ b/categories/information/index.xml @@ -1,3 +1,3 @@ -Information on mailcow: dockerized - Bloghttps://mailcow.email/categories/information/Recent content in Information on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo everyone!</strong></p> -<p>With the mailcow update 2023-07, there&rsquo;s a somewhat significant change regarding Spamhaus DNS blocklists.</p> -<p>This blog post is here to provide information for those interested.</p> \ No newline at end of file +Information - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/information/Information - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200Authorhttps://mailcow.email/posts/2023/spamhaus-dnsblocklist/Moohoo everyone!

+

With the mailcow update 2023-07, there’s a somewhat significant change regarding Spamhaus DNS blocklists.

+

This blog post is here to provide information for those interested.

]]>
\ No newline at end of file diff --git a/categories/information/page/1/index.html b/categories/information/page/1/index.html new file mode 100644 index 000000000..6ed1f49dd --- /dev/null +++ b/categories/information/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/information/ + \ No newline at end of file diff --git a/categories/news/index.html b/categories/news/index.html new file mode 100644 index 000000000..69e2a2b6e --- /dev/null +++ b/categories/news/index.html @@ -0,0 +1,15 @@ +News - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/news/index.xml b/categories/news/index.xml index 41d3c79c3..adbb1e98c 100644 --- a/categories/news/index.xml +++ b/categories/news/index.xml @@ -1,23 +1,23 @@ -News on mailcow: dockerized - Bloghttps://mailcow.email/categories/news/Recent content in News on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-delay/<p><strong>Moohoo everyone!</strong></p> -<p>We are back with new information on the current ARM64 topic.</p> -<p>Unfortunately, it&rsquo;s not good news, as you might have guessed from the headline&hellip;</p>๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +News - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/news/News - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-delay/Moohoo everyone!

+

We are back with new information on the current ARM64 topic.

+

Unfortunately, it’s not good news, as you might have guessed from the headline…

]]>
๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. -Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-open-beta/<p><strong>Moohoo everyone!</strong></p> -<p>No you are not dreaming, yes you are awake and no this is no joke:</p> -<p>mailcow&rsquo;s ARM64 support can now be tested in nightly as <strong>BETA</strong>!</p>๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-open-beta/Moohoo everyone!

+

No you are not dreaming, yes you are awake and no this is no joke:

+

mailcow’s ARM64 support can now be tested in nightly as BETA!

]]>
๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: -Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! +Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:</p> -<p><strong>mailcow gets ARM64 support</strong></p>๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/ldap-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The time of waiting is over and many have shared their solution with us on the contact options below.</p> -<p>Today we finally have the pleasure to let it out into the world!</p>๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/letters-mystery/Moohoo everyone! +Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-announcement/๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcement

Moohoo everyone!

+

The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:

+

mailcow gets ARM64 support

]]>
๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200Authorhttps://mailcow.email/posts/2023/ldap-announcement/Moohoo everyone!

+

The time of waiting is over and many have shared their solution with us on the contact options below.

+

Today we finally have the pleasure to let it out into the world!

]]>
๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/letters-mystery/๐Ÿค” Have you seen these letters? - [Solved]Moohoo everyone! First of all, a big, big sorry for the long radio silence here. -We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of &ldquo;ONLY&rdquo; bug fixes, etc.. -But in this blogpost we would like to draw your attention to a mysterious thing:
\ No newline at end of file +We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of “ONLY” bug fixes, etc.. +But in this blogpost we would like to draw your attention to a mysterious thing:]]>
\ No newline at end of file diff --git a/categories/news/page/1/index.html b/categories/news/page/1/index.html new file mode 100644 index 000000000..a6dae2b5c --- /dev/null +++ b/categories/news/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/news/ + \ No newline at end of file diff --git a/categories/nightly/index.html b/categories/nightly/index.html index 483e06b07..16aa8f463 100644 --- a/categories/nightly/index.html +++ b/categories/nightly/index.html @@ -1,223 +1,8 @@ - - - - - - - - Nightly - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Nightly - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/nightly/index.xml b/categories/nightly/index.xml index 781c2a6b0..e1bd38bb7 100644 --- a/categories/nightly/index.xml +++ b/categories/nightly/index.xml @@ -1,4 +1,4 @@ -Nightly on mailcow: dockerized - Bloghttps://mailcow.email/categories/nightly/Recent content in Nightly on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know! \ No newline at end of file +Nightly - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/nightly/Nightly - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/nightly-tests-bs5/Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!]]> \ No newline at end of file diff --git a/categories/nightly/page/1/index.html b/categories/nightly/page/1/index.html index 248c56142..2611980ce 100644 --- a/categories/nightly/page/1/index.html +++ b/categories/nightly/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/nightly/ - - - - - - +https://mailcow.email/categories/nightly/ + \ No newline at end of file diff --git a/categories/security-advisories/index.html b/categories/security-advisories/index.html new file mode 100644 index 000000000..f45315180 --- /dev/null +++ b/categories/security-advisories/index.html @@ -0,0 +1,8 @@ +Security advisories - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/security-advisories/index.xml b/categories/security-advisories/index.xml index 38b83f216..cd51ca810 100644 --- a/categories/security-advisories/index.xml +++ b/categories/security-advisories/index.xml @@ -1,3 +1,3 @@ -Security advisories on mailcow: dockerized - Bloghttps://mailcow.email/categories/security-advisories/Recent content in Security advisories on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p> \ No newline at end of file +Security advisories - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/security-advisories/Security advisories - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/cve-2023-34108/Moohoo everyone!

+

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

+

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

]]>
\ No newline at end of file diff --git a/categories/security-advisories/page/1/index.html b/categories/security-advisories/page/1/index.html new file mode 100644 index 000000000..ab76613d6 --- /dev/null +++ b/categories/security-advisories/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/security-advisories/ + \ No newline at end of file diff --git a/categories/security/index.html b/categories/security/index.html index 3d01a1e49..f7eca547e 100644 --- a/categories/security/index.html +++ b/categories/security/index.html @@ -1,224 +1,10 @@ - - - - - - - - Security - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Security - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/security/index.xml b/categories/security/index.xml index 30f506183..b2683e58b 100644 --- a/categories/security/index.xml +++ b/categories/security/index.xml @@ -1,12 +1,12 @@ -Security on mailcow: dockerized - Bloghttps://mailcow.email/categories/security/Recent content in Security on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 30 Sep 2022 12:30:10 +0200๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, +Security - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/security/Security - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 30 Sep 2022 12:30:10 +0200๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-09/ + 2022-09a (Release: 30th September 2022)

Changes:

+
    +
  • The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes CVE-2022-39261.
    +Attention: This CVE is not critical for all mailcow users but only serves to update the packages.
  • +
]]>
โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Authorhttps://mailcow.email/posts/2022/release-2022-05d/Hello all, Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. It is strongly recommended to install the update as soon as possible to prevent exploitation. As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. +The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100Authorhttps://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.
\ No newline at end of file diff --git a/categories/security/page/1/index.html b/categories/security/page/1/index.html index 55881e2b4..53f54ed62 100644 --- a/categories/security/page/1/index.html +++ b/categories/security/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/security/ - - - - - - +https://mailcow.email/categories/security/ + \ No newline at end of file diff --git a/categories/social-media/index.html b/categories/social-media/index.html index bcf4de541..7a27efafa 100644 --- a/categories/social-media/index.html +++ b/categories/social-media/index.html @@ -1,223 +1,8 @@ - - - - - - - - Social Media - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Social Media - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/social-media/index.xml b/categories/social-media/index.xml index b23706828..5215e0b4d 100644 --- a/categories/social-media/index.xml +++ b/categories/social-media/index.xml @@ -1,5 +1,5 @@ -Social Media on mailcow: dockerized - Bloghttps://mailcow.email/categories/social-media/Recent content in Social Media on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 24 Jan 2022 12:33:09 +0100Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-twitter/Moohoo everyone! +Social Media - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/social-media/Social Media - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 24 Jan 2022 12:33:09 +0100Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100Authorhttps://mailcow.email/posts/2022/mailcow-twitter/Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!Moohoo everyone! Our dear mailcow has taken the plunge into social media: Twitter! There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. -We look forward to getting in touch with you there and keeping you up to date. \ No newline at end of file +We look forward to getting in touch with you there and keeping you up to date.]]> \ No newline at end of file diff --git a/categories/social-media/page/1/index.html b/categories/social-media/page/1/index.html index 8db4358ae..f7a879b1d 100644 --- a/categories/social-media/page/1/index.html +++ b/categories/social-media/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/social-media/ - - - - - - +https://mailcow.email/categories/social-media/ + \ No newline at end of file diff --git a/categories/status/index.html b/categories/status/index.html new file mode 100644 index 000000000..ffd73565c --- /dev/null +++ b/categories/status/index.html @@ -0,0 +1,8 @@ +Status - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/status/index.xml b/categories/status/index.xml index 4984c365b..70c03a29b 100644 --- a/categories/status/index.xml +++ b/categories/status/index.xml @@ -1,3 +1,3 @@ -Status on mailcow: dockerized - Bloghttps://mailcow.email/categories/status/Recent content in Status on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo everyone!</strong></p> -<p>With the mailcow update 2023-07, there&rsquo;s a somewhat significant change regarding Spamhaus DNS blocklists.</p> -<p>This blog post is here to provide information for those interested.</p> \ No newline at end of file +Status - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/status/Status - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200Authorhttps://mailcow.email/posts/2023/spamhaus-dnsblocklist/Moohoo everyone!

+

With the mailcow update 2023-07, there’s a somewhat significant change regarding Spamhaus DNS blocklists.

+

This blog post is here to provide information for those interested.

]]>
\ No newline at end of file diff --git a/categories/status/page/1/index.html b/categories/status/page/1/index.html new file mode 100644 index 000000000..fb66c6f72 --- /dev/null +++ b/categories/status/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/status/ + \ No newline at end of file diff --git a/categories/updates/index.html b/categories/updates/index.html index 6a5556116..f62d7297e 100644 --- a/categories/updates/index.html +++ b/categories/updates/index.html @@ -1,262 +1,26 @@ - - - - - - - - Updates - Category - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
0% -
-
- +Updates - Category - mailcow: dockerized - Blog +

Updates 29

2023

2022

0%
\ No newline at end of file diff --git a/categories/updates/index.xml b/categories/updates/index.xml index 6ea0ad50c..793a626f2 100644 --- a/categories/updates/index.xml +++ b/categories/updates/index.xml @@ -1,137 +1,69 @@ -Updates on mailcow: dockerized - Bloghttps://mailcow.email/categories/updates/Recent content in Updates on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-12/<h2 id="2023-12a-release-29th-december-2023">2023-12a (Release 29th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-19th-december-2023">2023-12 (Release 19th December 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>We have some new Netfilter features for you before the holidays. -In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables <code>WATCHDOG_NOTIFY_WEBHOOK</code> and <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in <code>mailcow.conf</code> accordingly.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-11/<h2 id="2023-11a-release-07th-december-2023">2023-11a (Release 07th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-21st-november-2023">2023-11 (Release 21st November 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>The holiday season is slowly approaching, and here we are with another update at our doorstep.</p> -<p>First things first: It&rsquo;s advisable to update (especially if using Quarantine) due to a critical security patch.</p>๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-10/<h2 id="2023-10a-released-12th-october-2023">2023-10a (Released 12th October 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>We&rsquo;ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!</li> -<li>We&rsquo;ve removed the restart action from the <code>depends_on</code> section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-released-12th-october-2023">2023-10 (Released 12th October 2023)</h2> -<p><strong><del>Moo</del>Boo hoo everyone!</strong></p> -<p>It&rsquo;s spooky season again and we hope you&rsquo;re all ready to celebrate the Halloween season this year.</p> -<p>However mailcow is also delivering you with some treats (tricks &ldquo;sold&rdquo; seperately and not included in this update) regarding the stack.</p> -<p>This time it&rsquo;s quite huge!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +Updates - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/updates/Updates - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/posts/2023/release-2023-12/ + 2023-12a (Release 29th December 2023)

+ Changelog

+
+

+ 2023-12 (Release 19th December 2023)

Moo hoo everyone!

+

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-11/ + 2023-11a (Release 07th December 2023)

+ Changelog

+
+

+ 2023-11 (Release 21st November 2023)

Moo hoo everyone!

+

The holiday season is slowly approaching, and here we are with another update at our doorstep.

+

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

]]>
๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-10/ + 2023-10a (Released 12th October 2023)

+ Changelog

    +
  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • +
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)
  • +
+
+

+ 2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

+

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

+

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

+

This time it’s quite huge!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-04/Update 2023-04a We&rsquo;ve just released a hotfix update for the 2023-04 update. +Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-04/๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision AUpdate 2023-04aWe’ve just released a hotfix update for the 2023-04 update. It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. -Update 2023-04 Moohoo everyone -It&rsquo;s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. -Let&rsquo;s get started: -SOGo has been updated to version 5.๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-01/Introduction Moohoo everyone! +Update 2023-04Moohoo everyone +It’s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. +Let’s get started: +SOGo has been updated to version 5.]]>๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-01/IntroductionMoohoo everyone! The mailcow team is back with some exciting news about our beloved mailcow project! But this time we are doing something a bit different than usual (at least here with the blog post entry) As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. -So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-12/Introduction Moohoo everyone! -To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! -As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. -Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10/<p><strong>Moohoo everyone!</strong></p> -<p>We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! -A small but important update for or against the current SOGo Sieve/mail sending problems is here! -We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. -For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! -Yeah, a August Update in September&hellip; kinda sus if you ask me! -This time there are even some changes regarding the Update sources! So stay curious. -Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! -We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). -Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) -Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! -It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) -We have an exciting news to share with you! -We present you the newly released mailcow: dockerized Docs 2.0! -Not much may have changed at first glance (you would think) but under the hood a lot has changed! -So we present you from today: -Multi-language support (English and German are supported and updated by Servercow itself ) Light-/Darkmode New organized structure (interesting for contributors) All in all a remake of the existing docs.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01/Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn&rsquo;t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moovember2021/Moohoo everyone! -Niklas here to present you the latest news around our lovely mailcow :) -Let&rsquo;s get started, shall we? -Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. -Furthermore we introduce our new cold standby solution. -With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.
\ No newline at end of file +So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?
\ No newline at end of file diff --git a/categories/updates/page/1/index.html b/categories/updates/page/1/index.html index 02d8700e3..0d51a1b2f 100644 --- a/categories/updates/page/1/index.html +++ b/categories/updates/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/categories/updates/ - - - - - - +https://mailcow.email/categories/updates/ + \ No newline at end of file diff --git a/categories/updates/page/2/index.html b/categories/updates/page/2/index.html new file mode 100644 index 000000000..991010207 --- /dev/null +++ b/categories/updates/page/2/index.html @@ -0,0 +1,16 @@ +Updates - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/whats-up/index.html b/categories/whats-up/index.html new file mode 100644 index 000000000..ab6e0c0a0 --- /dev/null +++ b/categories/whats-up/index.html @@ -0,0 +1,8 @@ +What's up? - Category - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/categories/whats-up/index.xml b/categories/whats-up/index.xml index d3f131533..34bf3095b 100644 --- a/categories/whats-up/index.xml +++ b/categories/whats-up/index.xml @@ -1,4 +1,4 @@ -What's up? on mailcow: dockerized - Bloghttps://mailcow.email/categories/whats-up/Recent content in What's up? on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +What's up? - Category - mailcow: dockerized - Bloghttps://mailcow.email/categories/whats-up/What's up? - Category | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: diff --git a/categories/whats-up/page/1/index.html b/categories/whats-up/page/1/index.html new file mode 100644 index 000000000..125aeaf43 --- /dev/null +++ b/categories/whats-up/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/categories/whats-up/ + \ No newline at end of file diff --git a/css/style.min.css b/css/style.min.css index ccf75c0e0..8f15ed287 100644 --- a/css/style.min.css +++ b/css/style.min.css @@ -1,3 +1,3 @@ -:root{--fi-primary: #1772ee;--fi-secondary: #919191;--fi-success: #13ce66;--fi-info: #0dcaf0;--fi-warning: #ffba00;--fi-danger: #ff4949;--fi-primary-dark: #1066db;--fi-secondary-dark: #848484;--fi-success-dark: #11b75a;--fi-info-dark: #0cb6d8;--fi-warning-dark: #e6a700;--fi-danger-dark: #ff3030}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%;scroll-behavior:smooth;overflow:overlay}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}::-webkit-scrollbar{width:0.5rem;height:0.5rem}::-webkit-scrollbar-thumb{background-color:#87878d;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}::-webkit-scrollbar-thumb:hover{background-color:#b1b1ba}::selection{background-color:rgba(53,166,247,0.25)}[data-theme='dark'] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;word-wrap:break-word;overflow-wrap:break-word;scrollbar-color:auto}body[data-theme='dark']{color:#b1b1ba;background-color:#292a2e}img{-o-object-fit:contain;object-fit:contain;font-family:"object-fit: contain;";-webkit-border-radius:2.5px;-moz-border-radius:2.5px;border-radius:2.5px}iframe{border:0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}[role='button']{cursor:pointer}summary{cursor:pointer}abbr[title]{cursor:help;text-decoration-skip-ink:none}input::-ms-clear{display:none}a,a::before,a::after{text-decoration:none;color:#161209}[data-theme='dark'] a,[data-theme='dark'] a::before,[data-theme='dark'] a::after{color:#b1b1ba}a:active,a:hover{color:#2983bb}[data-theme='dark'] a:active,[data-theme='dark'] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background-color:rgba(0,0,0,0)}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{height:1em;width:1em;margin:0 0.05em 0 0.1em;vertical-align:-0.1em}.fixit-icon{display:inline-block;height:1.5em;width:1.5em;line-height:1.5em;position:relative;vertical-align:text-bottom}.details .details-summary{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#b1b1ba;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[data-theme='dark'] .details i.details-icon{color:#909092}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open .details-summary{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.details.open i.details-icon{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:100%;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s}.cc-window.cc-banner .cc-btn{color:#161209}.cc-window.cc-banner .cc-btn:hover,.cc-window.cc-banner .cc-btn:focus{background-color:#ccc}[data-theme='dark'] .cc-window.cc-banner .cc-btn{color:#161209}[data-theme='dark'] .cc-window.cc-banner .cc-btn:hover,[data-theme='dark'] .cc-window.cc-banner .cc-btn:focus{background-color:#fff}.fixed-button{z-index:100;position:fixed;right:1.5rem;font-size:1rem;line-height:1.5rem;padding:0.5rem 0.625rem;color:#b1b1ba;background-color:#f8f8f8;-webkit-border-radius:1.25rem;-moz-border-radius:1.25rem;border-radius:1.25rem;-webkit-transition:color 0.4s ease;-moz-transition:color 0.4s ease;-o-transition:color 0.4s ease;transition:color 0.4s ease}.blur .fixed-button{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[data-theme='dark'] .fixed-button{color:#909092;background-color:#252627}[data-theme='dark'] .fixed-button:hover,[data-theme='dark'] .fixed-button:active{color:#b1b1ba}.back-to-top{bottom:1.5rem}.view-comments{bottom:4.5rem}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}.github-corner{position:fixed;top:0;z-index:150}.github-corner :hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.github-corner svg{width:3.5rem;height:3.5rem;border:0;color:#fff;fill:#252627}[data-theme='dark'] .github-corner svg{color:#000;fill:#f8f8f8}.github-corner.left{left:0}.github-corner.left svg{transform:scale(-1, 1)}.github-corner.right{right:0}.noscript-warning{background-color:var(--fi-danger);color:white;font-size:1rem;font-weight:bold;position:fixed;text-align:center;left:0;top:0;width:100%;z-index:150}[data-theme='dark'] .noscript-warning{background-color:var(--fi-danger-dark)}.reading-progress-bar{--progress: 0;height:var(--progress-h, 2px);width:var(--progress);background-color:var(--bg-progress, var(--fi-info));z-index:150;position:fixed}[data-theme="dark"] .reading-progress-bar{background-color:var(--bg-progress-dark, var(--fi-info-dark))}.typeit{--ti-cursor-font-family: system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;--ti-cursor-font-size: 16px;--ti-cursor-font-style: normal;--ti-cursor-font-weight: 400;--ti-cursor-line-height: 1.5rem;--ti-cursor-color: #161209;--ti-cursor-transform: translateX(0)}.typeit .highlight{padding:0.375rem;font-size:0.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all;white-space:pre-wrap}[data-theme='dark'] .typeit{--ti-cursor-color: #b1b1ba}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main aside:first-child{order:2}.wrapper main.container,.wrapper main.container-reverse{display:flex;align-items:flex-start;justify-content:center;padding:0 1rem}.wrapper main.container-reverse{flex-direction:row-reverse}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.d-none{display:none !important}.d-none-desktop{display:none}.d-none-mobile{display:block}.ms-1{margin-left:0.25rem !important}.me-1{margin-right:0.25rem !important}.ps-1{padding-left:0.25rem !important}.pe-1{padding-right:0.25rem !important}.text-primary{color:#1772ee !important}[data-theme='dark'] .text-primary{color:#1066db !important}.text-secondary{color:#919191 !important}[data-theme='dark'] .text-secondary{color:#848484 !important}.text-success{color:#13ce66 !important}[data-theme='dark'] .text-success{color:#11b75a !important}.text-info{color:#0dcaf0 !important}[data-theme='dark'] .text-info{color:#0cb6d8 !important}.text-warning{color:#ffba00 !important}[data-theme='dark'] .text-warning{color:#e6a700 !important}.text-danger{color:#ff4949 !important}[data-theme='dark'] .text-danger{color:#ff3030 !important}.variant-numeric{font-variant-numeric:tabular-nums lining-nums}.page{position:relative}.page .content [id]{scroll-margin-top:3.5rem}[data-header-desktop='normal'] .page .content [id]{scroll-margin-top:0}.blur .page{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.8rem;padding-left:0.8rem;list-style:none}.toc .toc-content ul a:first-child::before{content:'|';font-weight:bolder;margin-right:0.5rem;color:#2376b7}[data-theme='dark'] .toc .toc-content ul a:first-child::before{color:#1781b5}.toc .toc-content ul ul{padding-left:1.5rem}.toc ruby{background:#f6f8fa}.toc ruby rt{color:#b1b1ba}[data-theme='dark'] .toc ruby{background:#2d333b}[data-theme='dark'] .toc ruby rt{color:#909092}#toc-auto{display:block;position:sticky;top:4rem;padding-left:1rem;padding-right:1rem;word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box;visibility:hidden}.blur #toc-auto{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}#toc-auto .toc-title{margin:0.5rem 0;cursor:pointer}#toc-auto .toc-title::before{content:'|';font-weight:bolder;margin-right:0.5rem;color:#f0f0f0}[data-theme='dark'] #toc-auto .toc-title::before{color:#363636}#toc-auto .toc-title i.toc-icon{-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}#toc-auto.toc-hidden i.toc-icon{-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}#toc-auto .toc-content{overflow-y:scroll;max-height:calc(100vh - 7rem)}#toc-auto .toc-content.always-active ul{display:block}#toc-auto .toc-content>nav>ul{margin:0}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content a.active{font-weight:bold;color:#2376b7}[data-theme='dark'] #toc-auto .toc-content a.active{color:#1781b5}#toc-auto .toc-content a.active::before{color:#ea517f}[data-theme='dark'] #toc-auto .toc-content a.active::before{color:#619ac3}#toc-static{display:none;margin:0.8rem 0}#toc-static[data-kept='true']{display:block}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 0.75rem;background:#ecf0f5}[data-theme='dark'] #toc-static .toc-title{background:#20242a}#toc-static .toc-content{background-color:#f6f8fa}#toc-static .toc-content>nav>ul{margin:0;padding:0.4rem 1rem 0.4rem 1.8rem}[data-theme='dark'] #toc-static .toc-content{background-color:#2d333b}#toc-static.open .toc-title{background:#e2e9ef}[data-theme='dark'] #toc-static.open .toc-title{background:#262b32}.fixit-decryptor-container{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;text-align:center;margin-top:3rem}.fixit-encryptor-shortcode .fixit-decryptor-container{margin-top:1rem}.fixit-decryptor-container #fixit-decryptor-input,.fixit-decryptor-container .fixit-decryptor-input,.fixit-decryptor-container .fixit-encryptor-btn{display:inline-block;box-sizing:border-box;outline:none;color:#161209;border:1px solid #cacaca;border-radius:5px;transition:0.1s;box-shadow:0px 0px 5px 0px #cacaca}.fixit-decryptor-container #fixit-decryptor-input:active,.fixit-decryptor-container #fixit-decryptor-input:focus,.fixit-decryptor-container #fixit-decryptor-input:hover,.fixit-decryptor-container .fixit-decryptor-input:active,.fixit-decryptor-container .fixit-decryptor-input:focus,.fixit-decryptor-container .fixit-decryptor-input:hover,.fixit-decryptor-container .fixit-encryptor-btn:active,.fixit-decryptor-container .fixit-encryptor-btn:focus,.fixit-decryptor-container .fixit-encryptor-btn:hover{color:#2371a2;border-color:#2983bb;box-shadow:0px 0px 5px 0px #6bb2df}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:active,[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:focus,[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:hover,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:active,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:focus,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:hover,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:active,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:focus,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:hover{color:#fff;border-color:#fff;box-shadow:0px 0px 5px 0px #ccc}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn{color:#b1b1ba;border-color:#5c5c5c;box-shadow:0px 0px 5px 0px #5c5c5c}.fixit-decryptor-container #fixit-decryptor-input,.fixit-decryptor-container .fixit-decryptor-input{width:clamp(50%, 400px, 100%);height:3rem;padding-left:1rem;padding-right:1rem;background-color:#fff}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input{background-color:#292a2e}.fixit-decryptor-container .fixit-encryptor-btn{cursor:pointer;transition:0.1s;padding:0.6rem 1rem;background-color:#f8f8f8}[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn{background-color:#252627}.single .single-title{padding:1rem 0 0.5rem;margin:0;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-title .icon-repost{color:var(--fi-success);display:inline-block;width:max-content;margin-right:0.25rem}[data-theme='dark'] .single .single-title .icon-repost{color:var(--fi-success-dark)}.single .single-subtitle{margin:0.5rem 0;font-size:1.2rem;font-weight:normal;line-height:100%}.single .post-meta{font-size:0.875rem;color:#b1b1ba}.single .post-meta span{display:inline-block}[data-theme='dark'] .single .post-meta{color:#909092}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-meta a,[data-theme='dark'] .single .post-meta a::before,[data-theme='dark'] .single .post-meta a::after{color:#b1b1ba}.single .post-meta a:active,.single .post-meta a:hover{color:#ea517f}[data-theme='dark'] .single .post-meta a:active,[data-theme='dark'] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .post-meta .author img.avatar{width:1.3rem;height:1.3rem;border-radius:50%;vertical-align:text-bottom;border:0.25px solid #f0f0f0;box-sizing:border-box;object-position:center;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}[data-theme='dark'] .single .post-meta .author img.avatar{border-color:#363636}.single .featured-image{margin:0.5rem 0 1rem 0}.single .featured-image img{display:block;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single .featured-image img.lazyloaded{width:100%}.single .content>h1,.single .content>h2{font-size:1.5rem}.single .content>h1 code,.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[data-theme='dark'] .single .content h2,[data-theme='dark'] .single .content h3,[data-theme='dark'] .single .content h4,[data-theme='dark'] .single .content h5,[data-theme='dark'] .single .content h6{font-weight:bolder}.single .content>h2>.header-mark::before,.single .content>h3>.header-mark::before,.single .content>h4>.header-mark::before,.single .content>h5>.header-mark::before,.single .content>h6>.header-mark::before{content:'|';margin-right:0.3125rem;color:#2376b7}[data-theme='dark'] .single .content>h2>.header-mark::before,[data-theme='dark'] .single .content>h3>.header-mark::before,[data-theme='dark'] .single .content>h4>.header-mark::before,[data-theme='dark'] .single .content>h5>.header-mark::before,[data-theme='dark'] .single .content>h6>.header-mark::before{color:#1781b5}.single .content>h2>.header-mark::before{content:'#'}.single .content p{margin:0.5rem 0}.single .content b,.single .content strong{font-weight:bold}[data-theme='dark'] .single .content b,[data-theme='dark'] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content a,[data-theme='dark'] .single .content a::before,[data-theme='dark'] .single .content a::after{color:#1781b5}.single .content a:active,.single .content a:hover{color:#ea517f}[data-theme='dark'] .single .content a:active,[data-theme='dark'] .single .content a:hover{color:#619ac3}.single .content a{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}[data-theme='dark'] .single .content a b,[data-theme='dark'] .single .content a strong{color:#1781b5}.single .content [data-theme='dark'] a:hover b,.single .content [data-theme='dark'] a:hover strong{color:#619ac3}.single .content ul,.single .content ol{margin:0.5rem 0;padding-left:2.5rem}.single .content ul{list-style-type:disc}.single .content ruby{background:#f6f8fa}.single .content ruby rt{color:#b1b1ba}[data-theme='dark'] .single .content ruby{background:#2d333b}[data-theme='dark'] .single .content ruby rt{color:#909092}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[data-theme='dark'] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:0.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[data-theme='dark'] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[data-theme='dark'] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table:not([class]) tbody tr:nth-child(odd){background:#f9f9f9}[data-theme='dark'] .single .content .table-wrapper>table:not([class]) tbody tr:nth-child(odd){background-color:#2d333c}.single .content .table-wrapper>table:not([class]) tbody tr:hover{background:#f4f4f4}[data-theme='dark'] .single .content .table-wrapper>table:not([class]) tbody tr:hover{background-color:#333a44}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:0.3rem 1rem;border:1px solid #e8e8e8}[data-theme='dark'] .single .content .table-wrapper>table th,[data-theme='dark'] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content img:not([data-h]){height:auto}.single .content svg{max-width:100%}.single .content figure{margin:0.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:0.5rem;margin:0 auto;font-size:0.875rem;color:#969696}.single .content figure img{display:block;margin:0 auto;overflow:hidden}.single .content figure img.lazyloaded:not([data-w]){width:100%}.single .content .lazyload,.single .content .lazyloading{-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.single .content .lazyloaded{-o-object-fit:fill;object-fit:fill;font-family:"object-fit: fill;"}.single .content blockquote{display:block;border-left:0.25em solid #f0f0f0;color:#697681;padding:0 1em;margin:1rem 0}.single .content blockquote ul,.single .content blockquote ol{padding-left:1.5em}[data-theme='dark'] .single .content blockquote{color:#9ba3aa;border-left-color:#363636}.single .content blockquote a,.single .content blockquote a::before,.single .content blockquote a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content blockquote a,[data-theme='dark'] .single .content blockquote a::before,[data-theme='dark'] .single .content blockquote a::after{color:#b1b1ba}.single .content blockquote a:active,.single .content blockquote a:hover{color:#ea517f}[data-theme='dark'] .single .content blockquote a:active,[data-theme='dark'] .single .content blockquote a:hover{color:#fff}.single .content .footnotes{color:#b1b1ba}[data-theme='dark'] .single .content .footnotes{color:#909092}.single .content .footnotes p{margin:0.25rem 0}.single .content code{padding:0.2em 0.4em;margin:0;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#24292f;background-color:rgba(175,184,193,0.2);text-decoration:inherit;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:auto;-ms-line-break:auto;line-break:auto}[data-theme='dark'] .single .content code{color:#adbac7;background-color:rgba(99,110,123,0.4)}.single .content pre{margin:0;line-height:1.45em;padding:0.5rem;overflow:auto;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;background-color:#f6f8fa}[data-theme='dark'] .single .content pre{background-color:#2d333b}.single .content pre code{padding:0;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}[data-theme='dark'] .single .content pre code{background-color:transparent}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content .highlight,.single .content .gist{font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{margin:0.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;line-height:1.4em;color:#9c9c9c;background-color:#ecf0f5;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-transition:border-radius 0.2s ease;-moz-transition:border-radius 0.2s ease;-o-transition:border-radius 0.2s ease;transition:border-radius 0.2s ease}[data-theme='dark'] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background-color:#20242a}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:0.4rem}.single .content .highlight>.chroma .code-header .code-title .arrow{padding:0 0.2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:0.2rem;content:'Code'}.single .content .highlight>.chroma .code-header .ellipses{padding:0.4rem}.single .content .highlight>.chroma .code-header .edit,.single .content .highlight>.chroma .code-header .copy{display:none;padding:0.4rem}.single .content .highlight>.chroma .code-header .edit:hover,.single .content .highlight>.chroma .code-header .copy:hover{cursor:pointer;color:#2983bb}[data-theme='dark'] .single .content .highlight>.chroma .code-header .edit:hover,[data-theme='dark'] .single .content .highlight>.chroma .code-header .copy:hover{color:#fff}.single .content .highlight>.chroma .code-header.language-abap .code-title::after{content:"ABAP"}.single .content .highlight>.chroma .code-header.language-abnf .code-title::after{content:"ABNF"}.single .content .highlight>.chroma .code-header.language-as .code-title::after{content:"ActionScript"}.single .content .highlight>.chroma .code-header.language-actionscript .code-title::after{content:"ActionScript"}.single .content .highlight>.chroma .code-header.language-as3 .code-title::after{content:"ActionScript 3"}.single .content .highlight>.chroma .code-header.language-actionscript3 .code-title::after{content:"ActionScript 3"}.single .content .highlight>.chroma .code-header.language-ada .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-ada95 .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-ada2005 .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-al .code-title::after{content:"AL"}.single .content .highlight>.chroma .code-header.language-ng2 .code-title::after{content:"Angular2"}.single .content .highlight>.chroma .code-header.language-antlr .code-title::after{content:"ANTLR"}.single .content .highlight>.chroma .code-header.language-apacheconf .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-aconf .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-apache .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-apl .code-title::after{content:"APL"}.single .content .highlight>.chroma .code-header.language-applescript .code-title::after{content:"AppleScript"}.single .content .highlight>.chroma .code-header.language-arduino .code-title::after{content:"Arduino"}.single .content .highlight>.chroma .code-header.language-armasm .code-title::after{content:"ArmAsm"}.single .content .highlight>.chroma .code-header.language-awk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-gawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-mawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-nawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-ballerina .code-title::after{content:"Ballerina"}.single .content .highlight>.chroma .code-header.language-make .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-mf .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-bsdmake .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-sh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-ksh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-zsh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-bash-session .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-console .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-shell-session .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-bat .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-batch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-dosbatch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-winbatch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-bib .code-title::after{content:"BibTeX"}.single .content .highlight>.chroma .code-header.language-bibtex .code-title::after{content:"BibTeX"}.single .content .highlight>.chroma .code-header.language-bicep .code-title::after{content:"Bicep"}.single .content .highlight>.chroma .code-header.language-blitzbasic .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-b3d .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-bplus .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-bnf .code-title::after{content:"BNF"}.single .content .highlight>.chroma .code-header.language-brainfuck .code-title::after{content:"Brainfuck"}.single .content .highlight>.chroma .code-header.language-bf .code-title::after{content:"Brainfuck"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-csharp .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-c\# .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-c\+\+ .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-caddyfile .code-title::after{content:"Caddyfile"}.single .content .highlight>.chroma .code-header.language-caddy .code-title::after{content:"Caddyfile"}.single .content .highlight>.chroma .code-header.language-caddyfile-directives .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-caddyfile-d .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-caddy-d .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-capnp .code-title::after{content:"Cap'n Proto"}.single .content .highlight>.chroma .code-header.language-cassandra .code-title::after{content:"Cassandra CQL"}.single .content .highlight>.chroma .code-header.language-cql .code-title::after{content:"Cassandra CQL"}.single .content .highlight>.chroma .code-header.language-ceylon .code-title::after{content:"Ceylon"}.single .content .highlight>.chroma .code-header.language-cfengine3 .code-title::after{content:"CFEngine3"}.single .content .highlight>.chroma .code-header.language-cf3 .code-title::after{content:"CFEngine3"}.single .content .highlight>.chroma .code-header.language-cfs .code-title::after{content:"cfstatement"}.single .content .highlight>.chroma .code-header.language-chai .code-title::after{content:"ChaiScript"}.single .content .highlight>.chroma .code-header.language-chaiscript .code-title::after{content:"ChaiScript"}.single .content .highlight>.chroma .code-header.language-cheetah .code-title::after{content:"Cheetah"}.single .content .highlight>.chroma .code-header.language-spitfire .code-title::after{content:"Cheetah"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-clj .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-cmake .code-title::after{content:"CMake"}.single .content .highlight>.chroma .code-header.language-cobol .code-title::after{content:"COBOL"}.single .content .highlight>.chroma .code-header.language-coffee-script .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-coffee .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-common-lisp .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-cl .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-coq .code-title::after{content:"Coq"}.single .content .highlight>.chroma .code-header.language-cr .code-title::after{content:"Crystal"}.single .content .highlight>.chroma .code-header.language-crystal .code-title::after{content:"Crystal"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-cython .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-pyx .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-pyrex .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-d .code-title::after{content:"D"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-udiff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-django .code-title::after{content:"Django/Jinja"}.single .content .highlight>.chroma .code-header.language-jinja .code-title::after{content:"Django/Jinja"}.single .content .highlight>.chroma .code-header.language-docker .code-title::after{content:"Docker"}.single .content .highlight>.chroma .code-header.language-dockerfile .code-title::after{content:"Docker"}.single .content .highlight>.chroma .code-header.language-dtd .code-title::after{content:"DTD"}.single .content .highlight>.chroma .code-header.language-dylan .code-title::after{content:"Dylan"}.single .content .highlight>.chroma .code-header.language-ebnf .code-title::after{content:"EBNF"}.single .content .highlight>.chroma .code-header.language-elixir .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-ex .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-exs .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-elm .code-title::after{content:"Elm"}.single .content .highlight>.chroma .code-header.language-emacs .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-elisp .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-emacs-lisp .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-factor .code-title::after{content:"Factor"}.single .content .highlight>.chroma .code-header.language-fennel .code-title::after{content:"Fennel"}.single .content .highlight>.chroma .code-header.language-fnl .code-title::after{content:"Fennel"}.single .content .highlight>.chroma .code-header.language-fish .code-title::after{content:"Fish"}.single .content .highlight>.chroma .code-header.language-fishshell .code-title::after{content:"Fish"}.single .content .highlight>.chroma .code-header.language-forth .code-title::after{content:"Forth"}.single .content .highlight>.chroma .code-header.language-fortran .code-title::after{content:"Fortran"}.single .content .highlight>.chroma .code-header.language-fortranfixed .code-title::after{content:"FortranFixed"}.single .content .highlight>.chroma .code-header.language-fsharp .code-title::after{content:"FSharp"}.single .content .highlight>.chroma .code-header.language-gas .code-title::after{content:"GAS"}.single .content .highlight>.chroma .code-header.language-asm .code-title::after{content:"GAS"}.single .content .highlight>.chroma .code-header.language-gdscript .code-title::after{content:"GDScript"}.single .content .highlight>.chroma .code-header.language-gd .code-title::after{content:"GDScript"}.single .content .highlight>.chroma .code-header.language-genshi .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-kid .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-xml\+genshi .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-xml\+kid .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-html\+genshi .code-title::after{content:"Genshi HTML"}.single .content .highlight>.chroma .code-header.language-html\+kid .code-title::after{content:"Genshi HTML"}.single .content .highlight>.chroma .code-header.language-genshitext .code-title::after{content:"Genshi Text"}.single .content .highlight>.chroma .code-header.language-cucumber .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-Cucumber .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-gherkin .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-Gherkin .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-glsl .code-title::after{content:"GLSL"}.single .content .highlight>.chroma .code-header.language-gnuplot .code-title::after{content:"Gnuplot"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-golang .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-go-text-template .code-title::after{content:"Go Text Template"}.single .content .highlight>.chroma .code-header.language-graphql .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-graphqls .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-gql .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-groff .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-nroff .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-man .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-handlebars .code-title::after{content:"Handlebars"}.single .content .highlight>.chroma .code-header.language-hbs .code-title::after{content:"Handlebars"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-hs .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-hx .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-haxe .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-hxsl .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-hcl .code-title::after{content:"HCL"}.single .content .highlight>.chroma .code-header.language-hexdump .code-title::after{content:"Hexdump"}.single .content .highlight>.chroma .code-header.language-hlb .code-title::after{content:"HLB"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-hylang .code-title::after{content:"Hy"}.single .content .highlight>.chroma .code-header.language-idris .code-title::after{content:"Idris"}.single .content .highlight>.chroma .code-header.language-idr .code-title::after{content:"Idris"}.single .content .highlight>.chroma .code-header.language-igor .code-title::after{content:"Igor"}.single .content .highlight>.chroma .code-header.language-igorpro .code-title::after{content:"Igor"}.single .content .highlight>.chroma .code-header.language-ini .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-cfg .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-dosini .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-io .code-title::after{content:"Io"}.single .content .highlight>.chroma .code-header.language-j .code-title::after{content:"J"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-julia .code-title::after{content:"Julia"}.single .content .highlight>.chroma .code-header.language-jl .code-title::after{content:"Julia"}.single .content .highlight>.chroma .code-header.language-jungle .code-title::after{content:"Jungle"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-lighty .code-title::after{content:"Lighttpd configuration file"}.single .content .highlight>.chroma .code-header.language-lighttpd .code-title::after{content:"Lighttpd configuration file"}.single .content .highlight>.chroma .code-header.language-llvm .code-title::after{content:"LLVM"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-mako .code-title::after{content:"Mako"}.single .content .highlight>.chroma .code-header.language-md .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-mkd .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-mason .code-title::after{content:"Mason"}.single .content .highlight>.chroma .code-header.language-mathematica .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-mma .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-nb .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-mcfunction .code-title::after{content:"mcfunction"}.single .content .highlight>.chroma .code-header.language-meson .code-title::after{content:"Meson"}.single .content .highlight>.chroma .code-header.language-meson\.build .code-title::after{content:"Meson"}.single .content .highlight>.chroma .code-header.language-metal .code-title::after{content:"Metal"}.single .content .highlight>.chroma .code-header.language-minizinc .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-MZN .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-mzn .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-mlir .code-title::after{content:"MLIR"}.single .content .highlight>.chroma .code-header.language-modula2 .code-title::after{content:"Modula-2"}.single .content .highlight>.chroma .code-header.language-m2 .code-title::after{content:"Modula-2"}.single .content .highlight>.chroma .code-header.language-monkeyc .code-title::after{content:"MonkeyC"}.single .content .highlight>.chroma .code-header.language-morrowind .code-title::after{content:"MorrowindScript"}.single .content .highlight>.chroma .code-header.language-mwscript .code-title::after{content:"MorrowindScript"}.single .content .highlight>.chroma .code-header.language-myghty .code-title::after{content:"Myghty"}.single .content .highlight>.chroma .code-header.language-mysql .code-title::after{content:"MySQL"}.single .content .highlight>.chroma .code-header.language-mariadb .code-title::after{content:"MySQL"}.single .content .highlight>.chroma .code-header.language-nasm .code-title::after{content:"NASM"}.single .content .highlight>.chroma .code-header.language-newspeak .code-title::after{content:"Newspeak"}.single .content .highlight>.chroma .code-header.language-nginx .code-title::after{content:"Nginx configuration file"}.single .content .highlight>.chroma .code-header.language-nim .code-title::after{content:"Nim"}.single .content .highlight>.chroma .code-header.language-nimrod .code-title::after{content:"Nim"}.single .content .highlight>.chroma .code-header.language-nixos .code-title::after{content:"Nix"}.single .content .highlight>.chroma .code-header.language-nix .code-title::after{content:"Nix"}.single .content .highlight>.chroma .code-header.language-objective-c .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-obj-c .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-objc .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-ocaml .code-title::after{content:"OCaml"}.single .content .highlight>.chroma .code-header.language-octave .code-title::after{content:"Octave"}.single .content .highlight>.chroma .code-header.language-ones .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-onesenterprise .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-1S .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-1S:Enterprise .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-openedge .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-abl .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-progress .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-openedgeabl .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-openscad .code-title::after{content:"OpenSCAD"}.single .content .highlight>.chroma .code-header.language-org .code-title::after{content:"Org Mode"}.single .content .highlight>.chroma .code-header.language-orgmode .code-title::after{content:"Org Mode"}.single .content .highlight>.chroma .code-header.language-pacmanconf .code-title::after{content:"PacmanConf"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-pl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php3 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php4 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php5 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-phtml .code-title::after{content:"PHTML"}.single .content .highlight>.chroma .code-header.language-pig .code-title::after{content:"Pig"}.single .content .highlight>.chroma .code-header.language-pkgconfig .code-title::after{content:"PkgConfig"}.single .content .highlight>.chroma .code-header.language-plpgsql .code-title::after{content:"PL/pgSQL"}.single .content .highlight>.chroma .code-header.language-text .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-plain .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-no-highlight .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-plutus-core .code-title::after{content:"Plutus Core"}.single .content .highlight>.chroma .code-header.language-plc .code-title::after{content:"Plutus Core"}.single .content .highlight>.chroma .code-header.language-pony .code-title::after{content:"Pony"}.single .content .highlight>.chroma .code-header.language-postgresql .code-title::after{content:"PostgreSQL SQL dialect"}.single .content .highlight>.chroma .code-header.language-postgres .code-title::after{content:"PostgreSQL SQL dialect"}.single .content .highlight>.chroma .code-header.language-postscript .code-title::after{content:"PostScript"}.single .content .highlight>.chroma .code-header.language-postscr .code-title::after{content:"PostScript"}.single .content .highlight>.chroma .code-header.language-pov .code-title::after{content:"POVRay"}.single .content .highlight>.chroma .code-header.language-powerquery .code-title::after{content:"PowerQuery"}.single .content .highlight>.chroma .code-header.language-pq .code-title::after{content:"PowerQuery"}.single .content .highlight>.chroma .code-header.language-powershell .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-posh .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-ps1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-psm1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-psd1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-prolog .code-title::after{content:"Prolog"}.single .content .highlight>.chroma .code-header.language-promql .code-title::after{content:"PromQL"}.single .content .highlight>.chroma .code-header.language-protobuf .code-title::after{content:"Protocol Buffer"}.single .content .highlight>.chroma .code-header.language-proto .code-title::after{content:"Protocol Buffer"}.single .content .highlight>.chroma .code-header.language-puppet .code-title::after{content:"Puppet"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-py .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-sage .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-python3 .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-py3 .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-python2 .code-title::after{content:"Python 2"}.single .content .highlight>.chroma .code-header.language-py2 .code-title::after{content:"Python 2"}.single .content .highlight>.chroma .code-header.language-qbasic .code-title::after{content:"QBasic"}.single .content .highlight>.chroma .code-header.language-basic .code-title::after{content:"QBasic"}.single .content .highlight>.chroma .code-header.language-qml .code-title::after{content:"QML"}.single .content .highlight>.chroma .code-header.language-qbs .code-title::after{content:"QML"}.single .content .highlight>.chroma .code-header.language-splus .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-s .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-racket .code-title::after{content:"Racket"}.single .content .highlight>.chroma .code-header.language-rkt .code-title::after{content:"Racket"}.single .content .highlight>.chroma .code-header.language-ragel .code-title::after{content:"Ragel"}.single .content .highlight>.chroma .code-header.language-perl6 .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-pl6 .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-raku .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-jsx .code-title::after{content:"react"}.single .content .highlight>.chroma .code-header.language-react .code-title::after{content:"react"}.single .content .highlight>.chroma .code-header.language-reason .code-title::after{content:"ReasonML"}.single .content .highlight>.chroma .code-header.language-reasonml .code-title::after{content:"ReasonML"}.single .content .highlight>.chroma .code-header.language-registry .code-title::after{content:"reg"}.single .content .highlight>.chroma .code-header.language-rst .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-rest .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-restructuredtext .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-rexx .code-title::after{content:"Rexx"}.single .content .highlight>.chroma .code-header.language-arexx .code-title::after{content:"Rexx"}.single .content .highlight>.chroma .code-header.language-rb .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-duby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-rs .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-sas .code-title::after{content:"SAS"}.single .content .highlight>.chroma .code-header.language-sass .code-title::after{content:"Sass"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scheme .code-title::after{content:"Scheme"}.single .content .highlight>.chroma .code-header.language-scm .code-title::after{content:"Scheme"}.single .content .highlight>.chroma .code-header.language-scilab .code-title::after{content:"Scilab"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"SCSS"}.single .content .highlight>.chroma .code-header.language-sieve .code-title::after{content:"Sieve"}.single .content .highlight>.chroma .code-header.language-smalltalk .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-squeak .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-st .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-smarty .code-title::after{content:"Smarty"}.single .content .highlight>.chroma .code-header.language-snobol .code-title::after{content:"Snobol"}.single .content .highlight>.chroma .code-header.language-sol .code-title::after{content:"Solidity"}.single .content .highlight>.chroma .code-header.language-solidity .code-title::after{content:"Solidity"}.single .content .highlight>.chroma .code-header.language-sparql .code-title::after{content:"SPARQL"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-squidconf .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-squid\.conf .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-squid .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-sml .code-title::after{content:"Standard ML"}.single .content .highlight>.chroma .code-header.language-stylus .code-title::after{content:"Stylus"}.single .content .highlight>.chroma .code-header.language-svelte .code-title::after{content:"Svelte"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-systemd .code-title::after{content:"SYSTEMD"}.single .content .highlight>.chroma .code-header.language-systemverilog .code-title::after{content:"systemverilog"}.single .content .highlight>.chroma .code-header.language-sv .code-title::after{content:"systemverilog"}.single .content .highlight>.chroma .code-header.language-tablegen .code-title::after{content:"TableGen"}.single .content .highlight>.chroma .code-header.language-tasm .code-title::after{content:"TASM"}.single .content .highlight>.chroma .code-header.language-tcl .code-title::after{content:"Tcl"}.single .content .highlight>.chroma .code-header.language-tcsh .code-title::after{content:"Tcsh"}.single .content .highlight>.chroma .code-header.language-csh .code-title::after{content:"Tcsh"}.single .content .highlight>.chroma .code-header.language-termcap .code-title::after{content:"Termcap"}.single .content .highlight>.chroma .code-header.language-terminfo .code-title::after{content:"Terminfo"}.single .content .highlight>.chroma .code-header.language-terraform .code-title::after{content:"Terraform"}.single .content .highlight>.chroma .code-header.language-tf .code-title::after{content:"Terraform"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-thrift .code-title::after{content:"Thrift"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-tradingview .code-title::after{content:"TradingView"}.single .content .highlight>.chroma .code-header.language-tv .code-title::after{content:"TradingView"}.single .content .highlight>.chroma .code-header.language-tsql .code-title::after{content:"Transact-SQL"}.single .content .highlight>.chroma .code-header.language-t-sql .code-title::after{content:"Transact-SQL"}.single .content .highlight>.chroma .code-header.language-turing .code-title::after{content:"Turing"}.single .content .highlight>.chroma .code-header.language-turtle .code-title::after{content:"Turtle"}.single .content .highlight>.chroma .code-header.language-twig .code-title::after{content:"Twig"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-tsx .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typoscript .code-title::after{content:"TypoScript"}.single .content .highlight>.chroma .code-header.language-typoscriptcssdata .code-title::after{content:"TypoScriptCssData"}.single .content .highlight>.chroma .code-header.language-typoscripthtmldata .code-title::after{content:"TypoScriptHtmlData"}.single .content .highlight>.chroma .code-header.language-v .code-title::after{content:"verilog"}.single .content .highlight>.chroma .code-header.language-vlang .code-title::after{content:"V"}.single .content .highlight>.chroma .code-header.language-vsh .code-title::after{content:"V shell"}.single .content .highlight>.chroma .code-header.language-vshell .code-title::after{content:"V shell"}.single .content .highlight>.chroma .code-header.language-vb\.net .code-title::after{content:"VB.net"}.single .content .highlight>.chroma .code-header.language-vbnet .code-title::after{content:"VB.net"}.single .content .highlight>.chroma .code-header.language-verilog .code-title::after{content:"verilog"}.single .content .highlight>.chroma .code-header.language-vhdl .code-title::after{content:"VHDL"}.single .content .highlight>.chroma .code-header.language-vim .code-title::after{content:"VimL"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"vue"}.single .content .highlight>.chroma .code-header.language-vuejs .code-title::after{content:"vue"}.single .content .highlight>.chroma .code-header.language-whiley .code-title::after{content:"Whiley"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-xorg\.conf .code-title::after{content:"Xorg"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yang .code-title::after{content:"YANG"}.single .content .highlight>.chroma .code-header.language-zed .code-title::after{content:"Zed"}.single .content .highlight>.chroma .code-header.language-zig .code-title::after{content:"Zig"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"markdown"}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow:hidden;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma table{border-spacing:0;width:auto;overflow:auto;display:block;background-color:#f6f8fa}[data-theme='dark'] .single .content .highlight>.chroma table{background-color:#2d333b}.single .content .highlight>.chroma table td{vertical-align:top;padding:0}.single .content .highlight>.chroma table pre{padding:0.25rem;outline-offset:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.single .content .highlight>.chroma table .ln{min-width:1.25rem}.single .content .highlight>.chroma table .lntd:first-child{min-width:1.6rem;text-align:right}.single .content .highlight>.chroma table .lntd:first-child pre{padding-right:0}.single .content .highlight>.chroma table .lntd:last-child{width:100%}.single .content .highlight>.chroma table .lntd:last-child pre{padding-left:0.5rem;padding-right:0.5rem}.single .content .highlight>.chroma table .lntd:last-child code{width:100%}.single .content .highlight>.chroma.open .code-header{background-color:#e2e9ef;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}[data-theme='dark'] .single .content .highlight>.chroma.open .code-header{background-color:#262b32}.single .content .highlight>.chroma.open .table-wrapper{max-height:100%;-webkit-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .edit,.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .hl{display:block;background-color:#fff8c5;box-shadow:-0.5rem 0 0 #fff8c5,0.5rem 0 0 #fff8c5}[data-theme='dark'] .single .content .highlight .hl{background-color:rgba(174,124,20,0.15);box-shadow:-0.5rem 0 0 rgba(174,124,20,0.15),0.5rem 0 0 rgba(174,124,20,0.15)}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .gs{font-weight:bold}.single .content .highlight .ge{font-style:italic}.single .content .highlight .ln{padding-right:0.5rem;display:inline-block;min-width:1.1rem;text-align:right}.single .content .highlight .lnt,.single .content .highlight .ln{color:#b1b1ba}[data-theme='dark'] .single .content .highlight .lnt,[data-theme='dark'] .single .content .highlight .ln{color:#909092}.single .content .highlight .err{font-style:italic;border-bottom:1px dotted #dc3545}.single .content .highlight .gd{background-color:#ffebe9}[data-theme='dark'] .single .content .highlight .gd{background-color:#78191b}.single .content .highlight .gi{background-color:#dafbe1}[data-theme='dark'] .single .content .highlight .gi{background-color:#1b4721}.single .content .highlight .err{color:#dc3545}.single .content .highlight .k{color:#cf222e}.single .content .highlight .kc{color:#0550ae}.single .content .highlight .kd{color:#cf222e}.single .content .highlight .kn{color:#cf222e}.single .content .highlight .kp{color:#cf222e}.single .content .highlight .kr{color:#cf222e}.single .content .highlight .kt{color:#cf222e}.single .content .highlight .n{color:#24292f}.single .content .highlight .na{color:#0550ae}.single .content .highlight .nb{color:#0550ae}.single .content .highlight .bp{color:#24292f}.single .content .highlight .nc{color:#8250df}.single .content .highlight .no{color:#cf222e}.single .content .highlight .nd{color:#8250df}.single .content .highlight .ni{color:#0550ae}.single .content .highlight .ne{color:#0550ae}.single .content .highlight .nf{color:#0550ae}.single .content .highlight .fm{color:#0550ae}.single .content .highlight .nl{color:#0550ae}.single .content .highlight .nn{color:#8250df}.single .content .highlight .nx{color:#0550ae}.single .content .highlight .py{color:#0550ae}.single .content .highlight .nt{color:#116329}.single .content .highlight .nv{color:#953800}.single .content .highlight .vc{color:#0550ae}.single .content .highlight .vg{color:#0550ae}.single .content .highlight .vi{color:#0550ae}.single .content .highlight .vm{color:#0550ae}.single .content .highlight .l{color:#0550ae}.single .content .highlight .ld{color:#0a3069}.single .content .highlight .s{color:#0a3069}.single .content .highlight .sa{color:#0a3069}.single .content .highlight .sb{color:#0a3069}.single .content .highlight .sc{color:#0a3069}.single .content .highlight .dl{color:#0a3069}.single .content .highlight .sd{color:#0a3069}.single .content .highlight .s2{color:#0a3069}.single .content .highlight .se{color:#0a3069}.single .content .highlight .sh{color:#0a3069}.single .content .highlight .si{color:#0a3069}.single .content .highlight .sx{color:#0a3069}.single .content .highlight .sr{color:#0a3069}.single .content .highlight .s1{color:#0a3069}.single .content .highlight .ss{color:#0a3069}.single .content .highlight .m{color:#0550ae}.single .content .highlight .mb{color:#0550ae}.single .content .highlight .mf{color:#0550ae}.single .content .highlight .mh{color:#0550ae}.single .content .highlight .mi{color:#0550ae}.single .content .highlight .il{color:#0550ae}.single .content .highlight .mo{color:#0550ae}.single .content .highlight .o{color:#cf222e}.single .content .highlight .ow{color:#cf222e}.single .content .highlight .p{color:#24292f}.single .content .highlight .c{color:#6e7781}.single .content .highlight .ch{color:#6e7781}.single .content .highlight .cm{color:#6e7781}.single .content .highlight .c1{color:#6e7781}.single .content .highlight .cs{color:#6e7781}.single .content .highlight .cp{color:#0550ae}.single .content .highlight .cpf{color:#6e7781}.single .content .highlight .g{color:#24292f}.single .content .highlight .gd{color:#82071e}.single .content .highlight .ge{color:#24292f}.single .content .highlight .gr{color:#dc3545}.single .content .highlight .gh{color:#24292f}.single .content .highlight .gi{color:#116329}.single .content .highlight .go{color:#24292f}.single .content .highlight .gp{color:#24292f}.single .content .highlight .gs{color:#24292f}.single .content .highlight .gu{color:#24292f}.single .content .highlight .gt{color:#dc3545}.single .content .highlight .gl{color:#24292f}.single .content .highlight .w{color:#24292f}.single .content .highlight .x{color:#24292f}[data-theme='dark'] .single .content .highlight .err{color:#dc3545}[data-theme='dark'] .single .content .highlight .k{color:#f47067}[data-theme='dark'] .single .content .highlight .kc{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .kd{color:#f47067}[data-theme='dark'] .single .content .highlight .kn{color:#f47067}[data-theme='dark'] .single .content .highlight .kp{color:#f47067}[data-theme='dark'] .single .content .highlight .kr{color:#f47067}[data-theme='dark'] .single .content .highlight .kt{color:#f47067}[data-theme='dark'] .single .content .highlight .n{color:#adbac7}[data-theme='dark'] .single .content .highlight .na{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nb{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .bp{color:#adbac7}[data-theme='dark'] .single .content .highlight .nc{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .no{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nd{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .ni{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .ne{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nf{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .fm{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nl{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nn{color:#f47067}[data-theme='dark'] .single .content .highlight .nx{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .py{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nt{color:#8ddb8c}[data-theme='dark'] .single .content .highlight .nv{color:#f69d50}[data-theme='dark'] .single .content .highlight .vc{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vg{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vi{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vm{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .l{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .ld{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sa{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sb{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sc{color:#96d0ff}[data-theme='dark'] .single .content .highlight .dl{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sd{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s2{color:#96d0ff}[data-theme='dark'] .single .content .highlight .se{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sh{color:#96d0ff}[data-theme='dark'] .single .content .highlight .si{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sx{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sr{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s1{color:#96d0ff}[data-theme='dark'] .single .content .highlight .ss{color:#96d0ff}[data-theme='dark'] .single .content .highlight .m{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mb{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mf{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mh{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mi{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .il{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mo{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .o{color:#f47067}[data-theme='dark'] .single .content .highlight .ow{color:#f47067}[data-theme='dark'] .single .content .highlight .p{color:#adbac7}[data-theme='dark'] .single .content .highlight .c{color:#768390}[data-theme='dark'] .single .content .highlight .ch{color:#768390}[data-theme='dark'] .single .content .highlight .cm{color:#768390}[data-theme='dark'] .single .content .highlight .c1{color:#768390}[data-theme='dark'] .single .content .highlight .cs{color:#768390}[data-theme='dark'] .single .content .highlight .cp{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .cpf{color:#768390}[data-theme='dark'] .single .content .highlight .g{color:#adbac7}[data-theme='dark'] .single .content .highlight .gd{color:#ffd8d3}[data-theme='dark'] .single .content .highlight .ge{color:#adbac7}[data-theme='dark'] .single .content .highlight .gr{color:#dc3545}[data-theme='dark'] .single .content .highlight .gh{color:#adbac7}[data-theme='dark'] .single .content .highlight .gi{color:#b4f1b4}[data-theme='dark'] .single .content .highlight .go{color:#adbac7}[data-theme='dark'] .single .content .highlight .gp{color:#adbac7}[data-theme='dark'] .single .content .highlight .gs{color:#adbac7}[data-theme='dark'] .single .content .highlight .gu{color:#adbac7}[data-theme='dark'] .single .content .highlight .gt{color:#dc3545}[data-theme='dark'] .single .content .highlight .gl{color:#adbac7}[data-theme='dark'] .single .content .highlight .w{color:#adbac7}[data-theme='dark'] .single .content .highlight .x{color:#adbac7}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-data{background-color:transparent}.single .content .gist .gist-meta{padding:0.4rem 0.8rem;background-color:#e6ebf1}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content .gist .gist-meta a,[data-theme='dark'] .single .content .gist .gist-meta a::before,[data-theme='dark'] .single .content .gist .gist-meta a::after{color:#1781b5}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ea517f}[data-theme='dark'] .single .content .gist .gist-meta a:active,[data-theme='dark'] .single .content .gist .gist-meta a:hover{color:#619ac3}[data-theme='dark'] .single .content .gist .gist-meta{background-color:#22262d}.single .content .gist .table-wrapper .highlight,.single .content .gist .table-wrapper::-webkit-scrollbar{background-color:#f6f8fa}[data-theme='dark'] .single .content .gist .table-wrapper .highlight,[data-theme='dark'] .single .content .gist .table-wrapper::-webkit-scrollbar{background-color:#2d333b}[data-theme='dark'] .single .content .gist{--color-fg-default: #adbac7;--color-prettylights-syntax-comment: #768390;--color-prettylights-syntax-constant: #6cb6ff;--color-prettylights-syntax-entity: #dcbdfb;--color-prettylights-syntax-storage-modifier-import: #adbac7;--color-prettylights-syntax-entity-tag: #8ddb8c;--color-prettylights-syntax-keyword: #f47067;--color-prettylights-syntax-string: #96d0ff;--color-prettylights-syntax-variable: #f69d50;--color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;--color-prettylights-syntax-invalid-illegal-text: #cdd9e5;--color-prettylights-syntax-invalid-illegal-bg: #922323;--color-prettylights-syntax-carriage-return-text: #cdd9e5;--color-prettylights-syntax-carriage-return-bg: #ad2e2c;--color-prettylights-syntax-string-regexp: #8ddb8c;--color-prettylights-syntax-markup-list: #eac55f;--color-prettylights-syntax-markup-heading: #316dca;--color-prettylights-syntax-markup-italic: #adbac7;--color-prettylights-syntax-markup-bold: #adbac7;--color-prettylights-syntax-markup-deleted-text: #ffd8d3;--color-prettylights-syntax-markup-deleted-bg: #78191b;--color-prettylights-syntax-markup-inserted-text: #b4f1b4;--color-prettylights-syntax-markup-inserted-bg: #1b4721;--color-prettylights-syntax-markup-changed-text: #ffddb0;--color-prettylights-syntax-markup-changed-bg: #682d0f;--color-prettylights-syntax-markup-ignored-text: #adbac7;--color-prettylights-syntax-markup-ignored-bg: #255ab2;--color-prettylights-syntax-meta-diff-range: #dcbdfb;--color-prettylights-syntax-brackethighlighter-angle: #768390;--color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;--color-prettylights-syntax-constant-other-reference-link: #96d0ff}[data-theme='dark'] .single .content .gist .blob-num,[data-theme='dark'] .single .content .gist .blob-code-inner{color:val(--color-fg-default)}[data-theme='dark'] .single .content .gist .pl-c{color:var(--color-prettylights-syntax-comment)}[data-theme='dark'] .single .content .gist .pl-c1,[data-theme='dark'] .single .content .gist .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}[data-theme='dark'] .single .content .gist .pl-e,[data-theme='dark'] .single .content .gist .pl-en{color:var(--color-prettylights-syntax-entity)}[data-theme='dark'] .single .content .gist .pl-smi,[data-theme='dark'] .single .content .gist .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}[data-theme='dark'] .single .content .gist .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}[data-theme='dark'] .single .content .gist .pl-k{color:var(--color-prettylights-syntax-keyword)}[data-theme='dark'] .single .content .gist .pl-s,[data-theme='dark'] .single .content .gist .pl-pds,[data-theme='dark'] .single .content .gist .pl-s .pl-pse .pl-s1,[data-theme='dark'] .single .content .gist .pl-sr,[data-theme='dark'] .single .content .gist .pl-sr .pl-cce,[data-theme='dark'] .single .content .gist .pl-sr .pl-sre,[data-theme='dark'] .single .content .gist .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}[data-theme='dark'] .single .content .gist .pl-v,[data-theme='dark'] .single .content .gist .pl-smw{color:var(--color-prettylights-syntax-variable)}[data-theme='dark'] .single .content .gist .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}[data-theme='dark'] .single .content .gist .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}[data-theme='dark'] .single .content .gist .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}[data-theme='dark'] .single .content .gist .pl-c2::before{content:'^M'}[data-theme='dark'] .single .content .gist .pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}[data-theme='dark'] .single .content .gist .pl-ml{color:var(--color-prettylights-syntax-markup-list)}[data-theme='dark'] .single .content .gist .pl-mh,[data-theme='dark'] .single .content .gist .pl-mh .pl-en,[data-theme='dark'] .single .content .gist .pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}[data-theme='dark'] .single .content .gist .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}[data-theme='dark'] .single .content .gist .pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}[data-theme='dark'] .single .content .gist .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}[data-theme='dark'] .single .content .gist .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}[data-theme='dark'] .single .content .gist .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}[data-theme='dark'] .single .content .gist .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}[data-theme='dark'] .single .content .gist .pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}[data-theme='dark'] .single .content .gist .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}[data-theme='dark'] .single .content .gist .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}[data-theme='dark'] .single .content .gist .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.single .content .admonition{position:relative;margin:1rem 0;padding:0 0.75rem;background-color:rgba(68,138,255,0.1);border-left:0.25rem solid #448aff;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:0.25rem 1.8rem;border-bottom:1px solid rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition .admonition-content{padding:0.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;color:#448aff;position:absolute;top:0.6rem;left:0.4rem}.single .content .admonition i.details-icon{position:absolute;top:0.6rem;right:0.3rem}.single .content .admonition.note{border-left-color:#448aff}.single .content .admonition.note i.icon{color:#448aff}.single .content .admonition.abstract{border-left-color:#00b0ff}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{border-left-color:#00b8d4}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{border-left-color:#00bfa5}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{border-left-color:#00c853}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{border-left-color:#64dd17}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{border-left-color:#ff9100}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{border-left-color:#ff5252}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{border-left-color:#ff1744}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{border-left-color:#f50057}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{border-left-color:#651fff}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{border-left-color:#9e9e9e}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition.note{background-color:rgba(68,138,255,0.1)}.single .content .admonition.note .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.note.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.info{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.success{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.question{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.example{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition:last-child{margin-bottom:0.75rem}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content .card-link{position:relative;display:block;margin:0.5rem auto;box-sizing:border-box;width:clamp(50%, 400px, 100%);max-width:100%;overflow:hidden;text-decoration:none;border:none;-webkit-border-radius:.75rem;-moz-border-radius:.75rem;border-radius:.75rem}.single .content .cl-backdrop{position:absolute;top:0.75rem;bottom:0.75rem;left:0;right:0;background-image:var(--cl-bg-url);background-repeat:no-repeat;filter:blur(0.5rem);opacity:0.5;background-size:contain;background-position:center}.single .content .cl-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0.75rem;background-color:rgba(245,245,245,0.88)}.single .content .cl-text{overflow:hidden}.single .content .cl-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;max-height:calc(1rem * 1.25 * 2);font-size:1rem;font-weight:500;line-height:1.25;color:#161209}.single .content .cl-meta{display:flex;align-items:center;margin-top:0.25rem;font-size:0.825rem;color:#b1b1ba}.single .content .cl-icon-link{width:1rem;height:1rem;flex-shrink:0;margin-right:0.25rem}.single .content .cl-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.single .content .cl-icon-globe{width:4rem;height:4rem;flex-shrink:0;margin-left:0.25rem}[data-theme='dark'] .single .content .cl-content{background-color:rgba(61,62,65,0.88)}[data-theme='dark'] .single .content .cl-title{color:#b1b1ba}[data-theme='dark'] .single .content .cl-meta{color:#909092}.single .content .blockquote-center{border-left:none;margin:40px 0;padding:0;position:relative;text-align:center;color:initial}.single .content .blockquote-center::after,.single .content .blockquote-center::before{left:0;line-height:1;opacity:0.6;position:absolute;width:100%}.single .content .blockquote-center::before{border-top:1px solid #f0f0f0;text-align:left;top:-20px;content:'\f10d';font-family:'Font Awesome 5 Free';font-weight:900}[data-theme='dark'] .single .content .blockquote-center::before{border-top-color:#363636}.single .content .blockquote-center::after{border-bottom:1px solid #f0f0f0;bottom:-20px;text-align:right;content:'\f10e';font-family:'Font Awesome 5 Free';font-weight:900}[data-theme='dark'] .single .content .blockquote-center::after{border-bottom-color:#363636}.single .content .echarts{margin:0.5rem 0;text-align:center}[data-theme='dark'] .single .content iframe.instagram-media{border:none !important}.single .content .mapbox{margin:0.5rem 0;padding:0.5rem 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.single .content hr{margin:1rem 0;position:relative;border-top:1px dashed #f0f0f0;border-bottom:none}[data-theme='dark'] .single .content hr{border-top:1px dashed #363636}.single .content kbd{display:inline-block;padding:0 0.25rem;background-color:#fff;border:1px solid #f0f0f0;border-bottom-color:#f0f0f0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0;font-size:0.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#24292f}[data-theme='dark'] .single .content kbd{background-color:#292a2e;border:1px solid #363636;border-bottom-color:#363636;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636;color:#adbac7}.single .content .version{height:1.25em;vertical-align:text-bottom}.single .post-footer{margin-top:3rem}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:1rem 0 0.3rem}[data-theme='dark'] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#b1b1ba}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod{color:#909092}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#619ac3}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#b1b1ba}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license{color:#909092}.single .post-footer .post-info .post-info-line .post-info-license a,.single .post-footer .post-info .post-info-line .post-info-license a::before,.single .post-footer .post-info .post-info-line .post-info-license a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-license a:active,.single .post-footer .post-info .post-info-line .post-info-license a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a:hover{color:#619ac3}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:fit-content}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#619ac3}.single .post-footer .post-info .post-info-line .post-info-md>span:not(:first-child)::before{content:'|';margin-left:0.25rem;margin-right:0.25rem}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0 1rem;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-nav::before,.single .post-footer .post-nav::after{content:' ';display:table}.single .post-footer .post-nav a.prev,.single .post-footer .post-nav a.next{font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav a.prev{float:left}.single .post-footer .post-nav a.prev:hover{-webkit-transform:translateX(-4px);-moz-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav a.next{float:right}.single .post-footer .post-nav a.next:hover{-webkit-transform:translateX(4px);-moz-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single #comments{padding:8rem 0 2rem}.lg-toolbar .lg-icon::after{color:#999}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{padding:1rem 0 0.5rem;margin:0;font-size:1.6rem;font-weight:bold;line-height:140%;text-align:right}.archive .single-subtitle{margin:0.5rem 0;font-size:1.2rem;font-weight:normal;line-height:100%;text-align:right}.archive .group-title{font-size:1.2rem;margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card{margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item{font-size:0.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item:nth-child(n+3){margin-top:2rem}.archive .categories-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:0.75rem}.archive .categories-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:0.25rem 0 0.25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2983bb;background-color:transparent}[data-theme='dark'] .archive .archive-item-link{color:#b1b1ba}[data-theme='dark'] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{text-align:right;color:#b1b1ba;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}[data-theme='dark'] .archive .archive-item-date{color:#909092}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .archive .tag-cloud-tags a,[data-theme='dark'] .archive .tag-cloud-tags a::before,[data-theme='dark'] .archive .tag-cloud-tags a::after{color:#b1b1ba}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2983bb}[data-theme='dark'] .archive .tag-cloud-tags a:active,[data-theme='dark'] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-moz-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a sup{color:#b1b1ba}[data-theme='dark'] .archive .tag-cloud-tags a sup{color:#909092}.home .home-profile{-webkit-transform:translateY(16vh);-moz-transform:translateY(16vh);-ms-transform:translateY(16vh);-o-transform:translateY(16vh);transform:translateY(16vh);padding:0 0 0.5rem;text-align:center}.home .home-profile .home-avatar{padding:0.5rem}.home .home-profile .home-avatar img{display:inline-block;width:8rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-moz-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem)}.home .home-profile .home-title{font-size:1.25rem;font-weight:bold;margin:0;padding:0.5rem}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:0.5rem}.home .home-profile .links{padding:0.5rem;font-size:1.5rem}.home .home-profile .links a *{vertical-align:text-bottom}.home .home-profile .links img{height:1.5rem;padding:0 0.25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.5rem;font-weight:normal;margin:0;padding:0.5rem;color:#b1b1ba}[data-theme='dark'] .home .home-profile .home-disclaimer{color:#909092}.home.posts .home-profile{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0);padding-top:2rem}.home.posts .home-avatar img{width:6rem}.home.posts .summary{padding-top:1rem;padding-bottom:0.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}[data-theme='dark'] .home.posts .summary{color:#b1b1ba;border-bottom:1px dashed #363636}.home.posts .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home.posts .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:none;object-fit:none;font-family:"object-fit: none;"}.home.posts .summary .featured-image-preview img.lazyloaded{-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home.posts .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-moz-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home.posts .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home.posts .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:0.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#b1b1ba}[data-theme='dark'] .home.posts .summary .content{color:#909092}.home.posts .summary .content h2,.home.posts .summary .content h3,.home.posts .summary .content h4,.home.posts .summary .content h5,.home.posts .summary .content h6,.home.posts .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home.posts .summary .content h2::after,.home.posts .summary .content h3::after,.home.posts .summary .content h4::after,.home.posts .summary .content h5::after,.home.posts .summary .content h6::after,.home.posts .summary .content p::after{content:'\A';white-space:pre}.home.posts .summary .content h2{font-size:1.125rem}.home.posts .summary .content a,.home.posts .summary .content a::before,.home.posts .summary .content a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .home.posts .summary .content a,[data-theme='dark'] .home.posts .summary .content a::before,[data-theme='dark'] .home.posts .summary .content a::after{color:#b1b1ba}.home.posts .summary .content a:active,.home.posts .summary .content a:hover{color:#ea517f}[data-theme='dark'] .home.posts .summary .content a:active,[data-theme='dark'] .home.posts .summary .content a:hover{color:#fff}.home.posts .summary .content b,.home.posts .summary .content strong{color:#b1b1ba}[data-theme='dark'] .home.posts .summary .content b,[data-theme='dark'] .home.posts .summary .content strong{color:#909092}.home.posts .summary .post-footer{margin-top:0.4rem;display:flex;justify-content:space-between;align-items:center;font-size:0.875rem}.home.posts .summary .post-footer a,.home.posts .summary .post-footer a::before,.home.posts .summary .post-footer a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .home.posts .summary .post-footer a,[data-theme='dark'] .home.posts .summary .post-footer a::before,[data-theme='dark'] .home.posts .summary .post-footer a::after{color:#1781b5}.home.posts .summary .post-footer a:active,.home.posts .summary .post-footer a:hover{color:#ea517f}[data-theme='dark'] .home.posts .summary .post-footer a:active,[data-theme='dark'] .home.posts .summary .post-footer a:hover{color:#619ac3}.home.posts .summary .post-footer .post-tags{padding:0}.home.posts .summary .post-footer .post-tags a,.home.posts .summary .post-footer .post-tags a::before,.home.posts .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .home.posts .summary .post-footer .post-tags a,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a::before,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a::after{color:#b1b1ba}.home.posts .summary .post-footer .post-tags a:active,.home.posts .summary .post-footer .post-tags a:hover{color:#2983bb}[data-theme='dark'] .home.posts .summary .post-footer .post-tags a:active,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a:hover{color:#fff}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}#content-offline{-webkit-transform:translateY(30vh);-moz-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}#content-offline .offline-title{font-size:3.6rem}#content-offline .offline-subtitle{margin:0.4rem 0;font-size:1rem;font-weight:normal;font-style:italic;line-height:100%;color:#57606a}#content-offline .error-text{font-size:1.2rem}.friend-links{margin-top:1rem;display:flex;flex-direction:row;justify-content:space-between;flex-wrap:wrap}@media (max-width: 576px){.friend-links{justify-content:space-around}}.friend-link{width:150px;height:200px;font-size:1rem;text-align:center;background:rgba(255,255,255,0.3);box-sizing:border-box;box-shadow:3px 3px 5px #aaa;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:none;transition-duration:0.3s;margin-bottom:1rem;display:flex;flex-direction:column;justify-content:space-between}.friend-link:hover{background:#fff;transform:scale(1.03);box-shadow:0 0 3px #aaa}.friend-avatar{object-fit:cover;object-position:center;width:100% !important;height:150px !important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;margin:0;padding:0}.friend-nickname{display:block;position:relative;color:#2bbc8a;font-weight:bold;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px;margin-bottom:1rem}.friend-nickname:hover{color:#d480aa}header{width:100%;z-index:150;background-color:#f8f8f8;-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease}[data-theme='dark'] header{background-color:#252627}header:hover{-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:0.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.header-title .logo{min-height:1.5em;height:1.5em;vertical-align:middle}.header-title .header-title-text{margin-left:0.25rem;margin-right:0.25rem}.header-title .header-subtitle{margin-left:0.25rem;font-size:0.6em}.menu{margin:0;padding:0}.menu .menu-item{list-style:none}.menu .menu-item .dropdown-icon{margin-left:0.25rem;font-size:.875em;color:#161209}[data-theme='dark'] .menu .menu-item .dropdown-icon{color:#b1b1ba}.menu .menu-item .dropdown-icon.open::before{content:"\f078"}.menu .menu-item.active>.menu-link,.menu .menu-item.active>.nested-item>.menu-link{font-weight:bold;color:#161209}[data-theme='dark'] .menu .menu-item.active>.menu-link,[data-theme='dark'] .menu .menu-item.active>.nested-item>.menu-link{color:#fff}.menu .menu-item.language,.menu .menu-item.theme-switch{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:1.25rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:transparent;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:0.5rem;right:auto}#header-desktop.open .search .search-toggle{left:1rem}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[data-theme='dark'] .open .search input,[data-theme='dark'] .search.mobile input{color:#b1b1ba;background-color:#363636}[data-theme='dark'] .open .search input::-webkit-input-placeholder,[data-theme='dark'] .search.mobile input::-webkit-input-placeholder{color:#909092}[data-theme='dark'] .open .search input:-moz-placeholder,[data-theme='dark'] .search.mobile input:-moz-placeholder{color:#909092}[data-theme='dark'] .open .search input::-moz-placeholder,[data-theme='dark'] .search.mobile input::-moz-placeholder{color:#909092}[data-theme='dark'] .open .search input:-ms-input-placeholder,[data-theme='dark'] .search.mobile input:-ms-input-placeholder{color:#909092}[data-theme='dark'] .open .search input::placeholder,[data-theme='dark'] .search.mobile input::placeholder{color:#909092}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#b1b1ba}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#b1b1ba}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#b1b1ba}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#b1b1ba}.open .search input::placeholder,.search.mobile input::placeholder{color:#b1b1ba}.open .search .search-button,.search.mobile .search-button{color:#b1b1ba}[data-theme='dark'] .open .search .search-button,[data-theme='dark'] .search.mobile .search-button{color:#909092}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg);-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.theme-switch:hover i{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}#header-desktop{display:block;position:sticky;top:0;height:3.5rem;line-height:3.5rem;box-sizing:border-box}[data-header-desktop='normal'] #header-desktop{position:static}#header-desktop nav{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper{padding:0 2rem 0 MAX(10vh, 3.5rem);height:100%}#header-desktop .header-wrapper[data-github-corner='right']{padding-right:3.5rem}#header-desktop .header-wrapper .header-title{font-size:1.5rem;height:100%}#header-desktop .header-wrapper .menu{display:flex;flex-direction:row;flex-wrap:nowrap;float:right}#header-desktop .header-wrapper .menu>.menu-item:hover .sub-menu{display:block}#header-desktop .header-wrapper .menu .menu-item{padding:0 0.5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{width:0;margin:0.125rem 0.25rem;padding:0;border-left:1px dashed #e7e7ea}[data-theme='dark'] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#5d5d5f}#header-desktop .header-wrapper .menu .menu-item.language{margin-right:0}#header-desktop .header-wrapper .menu .sub-menu{z-index:160;position:absolute;margin:0;padding:0.25rem 0;display:none;top:calc(3.5rem - 0.75rem);border-radius:5px;border:1px solid #f0f0f0;background-color:#f8f8f8;-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease;-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}[data-theme='dark'] #header-desktop .header-wrapper .menu .sub-menu{background-color:#252627;border-color:#363636}#header-desktop .header-wrapper .menu .sub-menu .menu-item{height:1.75rem;line-height:1.75rem;max-width:15rem;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:sticky;top:0;min-height:3.5rem;line-height:3.5rem}[data-header-mobile='normal'] #header-mobile{position:static}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[data-theme='dark'] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#b1b1ba}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-moz-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-moz-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;padding:0.5rem 0 0;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-loading,#header-mobile .header-container .menu .search-clear{right:0.5rem}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:0.75rem}#header-mobile .header-container .menu .menu-item{display:block;position:relative;line-height:2.5rem;padding:0 1rem}#header-mobile .header-container .menu .menu-item:hover{background-color:#f2f2f3}[data-theme='dark'] #header-mobile .header-container .menu .menu-item:hover{background-color:#535355}#header-mobile .header-container .menu .menu-item .menu-link{display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;-webkit-flex:4;flex:4}#header-mobile .header-container .menu .menu-item .nested-item{display:flex;justify-content:space-between;align-items:center}#header-mobile .header-container .menu .menu-item .nested-item .menu-link{max-width:80%}#header-mobile .header-container .menu .menu-item.theme-switch,#header-mobile .header-container .menu .menu-item.language{text-align:center}#header-mobile .header-container .menu .menu-item .language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}#header-mobile .header-container .menu .sub-menu{padding-left:0;display:none}#header-mobile .header-container .menu .sub-menu.open{display:block}#header-mobile .header-container .menu .sub-menu .menu-item:hover{background-color:#e7e7ea}[data-theme='dark'] #header-mobile .header-container .menu .sub-menu .menu-item:hover{background-color:#5d5d5f}#header-mobile .header-container .menu.active{display:block}[data-theme='dark'] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;z-index:200;top:3.5rem;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[data-theme='dark'] .search-dropdown .dropdown-menu{background-color:#292a2e}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:0.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:0.875rem;float:right;text-align:right;color:#b1b1ba}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#909092}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#b1b1ba}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#909092}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e6ebf1}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#384049}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[data-theme='dark'] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:0.5rem 1rem;float:right;font-size:0.8rem;color:#b1b1ba}.search-dropdown .dropdown-menu .search-footer [data-theme='dark']{color:#909092}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a::before,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a::after{color:#1781b5}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ea517f}[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a:active,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a:hover{color:#619ac3}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}footer{height:auto;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{font-size:0.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .footer-divider:not(:first-child)::before{content:'|';margin-left:0.25rem;margin-right:0.25rem}footer .footer-container .footer-line .fixit-icon{top:0.25em}footer .footer-container .footer-line .animate-icon{color:#dc143c;animation:icon-animate 1.33s ease-in-out infinite}footer .footer-container .footer-line .run-times{font-variant-numeric:tabular-nums lining-nums}.blur footer{-webkit-filter:blur(1.5px);-moz-filter:blur(1.5px);-ms-filter:blur(1.5px);filter:blur(1.5px)}@keyframes icon-animate{0%,100%{transform:scale(1)}10%,30%{transform:scale(0.9)}20%,40%,60%,80%{transform:scale(1.1)}50%,70%{transform:scale(1.1)}}.pagination{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;list-style:none;white-space:nowrap;width:100%;padding:1rem 0}.pagination a{font-size:0.8rem;color:#bfbfbf;letter-spacing:0.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}[data-theme='dark'] .pagination a{color:#b1b1ba}.pagination li{padding:5px;margin:0 10px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[data-theme='dark'] .pagination li:hover a{color:#fff}.pagination li::before,.pagination li::after{position:absolute;content:'';width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[data-theme='dark'] .pagination li::before,[data-theme='dark'] .pagination li::after{background:#fff}.pagination li::before{left:50%}.pagination li::after{right:50%}.pagination li:hover::before,.pagination li:hover::after{width:50%}.pagination li.active a{color:#000}[data-theme='dark'] .pagination li.active a{color:#fff}.pagination li.active::before,.pagination li.active::after{width:50%}@media only screen and (min-width: 1441px){.page{width:60%}[data-page-style='wide'] .page{width:64%}[data-page-style='narrow'] .page{max-width:800px}aside{width:20%}[data-page-style='wide'] aside{width:18%}[data-page-style='narrow'] aside{width:calc(50% - 400px)}}@media only screen and (max-width: 1440px){.page{width:56%}[data-page-style='wide'] .page{width:60%}aside{width:22%}[data-page-style='wide'] aside{width:20%}}@media only screen and (max-width: 1200px){.page{width:52%}[data-page-style='wide'] .page{width:56%}aside{width:24%}[data-page-style='wide'] aside{width:22%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){aside{display:none !important}#toc-static{display:block}.page{width:80% !important}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile,.d-none-desktop{display:block}.d-none-mobile{display:none !important}.page{width:100% !important}[data-header-mobile='normal'] .page .content [id]{scroll-margin-top:0}.page .categories-card .card-item{width:100%}footer .footer-container{font-size:0.618rem}.pagination .page-item{margin:0 5px}}@media only print{@page{size:A4 portrait;margin:1.27cm}.page{width:100% !important;padding-top:0 !important}.page .single-title,.page .single-subtitle,.page .post-meta{text-align:center}.page h1:not(.single-title),.page .page-break-before{page-break-before:always}.page .page-break-after{page-break-after:always}.print-d-none,header,footer .footer-line:not(.powered):not(.copyright),#toc-auto,.comment-visitors,.comment-count,.code-header>.ellipses,.code-header>.edit,.code-header>.copy,.post-info-share,.post-info-more section:last-child,.post-nav,.fixed-buttons,#comments,.github-corner{display:none !important}}.home .home-profile{-webkit-transform:translateY(16vh);-moz-transform:translateY(16vh);-ms-transform:translateY(16vh);-o-transform:translateY(16vh);transform:translateY(16vh);padding:0 0 .5rem;text-align:center}.home .home-profile .home-avatar{padding:.5rem}.home .home-profile .home-avatar img{display:inline-block;width:8rem;height:auto;margin:0 auto;-webkit-border-radius:0%;-moz-border-radius:0%;border-radius:0%;-webkit-box-shadow:0 0 0 0;box-shadow:0 0 0 0;-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.25rem);-moz-transform:translateY(-0.25rem);-ms-transform:translateY(-0.25rem);-o-transform:translateY(-0.25rem);transform:translateY(-0.25rem)} +๏ปฟ:root{--fi-primary: #1772ee;--fi-secondary: #919191;--fi-success: #13ce66;--fi-info: #0dcaf0;--fi-warning: #ffba00;--fi-danger: #ff4949;--fi-primary-dark: #1066db;--fi-secondary-dark: #848484;--fi-success-dark: #11b75a;--fi-info-dark: #0cb6d8;--fi-warning-dark: #e6a700;--fi-danger-dark: #ff3030;--fi-scroll-mt: calc(3.5rem + .5rem);--fi-breadcrumb-height: 0px}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-display:swap;font-size:16px;line-height:1.5rem;width:100%;scroll-behavior:smooth;overflow:overlay}@media screen and (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}::-webkit-scrollbar{width:0.5rem;height:0.5rem}::-webkit-scrollbar-thumb{background-color:#87878d;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}::-webkit-scrollbar-thumb:hover{background-color:#b1b1ba}::selection{background-color:rgba(53,166,247,0.25)}[data-theme='dark'] ::selection{background-color:rgba(50,112,194,0.4)}body{background-color:#fff;color:#161209;scrollbar-color:auto;word-wrap:break-word;overflow-wrap:break-word}body::-webkit-scrollbar{width:0.75rem;height:0.75rem;background-color:transparent}body::-webkit-scrollbar-thumb{background-color:transparent;background-clip:content-box;border:2px solid transparent;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem}body[data-scroll]::-webkit-scrollbar-thumb{background-color:#87878d}body[data-theme='dark']{color:#b1b1ba;background-color:#292a2e}iframe{border:0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}[role='button']{cursor:pointer}summary{cursor:pointer}abbr[title]{cursor:help;text-decoration-skip-ink:none}a,a::before,a::after{text-decoration:none;color:#161209}[data-theme='dark'] a,[data-theme='dark'] a::before,[data-theme='dark'] a::after{color:#b1b1ba}a:active,a:hover{color:#2983bb}[data-theme='dark'] a:active,[data-theme='dark'] a:hover{color:#fff}#mask{background-repeat:no-repeat;background-position:center;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0);z-index:-1}.blur #mask{z-index:100;background-color:rgba(0,0,0,0.25)}img{-webkit-border-radius:2.5px;-moz-border-radius:2.5px;border-radius:2.5px}svg.icon{display:inline-block;width:1.25em;height:1em;text-align:center}svg.icon path{fill:currentColor}img.emoji{display:inline-block;height:1em;width:1em;margin:0 0.05em 0 0.1em;vertical-align:-0.1em}.hugo-icon,.fixit-icon{display:inline-block;height:1.2em;width:1.2em;line-height:1.2em;position:relative;vertical-align:text-bottom}.details .details-summary{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.details .details-summary:hover{cursor:pointer}.details i.details-icon{color:#b1b1ba;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}[data-theme='dark'] .details i.details-icon{color:#909092}.details .details-content{max-height:0;overflow-y:hidden;-webkit-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s}.details.open .details-summary{-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.details.open i.details-icon{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.details.open .details-content{max-height:100%;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s}.cc-window.cc-banner .cc-btn{color:#161209}.cc-window.cc-banner .cc-btn:hover,.cc-window.cc-banner .cc-btn:focus{background-color:#ccc}[data-theme='dark'] .cc-window.cc-banner .cc-btn{color:#161209}[data-theme='dark'] .cc-window.cc-banner .cc-btn:hover,[data-theme='dark'] .cc-window.cc-banner .cc-btn:focus{background-color:#fff}.fixed-button{position:fixed;right:1.5rem;font-size:1rem;line-height:1.5rem;padding:0.5rem 0.625rem;color:#b1b1ba;background-color:#f8f8f8;z-index:100;-webkit-border-radius:1.25rem;-moz-border-radius:1.25rem;border-radius:1.25rem;-webkit-transition:color 0.4s ease;-moz-transition:color 0.4s ease;-o-transition:color 0.4s ease;transition:color 0.4s ease}.blur .fixed-button{-webkit-filter:blur(1.5px);filter:blur(1.5px)}.fixed-button:hover,.fixed-button:active{color:#161209;cursor:pointer}.fixed-button:active,.fixed-button:focus,.fixed-button:hover{outline:none}[data-theme='dark'] .fixed-button{color:#909092;background-color:#252627}[data-theme='dark'] .fixed-button:hover,[data-theme='dark'] .fixed-button:active{color:#b1b1ba}.back-to-top{bottom:1.5rem}.view-comments{bottom:4.5rem}@keyframes octocat-wave{0%,100%{-webkit-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);-ms-transform:rotate(-25deg);-o-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);-ms-transform:rotate(10deg);-o-transform:rotate(10deg);transform:rotate(10deg)}}.github-corner{position:fixed;top:0;z-index:200}.github-corner :hover .octo-arm{animation:octocat-wave 560ms ease-in-out}.github-corner svg{width:3.5rem;height:3.5rem;border:0;color:#fff;fill:#252627}[data-theme='dark'] .github-corner svg{color:#000;fill:#f8f8f8}.github-corner.left{left:0}.github-corner.left svg{-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.github-corner.right{right:0}.noscript-warning{background-color:var(--fi-danger);color:white;font-size:1rem;font-weight:bold;position:fixed;text-align:center;left:0;bottom:0;width:100%;z-index:200}[data-theme='dark'] .noscript-warning{background-color:var(--fi-danger-dark)}.reading-progress-bar{--progress: 0;height:var(--progress-h, 2px);width:var(--progress);background-color:var(--bg-progress, var(--fi-info));position:fixed;z-index:200}[data-theme="dark"] .reading-progress-bar{background-color:var(--bg-progress-dark, var(--fi-info-dark))}.typeit{--ti-cursor-font-family: system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;--ti-cursor-font-size: 16px;--ti-cursor-font-style: normal;--ti-cursor-font-weight: 400;--ti-cursor-line-height: 1.5rem;--ti-cursor-color: #161209;--ti-cursor-transform: translateX(0)}.typeit .highlight{padding:0.375rem;font-size:0.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;word-break:break-all;white-space:pre-wrap}[data-theme='dark'] .typeit{--ti-cursor-color: #b1b1ba}.wrapper{display:flex;flex-direction:column;min-height:100vh;width:100%}.wrapper main{flex:1 0 auto}.wrapper main aside{flex:1;padding:0.5rem}.wrapper main aside:not(:has(~aside)){display:none}.wrapper main.container{display:flex;align-items:flex-start;justify-content:center;padding-inline:1rem;gap:0.5rem}.wrapper main.container.container-reverse{flex-direction:row-reverse}.wrapper main.container:has(.home:not(.posts)){align-items:center}header{width:100%;background-color:#f8f8f8;z-index:200;-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease}[data-theme='dark'] header{background-color:#252627}header:hover{-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}[data-theme='dark'] header:hover{-webkit-box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1);box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1)}.header-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%}.header-title{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;margin-right:0.5rem;min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;-webkit-flex:10;flex:10}.header-title .logo{min-height:1.5em;height:1.5em;vertical-align:middle;width:auto}.header-title .header-title-text{margin-left:0.25rem;margin-right:0.25rem}.header-title .header-subtitle{margin-left:0.25rem;font-size:0.6em}.menu{margin:0;padding:0}.menu .menu-item{list-style:none}.menu .menu-item .dropdown-icon{margin-left:0.25rem;font-size:.875em;color:#161209}[data-theme='dark'] .menu .menu-item .dropdown-icon{color:#b1b1ba}.menu .menu-item .dropdown-icon.open::before{content:"\f078"}.menu .menu-item.active>.menu-link,.menu .menu-item.active>.nested-item>.menu-link{font-weight:bold;color:#161209}[data-theme='dark'] .menu .menu-item.active>.menu-link,[data-theme='dark'] .menu .menu-item.active>.nested-item>.menu-link{color:#fff}.menu .menu-item .menu-link i{-webkit-transform:perspective(1rem);-ms-transform:perspective(1rem);-o-transform:perspective(1rem);transform:perspective(1rem);-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.menu .menu-item .menu-link:hover i{-webkit-transform:perspective(1rem) translateZ(0.2rem);-ms-transform:perspective(1rem) translateZ(0.2rem);-o-transform:perspective(1rem) translateZ(0.2rem);transform:perspective(1rem) translateZ(0.2rem)}.menu .menu-item.language-switch,.menu .menu-item.theme-switch{cursor:pointer}.search{position:relative}.search input{color:transparent;box-sizing:border-box;height:2.5rem;width:1.25rem;-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem;border:none;outline:none;background-color:transparent;vertical-align:baseline !important;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}.search input::-webkit-input-placeholder{color:rgba(0,0,0,0)}.search input:-moz-placeholder{color:rgba(0,0,0,0)}.search input::-moz-placeholder{color:rgba(0,0,0,0)}.search input:-ms-input-placeholder{color:rgba(0,0,0,0)}.search input::placeholder{color:rgba(0,0,0,0)}.search .search-button{margin:0;position:absolute;left:auto;right:1rem}.search .search-toggle{left:0.5rem;right:auto}#header-desktop.open .search .search-toggle{left:1rem}.search .search-loading{display:none}.search .search-clear{display:none}.open .search input,.search.mobile input{color:#161209;background-color:#e9e9e9;padding:0 2rem 0 2rem}[data-theme='dark'] .open .search input,[data-theme='dark'] .search.mobile input{color:#b1b1ba;background-color:#363636}[data-theme='dark'] .open .search input::-webkit-input-placeholder,[data-theme='dark'] .search.mobile input::-webkit-input-placeholder{color:#909092}[data-theme='dark'] .open .search input:-moz-placeholder,[data-theme='dark'] .search.mobile input:-moz-placeholder{color:#909092}[data-theme='dark'] .open .search input::-moz-placeholder,[data-theme='dark'] .search.mobile input::-moz-placeholder{color:#909092}[data-theme='dark'] .open .search input:-ms-input-placeholder,[data-theme='dark'] .search.mobile input:-ms-input-placeholder{color:#909092}[data-theme='dark'] .open .search input::placeholder,[data-theme='dark'] .search.mobile input::placeholder{color:#909092}.open .search input::-webkit-input-placeholder,.search.mobile input::-webkit-input-placeholder{color:#b1b1ba}.open .search input:-moz-placeholder,.search.mobile input:-moz-placeholder{color:#b1b1ba}.open .search input::-moz-placeholder,.search.mobile input::-moz-placeholder{color:#b1b1ba}.open .search input:-ms-input-placeholder,.search.mobile input:-ms-input-placeholder{color:#b1b1ba}.open .search input::placeholder,.search.mobile input::placeholder{color:#b1b1ba}.open .search .search-button,.search.mobile .search-button{color:#b1b1ba}[data-theme='dark'] .open .search .search-button,[data-theme='dark'] .search.mobile .search-button{color:#909092}.open .search .search-clear:hover,.search.mobile .search-clear:hover{color:#ff6b6b}.open .search .search-toggle:hover,.search.mobile .search-toggle:hover{cursor:default}.theme-switch i{-webkit-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg);-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.theme-switch:hover i{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}#header-desktop{display:block;position:sticky;top:0;height:3.5rem;line-height:3.5rem;box-sizing:border-box}[data-header-desktop='normal'] #header-desktop{position:static}#header-desktop nav{overflow:hidden;white-space:nowrap}#header-desktop .header-wrapper{padding:0 2rem 0 MAX(10vh, 3.5rem);height:100%}#header-desktop .header-wrapper[data-github-corner='right']{padding-right:3.5rem}#header-desktop .header-wrapper .header-title{font-size:1.5rem;height:100%}#header-desktop .header-wrapper .menu{display:flex;flex-direction:row;flex-wrap:nowrap;float:right}#header-desktop .header-wrapper .menu>.menu-item:hover .sub-menu{display:block;-webkit-transform:translateX(-0.5rem);-ms-transform:translateX(-0.5rem);-o-transform:translateX(-0.5rem);transform:translateX(-0.5rem)}#header-desktop .header-wrapper .menu>.menu-item.language-switch:hover .sub-menu{-webkit-transform:translateX(calc(1.75rem - 100%));-ms-transform:translateX(calc(1.75rem - 100%));-o-transform:translateX(calc(1.75rem - 100%));transform:translateX(calc(1.75rem - 100%))}#header-desktop .header-wrapper .menu .menu-item{padding:0 0.5rem}#header-desktop .header-wrapper .menu .menu-item.delimiter{width:0;margin:0.125rem 0.25rem;padding:0;border-left:1px dashed #dadade}[data-theme='dark'] #header-desktop .header-wrapper .menu .menu-item.delimiter{border-left-color:#6a6a6c}#header-desktop .header-wrapper .menu .sub-menu{position:absolute;margin:0;padding:0.25rem 0;display:none;top:calc(3.5rem - 0.75rem);border-radius:5px;border:1px solid #f0f0f0;background-color:#f8f8f8;-webkit-transition:box-shadow 0.3s ease;-moz-transition:box-shadow 0.3s ease;-o-transition:box-shadow 0.3s ease;transition:box-shadow 0.3s ease;-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.1)}[data-theme='dark'] #header-desktop .header-wrapper .menu .sub-menu{background-color:#252627;border-color:#363636;-webkit-box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1);box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.1)}#header-desktop .header-wrapper .menu .sub-menu .menu-item{height:1.75rem;line-height:1.75rem;max-width:15rem;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}#header-desktop.open .header-wrapper .menu .menu-item.search input{width:24rem}#header-mobile{display:none;position:sticky;top:0;min-height:3.5rem;line-height:3.5rem}[data-header-mobile='normal'] #header-mobile{position:static}#header-mobile .header-container{padding:0;margin:0}#header-mobile .header-container .header-wrapper{padding:0 1rem;font-size:1.125rem;-webkit-transition:margin-top 0.3s ease;-moz-transition:margin-top 0.3s ease;-o-transition:margin-top 0.3s ease;transition:margin-top 0.3s ease}#header-mobile .header-container .header-wrapper .header-title{font-size:1.5rem;max-width:80%}#header-mobile .header-container .header-wrapper .menu-toggle{line-height:4rem;cursor:pointer;-webkit-transition:width 0.3s ease;-moz-transition:width 0.3s ease;-o-transition:width 0.3s ease;transition:width 0.3s ease}#header-mobile .header-container .header-wrapper .menu-toggle span{display:block;background:#161209;width:1.5rem;height:2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out}[data-theme='dark'] #header-mobile .header-container .header-wrapper .menu-toggle span{background:#b1b1ba}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(1){margin-bottom:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle span:nth-child(3){margin-top:0.5rem}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(1){-webkit-transform:rotate(45deg) translate(0.4rem, 0.5rem);-ms-transform:rotate(45deg) translate(0.4rem, 0.5rem);-o-transform:rotate(45deg) translate(0.4rem, 0.5rem);transform:rotate(45deg) translate(0.4rem, 0.5rem)}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(2){opacity:0}#header-mobile .header-container .header-wrapper .menu-toggle.active span:nth-child(3){-webkit-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-ms-transform:rotate(-45deg) translate(0.4rem, -0.5rem);-o-transform:rotate(-45deg) translate(0.4rem, -0.5rem);transform:rotate(-45deg) translate(0.4rem, -0.5rem)}#header-mobile .header-container .menu{background:#f8f8f8;border-top:2px solid #f0f0f0;display:none;overflow-y:overlay;max-height:70vh;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}[data-theme='dark'] #header-mobile .header-container .menu{-webkit-box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1);box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1)}#header-mobile .header-container .menu::-webkit-scrollbar{width:0}#header-mobile .header-container .menu .search-wrapper{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:.5rem 1rem;line-height:2.5rem;position:sticky;top:0;background-color:#f8f8f8;z-index:50}[data-theme='dark'] #header-mobile .header-container .menu .search-wrapper{background-color:#252627}#header-mobile .header-container .menu .search{flex-grow:10}#header-mobile .header-container .menu .search .algolia-autocomplete,#header-mobile .header-container .menu .search input{width:100%}#header-mobile .header-container .menu .search-loading,#header-mobile .header-container .menu .search-clear{right:0.5rem}#header-mobile .header-container .menu .search-button{top:0}#header-mobile .header-container .menu .search-cancel{display:none;margin-left:0.75rem}#header-mobile .header-container .menu .menu-item{display:block;position:relative;line-height:2.5rem;padding:0 1rem}#header-mobile .header-container .menu .menu-item:not(.menu-system):hover{background-color:#f2f2f3}[data-theme='dark'] #header-mobile .header-container .menu .menu-item:not(.menu-system):hover{background-color:#535355}#header-mobile .header-container .menu .menu-item .menu-link{display:block;white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;-webkit-flex:4;flex:4}#header-mobile .header-container .menu .menu-item .nested-item{display:flex;justify-content:space-between;align-items:center}#header-mobile .header-container .menu .menu-item .nested-item .menu-link{max-width:80%}#header-mobile .header-container .menu .menu-system{display:flex;justify-content:center;gap:0.25rem;position:sticky;bottom:0;line-height:2.5rem;padding:0 1rem;background-color:#f8f8f8}[data-theme='dark'] #header-mobile .header-container .menu .menu-system{background-color:#252627}#header-mobile .header-container .menu .menu-system .menu-system-item{padding-inline:0.5rem}#header-mobile .header-container .menu .menu-system .language-switch{position:relative}#header-mobile .header-container .menu .menu-system .language-switch .language-select{position:absolute;opacity:0;left:0;top:0;width:100%;height:100%}#header-mobile .header-container .menu .sub-menu{padding-left:0;display:none}#header-mobile .header-container .menu .sub-menu.open{display:block}#header-mobile .header-container .menu .sub-menu .menu-item:hover{background-color:#e7e7ea}[data-theme='dark'] #header-mobile .header-container .menu .sub-menu .menu-item:hover{background-color:#5d5d5f}#header-mobile .header-container .menu.active{display:block}[data-theme='dark'] #header-mobile .header-container .menu{background:#252627;border-top-color:#363636}#header-mobile.open .header-wrapper{margin-top:-3.5rem}#header-mobile.open .menu{padding-top:0;border-top:none}#header-mobile.open .menu .menu-item{display:none}#header-mobile.open .menu .search-cancel{display:inline}.search-dropdown{position:fixed;top:3.5rem;z-index:200;-webkit-box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1);box-shadow:0 0.125rem 0.25rem rgba(0,0,0,0.1)}[data-theme='dark'] .search-dropdown{-webkit-box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1);box-shadow:0 0.125rem 0.25rem rgba(255,255,255,0.1)}.search-dropdown.desktop{right:2rem;width:30rem}.search-dropdown.mobile{right:0;width:100%}.search-dropdown .dropdown-menu{right:0 !important;background-color:#fff}[data-theme='dark'] .search-dropdown .dropdown-menu{background-color:#292a2e}.search-dropdown .dropdown-menu .suggestions{overflow-y:auto;max-height:calc(100vh - 3.5rem)}.search-dropdown .dropdown-menu .suggestions .suggestion{padding:0.75rem 1rem}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:bold;max-width:75%}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{font-size:0.875rem;float:right;text-align:right;color:#b1b1ba}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date{color:#909092}.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{line-height:1.25rem;display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#b1b1ba}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-context{color:#909092}.search-dropdown .dropdown-menu .suggestions .suggestion em{font-style:normal;background-color:rgba(53,166,247,0.25)}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion em{background-color:rgba(50,112,194,0.4)}.search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#e6ebf1}[data-theme='dark'] .search-dropdown .dropdown-menu .suggestions .suggestion.cursor{background:#384049}.search-dropdown .dropdown-menu .suggestions .suggestion:hover{cursor:pointer}.search-dropdown .dropdown-menu .search-empty{padding:1rem;text-align:center}.search-dropdown .dropdown-menu .search-empty .search-query{font-weight:bold}[data-theme='dark'] .search-dropdown .dropdown-menu .search-empty .search-query{color:#ddd}.search-dropdown .dropdown-menu .search-footer{padding:0.5rem 1rem;float:right;font-size:0.8rem;color:#b1b1ba}.search-dropdown .dropdown-menu .search-footer [data-theme='dark']{color:#909092}.search-dropdown .dropdown-menu .search-footer a,.search-dropdown .dropdown-menu .search-footer a::before,.search-dropdown .dropdown-menu .search-footer a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a::before,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a::after{color:#1781b5}.search-dropdown .dropdown-menu .search-footer a:active,.search-dropdown .dropdown-menu .search-footer a:hover{color:#ea517f}[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a:active,[data-theme='dark'] .search-dropdown .dropdown-menu .search-footer a:hover{color:#cc5595}.search-dropdown .dropdown-menu .search-footer a{font-size:1rem}.breadcrumb-container{padding-inline:1rem;font-size:0.75rem;background-color:#fff;z-index:100}[data-theme='dark'] .breadcrumb-container{background-color:#292a2e}.breadcrumb-container.sticky{position:sticky;top:3.5rem}.breadcrumb-container .breadcrumb{display:flex;flex-wrap:wrap;padding:0.5rem 0;margin:0 auto;list-style:none;border-bottom:1px inset #f0f0f0}[data-theme='dark'] .breadcrumb-container .breadcrumb{border-bottom-color:#363636}.breadcrumb-container .breadcrumb .breadcrumb-item{display:flex}.breadcrumb-container .breadcrumb .breadcrumb-item+.breadcrumb-item::before{content:"/";display:inline-block;padding-inline:0.5rem;color:#b1b1ba}[data-theme='dark'] .breadcrumb-container .breadcrumb .breadcrumb-item+.breadcrumb-item::before{color:#909092}footer{height:auto;width:100%;text-align:center;line-height:1.25rem;padding:1rem 0}footer .footer-container{display:flex;flex-direction:column;font-size:0.875rem}footer .footer-container .footer-line{width:100%}footer .footer-container .footer-line .footer-divider:not(:first-child)::before{content:'|';margin-left:0.25rem;margin-right:0.25rem}footer .footer-container .footer-line .animate-icon{color:#dc143c;animation:icon-animate 1.33s ease-in-out infinite}footer .footer-container .footer-line .run-times{font-variant-numeric:tabular-nums lining-nums}.blur footer{-webkit-filter:blur(1.5px);filter:blur(1.5px)}@keyframes icon-animate{0%,100%{-webkit-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%,30%{-webkit-transform:scale(0.9);-ms-transform:scale(0.9);-o-transform:scale(0.9);transform:scale(0.9)}20%,40%,60%,80%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}50%,70%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}}.pagination{display:flex;flex-direction:row;justify-content:center;flex-wrap:wrap;list-style:none;white-space:nowrap;width:100%;padding:1rem 0}.pagination a{font-size:0.8rem;color:#bfbfbf;letter-spacing:0.1rem;font-weight:700;padding:5px 5px;text-decoration:none;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s}[data-theme='dark'] .pagination a{color:#b1b1ba}.pagination li{padding:5px;margin:0 10px;box-sizing:border-box;position:relative;display:inline}.pagination li.disabled{display:none}.pagination li:hover a{color:#000}[data-theme='dark'] .pagination li:hover a{color:#fff}.pagination li::before,.pagination li::after{position:absolute;content:'';width:0;height:3px;background:#000;-webkit-transition:0.3s;-moz-transition:0.3s;-o-transition:0.3s;transition:0.3s;bottom:0px}[data-theme='dark'] .pagination li::before,[data-theme='dark'] .pagination li::after{background:#fff}.pagination li::before{left:50%}.pagination li::after{right:50%}.pagination li:hover::before,.pagination li:hover::after{width:50%}.pagination li.active a{color:#000}[data-theme='dark'] .pagination li.active a{color:#fff}.pagination li.active::before,.pagination li.active::after{width:50%}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-start{text-align:left !important}.text-end{text-align:right !important}.text-center{text-align:center !important}.d-none{display:none !important}.d-none-desktop{display:none}.d-none-mobile{display:block}.ms-1,.mx-1{margin-left:0.25em !important}.me-1,.mx-1{margin-right:0.25em !important}.ps-1,.px-1{padding-left:0.25em !important}.pe-1,.px-1{padding-right:0.25em !important}.text-primary{color:#1772ee !important}[data-theme='dark'] .text-primary{color:#1066db !important}.text-secondary,.collection-details .collection-summary .collection-count,.breadcrumb-container .breadcrumb .breadcrumb-item.active{color:#919191 !important}[data-theme='dark'] .text-secondary,[data-theme='dark'] .collection-details .collection-summary .collection-count,.collection-details .collection-summary [data-theme='dark'] .collection-count,[data-theme='dark'] .breadcrumb-container .breadcrumb .breadcrumb-item.active,.breadcrumb-container .breadcrumb [data-theme='dark'] .breadcrumb-item.active{color:#848484 !important}.text-success,.single .single-title .icon-repost{color:#13ce66 !important}[data-theme='dark'] .text-success,[data-theme='dark'] .single .single-title .icon-repost,.single .single-title [data-theme='dark'] .icon-repost{color:#11b75a !important}.text-info{color:#0dcaf0 !important}[data-theme='dark'] .text-info{color:#0cb6d8 !important}.text-warning{color:#ffba00 !important}[data-theme='dark'] .text-warning{color:#e6a700 !important}.text-danger,.single .single-title .icon-pin{color:#ff4949 !important}[data-theme='dark'] .text-danger,[data-theme='dark'] .single .single-title .icon-pin,.single .single-title [data-theme='dark'] .icon-pin{color:#ff3030 !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.variant-numeric{font-variant-numeric:tabular-nums lining-nums}@keyframes fi-pulse{from{-webkit-transform:scale3d(1, 1, 1);-ms-transform:scale3d(1, 1, 1);-o-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}50%{-webkit-transform:scale3d(1.05, 1.05, 1.05);-ms-transform:scale3d(1.05, 1.05, 1.05);-o-transform:scale3d(1.05, 1.05, 1.05);transform:scale3d(1.05, 1.05, 1.05)}to{-webkit-transform:scale3d(1, 1, 1);-ms-transform:scale3d(1, 1, 1);-o-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}}.animate__pulse{-webkit-animation-name:fi-pulse !important;animation-name:fi-pulse !important}.page{position:relative}.page .content [id]{scroll-margin-top:var(--fi-scroll-mt)}.blur .page{-webkit-filter:blur(1.5px);filter:blur(1.5px)}.toc .toc-title{font-size:1.2rem;font-weight:bold;text-transform:uppercase}.toc .toc-content{font-size:1rem}.toc .toc-content ul{text-indent:-0.8em;padding-left:0.8em;list-style:none}.toc .toc-content ul a:first-child::before{content:'|';font-weight:bolder;margin-right:0.5em;position:relative;bottom:2px;color:#2376b7}[data-theme='dark'] .toc .toc-content ul a:first-child::before{color:#1781b5}.toc .toc-content ul ul{padding-left:1em}.toc .toc-content ol{margin:0;padding-left:2.25em}.toc .toc-content ol ol{padding-left:1.25em}.toc .toc-content ol li:has(>a:hover)::marker{color:#2376b7}[data-theme='dark'] .toc .toc-content ol li:has(>a:hover)::marker{color:#1781b5}.toc ruby{background:#f6f8fa}.toc ruby rt{color:#b1b1ba}[data-theme='dark'] .toc ruby{background:#2d333b}[data-theme='dark'] .toc ruby rt{color:#909092}#toc-auto{display:block;position:sticky;top:calc(3.5rem + var(--fi-breadcrumb-height));box-sizing:border-box;visibility:hidden;word-wrap:break-word;overflow-wrap:break-word}.blur #toc-auto{-webkit-filter:blur(1.5px);filter:blur(1.5px)}[data-header-desktop='normal'] #toc-auto{--fi-scroll-mt: .5rem}#toc-auto .toc-title{margin-block:0 0.5em;cursor:pointer;-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}#toc-auto .toc-title::before{content:'|';font-weight:bolder;margin-right:0.5em;position:relative;bottom:2px;color:#f0f0f0}[data-theme='dark'] #toc-auto .toc-title::before{color:#363636}#toc-auto .toc-title i.toc-icon{-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}#toc-auto.toc-hidden i.toc-icon{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg);-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}#toc-auto .toc-content{overflow-y:scroll;max-height:calc(100vh - 7rem)}#toc-auto .toc-content::-webkit-scrollbar{width:0}#toc-auto .toc-content.always-active ul,#toc-auto .toc-content.always-active ol{display:block}#toc-auto .toc-content>nav>ul{margin:0}#toc-auto .toc-content li.has-active::marker{color:#2376b7}[data-theme='dark'] #toc-auto .toc-content li.has-active::marker{color:#1781b5}#toc-auto .toc-content li.has-active:has(>.active)::marker{font-weight:bold}#toc-auto .toc-content li.has-active>a{color:#2376b7}[data-theme='dark'] #toc-auto .toc-content li.has-active>a{color:#1781b5}#toc-auto .toc-content ul ul{display:none}#toc-auto .toc-content ul .has-active>ul{display:block}#toc-auto .toc-content ul a.active::before{color:#ea517f}[data-theme='dark'] #toc-auto .toc-content ul a.active::before{color:#cc5595}#toc-auto .toc-content ol ol{display:none}#toc-auto .toc-content ol .has-active>ol{display:block}#toc-auto .toc-content a.active{font-weight:bold}#toc-static{display:none;margin:0.8em 0}#toc-static[data-kept='true']{display:block}#toc-static .toc-title{display:flex;justify-content:space-between;line-height:2em;padding:0 0.75em;background:#ecf0f5}[data-theme='dark'] #toc-static .toc-title{background:#20242a}#toc-static .toc-content{background-color:#f6f8fa}#toc-static .toc-content>nav>ul{margin:0;padding:0.4em 1em 0.4em 1.8em}#toc-static .toc-content>nav>ul a:hover{font-weight:bold}#toc-static .toc-content>nav>ul a:hover::before{color:#ea517f}[data-theme='dark'] #toc-static .toc-content>nav>ul a:hover::before{color:#cc5595}#toc-static .toc-content>nav>ol{margin:0;padding:0.4em 1em 0.4em 2.25em}#toc-static .toc-content>nav>ol li:has(>a:hover)::marker,#toc-static .toc-content>nav>ol a:hover{font-weight:bold}[data-theme='dark'] #toc-static .toc-content{background-color:#2d333b}#toc-static.open .toc-title{background:#e2e9ef}[data-theme='dark'] #toc-static.open .toc-title{background:#262b32}.fixit-decryptor-container{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;text-align:center;margin-top:3rem}.fixit-encryptor-shortcode .fixit-decryptor-container{margin-top:1rem}.fixit-decryptor-container #fixit-decryptor-input,.fixit-decryptor-container .fixit-decryptor-input,.fixit-decryptor-container .fixit-encryptor-btn{display:inline-block;box-sizing:border-box;outline:none;color:#161209;border:1px solid #cacaca;border-radius:5px;-webkit-transition:all 0.1s ease-out;-moz-transition:all 0.1s ease-out;-o-transition:all 0.1s ease-out;transition:all 0.1s ease-out;box-shadow:0px 0px 5px 0px #cacaca}.fixit-decryptor-container #fixit-decryptor-input:active,.fixit-decryptor-container #fixit-decryptor-input:focus,.fixit-decryptor-container #fixit-decryptor-input:hover,.fixit-decryptor-container .fixit-decryptor-input:active,.fixit-decryptor-container .fixit-decryptor-input:focus,.fixit-decryptor-container .fixit-decryptor-input:hover,.fixit-decryptor-container .fixit-encryptor-btn:active,.fixit-decryptor-container .fixit-encryptor-btn:focus,.fixit-decryptor-container .fixit-encryptor-btn:hover{color:#2371a2;border-color:#2983bb;box-shadow:0px 0px 5px 0px #6bb2df}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:active,[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:focus,[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input:hover,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:active,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:focus,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input:hover,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:active,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:focus,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn:hover{color:#fff;border-color:#fff;box-shadow:0px 0px 5px 0px #ccc}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn{color:#b1b1ba;border-color:#5c5c5c;box-shadow:0px 0px 5px 0px #5c5c5c}.fixit-decryptor-container #fixit-decryptor-input,.fixit-decryptor-container .fixit-decryptor-input{width:clamp(50%, 400px, 100%);height:3rem;padding-left:1rem;padding-right:1rem;background-color:#fff}[data-theme='dark'] .fixit-decryptor-container #fixit-decryptor-input,[data-theme='dark'] .fixit-decryptor-container .fixit-decryptor-input{background-color:#292a2e}.fixit-decryptor-container .fixit-encryptor-btn{cursor:pointer;-webkit-transition:all 0.1s ease-out;-moz-transition:all 0.1s ease-out;-o-transition:all 0.1s ease-out;transition:all 0.1s ease-out;padding:0.6rem 1rem;background-color:#f8f8f8}[data-theme='dark'] .fixit-decryptor-container .fixit-encryptor-btn{background-color:#252627}.encrypted-hidden{display:none}.collection-card{font-size:0.875rem;background-color:#f7f7f7;margin-block:2rem -1rem;padding:1rem 1.25rem;position:relative;-webkit-border-radius:7.5px;-moz-border-radius:7.5px;border-radius:7.5px;-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}[data-theme='dark'] .collection-card{background-color:#303136}.collection-card:has(.collection-nav-item:nth-child(2))::before{content:'';position:absolute;left:50%;bottom:0.75rem;width:1px;height:2rem;background:linear-gradient(to bottom, rgba(0,0,0,0.03), rgba(0,0,0,0.05) 50%, rgba(0,0,0,0.03) 100%)}[data-theme='dark'] .collection-card:has(.collection-nav-item:nth-child(2))::before{background:linear-gradient(to bottom, rgba(255,255,255,0.03), rgba(255,255,255,0.05) 50%, rgba(255,255,255,0.03) 100%)}.collection-card .collection-title a,.collection-card .collection-title a::before,.collection-card .collection-title a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .collection-card .collection-title a,[data-theme='dark'] .collection-card .collection-title a::before,[data-theme='dark'] .collection-card .collection-title a::after{color:#1781b5}.collection-card .collection-title a:active,.collection-card .collection-title a:hover{color:#ea517f}[data-theme='dark'] .collection-card .collection-title a:active,[data-theme='dark'] .collection-card .collection-title a:hover{color:#cc5595}.collection-card .collection-nav{display:flex;justify-content:space-between;gap:1rem}.collection-card .collection-nav:not(:empty){margin-top:0.5rem}.collection-card .collection-nav .collection-nav-item{flex-grow:1;max-width:calc(50% - 0.5rem);font-weight:500;display:flex;align-items:center;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.collection-card .collection-nav .collection-nav-item:only-child{max-width:100%}.collection-card .collection-nav .collection-nav-item i{flex-shrink:0}.collection-card .collection-nav .collection-nav-item span{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-card .collection-nav .collection-nav-item[rel='next']{text-align:right}.collection-card .collection-nav .collection-nav-item[rel='prev']:hover{-webkit-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.collection-card .collection-nav .collection-nav-item[rel='next']:hover{-webkit-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.aside-collection{position:sticky;top:calc(3.5rem + var(--fi-breadcrumb-height));box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word}.blur .aside-collection{-webkit-filter:blur(1.5px);filter:blur(1.5px)}.collection-details:not(:last-of-type){margin-bottom:0.5rem}.collection-details.open .collection-summary{background-color:#f5f5f5}[data-theme='dark'] .collection-details.open .collection-summary{background-color:#333439}.collection-details .collection-summary{display:flex;align-items:baseline;gap:0.25em;padding:0.2em 0.5em;background-color:#f7f7f7;-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}[data-theme='dark'] .collection-details .collection-summary{background-color:#303136}.collection-details .collection-summary>i.fa-layer-group{flex-shrink:0}.collection-details .collection-summary .collection-name{flex-grow:1;font-weight:bold}.collection-details .collection-summary .collection-name::before{content:attr(data-collections) "ใƒป"}.collection-details .collection-summary .collection-count{flex-shrink:0}.collection-details .collection-summary .details-icon{flex-shrink:0}.collection-details .collection-content{font-size:1rem;background-color:#fafafa}[data-theme='dark'] .collection-details .collection-content{background-color:#2e2f33}.collection-details .collection-content .collection-list{margin:0;padding-inline:1.6em 0.8em;padding-block:0.4em;text-indent:-0.8em;list-style:none;overflow-y:scroll;max-height:60vh}.collection-details .collection-content .collection-list::-webkit-scrollbar{width:0}.collection-details .collection-content .collection-list .collection-item>a::before,.collection-details .collection-content .collection-list .collection-item>span::before{content:'|';font-weight:600;margin-right:0.5em;position:relative;bottom:2px;color:#2376b7}[data-theme='dark'] .collection-details .collection-content .collection-list .collection-item>a::before,[data-theme='dark'] .collection-details .collection-content .collection-list .collection-item>span::before{color:#1781b5}.collection-details .collection-content .collection-list .collection-item>.active{font-weight:bold;color:#2376b7}[data-theme='dark'] .collection-details .collection-content .collection-list .collection-item>.active{color:#1781b5}.collection-details .collection-content .collection-list .collection-item>.active::before{color:#ea517f}[data-theme='dark'] .collection-details .collection-content .collection-list .collection-item>.active::before{color:#cc5595}.collection-details .collection-content .collection-nav-simple{display:flex;align-items:center;justify-content:center;gap:0.5em;background-color:#f7f7f7}[data-theme='dark'] .collection-details .collection-content .collection-nav-simple{background-color:#303136}.collection-details .collection-content .collection-nav-simple a.collection-nav-item{padding-inline:2px;border-radius:50%;-webkit-transition:background-color 0.3s ease-out;-moz-transition:background-color 0.3s ease-out;-o-transition:background-color 0.3s ease-out;transition:background-color 0.3s ease-out}.collection-details .collection-content .collection-nav-simple a.collection-nav-item:hover{background-color:#e6e6e6}[data-theme='dark'] .collection-details .collection-content .collection-nav-simple a.collection-nav-item:hover{background-color:#414349}.collection-details .collection-content .collection-nav-simple>i.collection-nav-item{padding:4px 2px;cursor:not-allowed}.single .single-title{padding:1rem 0 0.5rem;margin:0;font-size:1.6rem;font-weight:bold;line-height:140%}.single .single-title .icon-pin{display:inline-block;width:max-content;transform:rotate(30deg);margin-right:0.25em}.single .single-title .icon-repost{display:inline-block;width:max-content;margin-right:0.25em}.single .single-subtitle{margin:0.5rem 0;font-size:1.2rem;font-weight:normal;line-height:100%}.single .post-meta{font-size:0.875rem;color:#b1b1ba}.single .post-meta span{display:inline-block}[data-theme='dark'] .single .post-meta{color:#909092}.single .post-meta a,.single .post-meta a::before,.single .post-meta a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-meta a,[data-theme='dark'] .single .post-meta a::before,[data-theme='dark'] .single .post-meta a::after{color:#b1b1ba}.single .post-meta a:active,.single .post-meta a:hover{color:#ea517f}[data-theme='dark'] .single .post-meta a:active,[data-theme='dark'] .single .post-meta a:hover{color:#fff}.single .post-meta .author{font-size:1.05rem}.single .post-meta .author img.avatar{width:1.3rem;height:1.3rem;border-radius:50%;vertical-align:text-bottom;border:0.25px solid #f0f0f0;box-sizing:border-box;object-position:center;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}[data-theme='dark'] .single .post-meta .author img.avatar{border-color:#363636}.single .featured-image{margin:0.5rem 0 1rem 0}.single .featured-image img{display:block;width:100%;max-width:100%;height:auto;margin:0 auto;overflow:hidden}.single #content[data-end-flag]:not([data-password])::after{content:attr(data-end-flag);display:block;text-align:center;color:#b1b1ba;font-size:15px;padding:5px}.single .content>h1,.single .content>h2{font-size:1.5rem}.single .content>h1 code,.single .content>h2 code{font-size:1.25rem}.single .content>h3{font-size:1.375rem}.single .content>h3 code{font-size:1.125rem}.single .content>h4{font-size:1.25rem}.single .content>h4 code{font-size:1rem}.single .content>h5{font-size:1.125rem}.single .content>h6{font-size:1rem}.single .content h2,.single .content h3,.single .content h4,.single .content h5,.single .content h6{font-weight:bold;margin:1.2rem 0}[data-theme='dark'] .single .content h2,[data-theme='dark'] .single .content h3,[data-theme='dark'] .single .content h4,[data-theme='dark'] .single .content h5,[data-theme='dark'] .single .content h6{font-weight:bolder}.single .content>h2>.heading-mark::before,.single .content>h3>.heading-mark::before,.single .content>h4>.heading-mark::before,.single .content>h5>.heading-mark::before,.single .content>h6>.heading-mark::before{content:'|';margin-right:0.3125rem;color:#2376b7}[data-theme='dark'] .single .content>h2>.heading-mark::before,[data-theme='dark'] .single .content>h3>.heading-mark::before,[data-theme='dark'] .single .content>h4>.heading-mark::before,[data-theme='dark'] .single .content>h5>.heading-mark::before,[data-theme='dark'] .single .content>h6>.heading-mark::before{color:#1781b5}.single .content>h2>.heading-mark::before{content:'#'}.single .content p{margin:0.5rem 0}.single .content b,.single .content strong{font-weight:bold}[data-theme='dark'] .single .content b,[data-theme='dark'] .single .content strong{color:#ddd}.single .content a,.single .content a::before,.single .content a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content a,[data-theme='dark'] .single .content a::before,[data-theme='dark'] .single .content a::after{color:#1781b5}.single .content a:active,.single .content a:hover{color:#ea517f}[data-theme='dark'] .single .content a:active,[data-theme='dark'] .single .content a:hover{color:#cc5595}.single .content a{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}[data-theme='dark'] .single .content a b,[data-theme='dark'] .single .content a strong{color:#1781b5}.single .content [data-theme='dark'] a:hover b,.single .content [data-theme='dark'] a:hover strong{color:#cc5595}.single .content ul,.single .content ol,.single .content dl{margin-block:0.5em}.single .content ul{list-style-type:disc}.single .content dl dt{margin-bottom:0.5em}.single .content dl dd{margin-inline-start:1.25em}.single .content ruby{background:#f6f8fa}.single .content ruby rt{color:#b1b1ba}[data-theme='dark'] .single .content ruby{background:#2d333b}[data-theme='dark'] .single .content ruby rt{color:#909092}.single .content .table-wrapper{overflow-x:auto}.single .content .table-wrapper::-webkit-scrollbar{background-color:#fff}[data-theme='dark'] .single .content .table-wrapper::-webkit-scrollbar{background-color:#272c34}.single .content .table-wrapper>table{width:100%;max-width:100%;margin:0.625rem 0;border-spacing:0;background:#fff;border-collapse:collapse}[data-theme='dark'] .single .content .table-wrapper>table{background:#272c34}.single .content .table-wrapper>table thead{background:#ededed}[data-theme='dark'] .single .content .table-wrapper>table thead{background-color:#20252b}.single .content .table-wrapper>table:not([class]) tbody tr:nth-child(odd){background:#f9f9f9}[data-theme='dark'] .single .content .table-wrapper>table:not([class]) tbody tr:nth-child(odd){background-color:#2d333c}.single .content .table-wrapper>table:not([class]) tbody tr:hover{background:#f4f4f4}[data-theme='dark'] .single .content .table-wrapper>table:not([class]) tbody tr:hover{background-color:#333a44}.single .content .table-wrapper>table th,.single .content .table-wrapper>table td{padding:0.3rem 1rem;border:1px solid #e8e8e8}[data-theme='dark'] .single .content .table-wrapper>table th,[data-theme='dark'] .single .content .table-wrapper>table td{border-color:#1c2025}.single .content img{max-width:100%;min-height:1em}.single .content img:not([height]){height:auto}.single .content img[loading='lazy'][srcset]:not([data-lazyloaded]):not(.suffix-invalid__small){width:var(--width-small, var(--width));aspect-ratio:var(--aspect-ratio-small, var(--aspect-ratio))}@media (min-resolution: 1.01dppx) and (max-resolution: 1.5dppx){.single .content img[loading='lazy'][srcset]:not([data-lazyloaded]):not(.suffix-invalid){width:calc(var(--width) / 1.5);aspect-ratio:var(--aspect-ratio)}}@media (min-resolution: 1.51dppx){.single .content img[loading='lazy'][srcset]:not([data-lazyloaded]):not(.suffix-invalid__large){width:calc(var(--width-large, var(--width)) / 2);aspect-ratio:var(--aspect-ratio-large, var(--aspect-ratio))}}.single .content img.version{height:1.25em;vertical-align:text-bottom}.single .content svg{max-width:100%}.single .content figure{margin:0.5rem;text-align:center}.single .content figure .image-caption:not(:empty){min-width:20%;max-width:80%;display:inline-block;padding:0.5rem;margin:0 auto;font-size:0.875rem;color:#969696}.single .content figure img{display:block;margin:0 auto;overflow:hidden}.single .content blockquote{display:block;border-left:0.25em solid #f0f0f0;color:#697681;padding:0 1em;margin:1rem 0}.single .content blockquote ul,.single .content blockquote ol{padding-left:1.5em}.single .content blockquote dl dd{margin-inline-start:0.25em}[data-theme='dark'] .single .content blockquote{color:#9ba3aa;border-left-color:#363636}.single .content blockquote a,.single .content blockquote a::before,.single .content blockquote a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content blockquote a,[data-theme='dark'] .single .content blockquote a::before,[data-theme='dark'] .single .content blockquote a::after{color:#b1b1ba}.single .content blockquote a:active,.single .content blockquote a:hover{color:#ea517f}[data-theme='dark'] .single .content blockquote a:active,[data-theme='dark'] .single .content blockquote a:hover{color:#fff}.single .content sup[id^='fnref:']:has(.footnote-ref){padding:2px 4px;background-color:rgba(238,238,238,0.7);color:#555555;border-radius:4px;cursor:pointer}[data-theme='dark'] .single .content sup[id^='fnref:']:has(.footnote-ref){background-color:rgba(56,139,253,0.1);color:#58a6ff}.single .content sup[id^='fnref:']:has(.footnote-ref) a,.single .content sup[id^='fnref:']:has(.footnote-ref) a::before,.single .content sup[id^='fnref:']:has(.footnote-ref) a::after{text-decoration:none;color:#161209}[data-theme='dark'] .single .content sup[id^='fnref:']:has(.footnote-ref) a,[data-theme='dark'] .single .content sup[id^='fnref:']:has(.footnote-ref) a::before,[data-theme='dark'] .single .content sup[id^='fnref:']:has(.footnote-ref) a::after{color:#1781b5}.single .content sup[id^='fnref:']:has(.footnote-ref) a:active,.single .content sup[id^='fnref:']:has(.footnote-ref) a:hover{color:#2983bb}[data-theme='dark'] .single .content sup[id^='fnref:']:has(.footnote-ref) a:active,[data-theme='dark'] .single .content sup[id^='fnref:']:has(.footnote-ref) a:hover{color:#cc5595}.single .content .footnotes{font-size:0.75rem;white-space:normal;color:#a3a3ae}.single .content .footnotes ol{margin-block:1em;padding-left:1rem}.single .content .footnotes a:not(.footnote-backref){color:inherit;text-decoration:underline}.single .content .footnotes a,.single .content .footnotes a::before,.single .content .footnotes a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content .footnotes a,[data-theme='dark'] .single .content .footnotes a::before,[data-theme='dark'] .single .content .footnotes a::after{color:#b1b1ba}.single .content .footnotes a:active,.single .content .footnotes a:hover{color:#ea517f}[data-theme='dark'] .single .content .footnotes a:active,[data-theme='dark'] .single .content .footnotes a:hover{color:#fff}[data-theme='dark'] .single .content .footnotes{color:#9d9d9f}.single .content .footnotes p{margin:0.25rem 0}.single .content code{padding:0.2em 0.4em;margin:0;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#24292f;background-color:rgba(175,184,193,0.2);text-decoration:inherit;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;word-wrap:break-word;overflow-wrap:break-word;-webkit-line-break:auto;-ms-line-break:auto;line-break:auto}[data-theme='dark'] .single .content code{color:#adbac7;background-color:rgba(99,110,123,0.4)}.single .content pre{margin:0;line-height:1.45em;padding:0.5rem;overflow:auto;font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-moz-tab-size:4;-o-tab-size:4;tab-size:4;background-color:#f6f8fa}[data-theme='dark'] .single .content pre{background-color:#2d333b}.single .content pre code{padding:0;background-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:intrinsic;min-width:max-content}[data-theme='dark'] .single .content pre code{background-color:transparent}.single .content pre img{min-height:1em;max-height:1.2em;vertical-align:text-bottom}.single .content .highlight,.single .content .gist{font-size:.875rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.single .content .highlight .table-wrapper>table,.single .content .highlight .table-wrapper>table thead,.single .content .highlight .table-wrapper>table tr,.single .content .highlight .table-wrapper>table td,.single .content .gist .table-wrapper>table,.single .content .gist .table-wrapper>table thead,.single .content .gist .table-wrapper>table tr,.single .content .gist .table-wrapper>table td{margin:0;padding:0;border:none !important;white-space:nowrap}.single .content .highlight{margin:0.5rem 0}.single .content .highlight>.chroma{position:relative}.single .content .highlight>.chroma .code-header{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;width:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:bold;line-height:1.4em;color:#9c9c9c;background-color:#ecf0f5;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-transition:border-radius 0.2s ease;-moz-transition:border-radius 0.2s ease;-o-transition:border-radius 0.2s ease;transition:border-radius 0.2s ease}[data-theme='dark'] .single .content .highlight>.chroma .code-header{color:#b1b0b0;background-color:#20242a}.single .content .highlight>.chroma .code-header:hover{cursor:pointer}.single .content .highlight>.chroma .code-header .code-title{width:100%;padding:0.4rem}.single .content .highlight>.chroma .code-header .code-title .arrow{padding:0 0.2rem;-webkit-transition:transform 0.2s ease;-moz-transition:transform 0.2s ease;-o-transition:transform 0.2s ease;transition:transform 0.2s ease}.single .content .highlight>.chroma .code-header .code-title .title-inner{position:absolute;left:50%;transform:translateX(-50%)}.single .content .highlight>.chroma .code-header .code-title::after{padding-left:0.2rem;content:'Code'}.single .content .highlight>.chroma .code-header .ellipses{padding:0.4rem}.single .content .highlight>.chroma .code-header .edit,.single .content .highlight>.chroma .code-header .copy{display:none;padding:0.4rem}.single .content .highlight>.chroma .code-header .edit:hover,.single .content .highlight>.chroma .code-header .copy:hover{cursor:pointer;color:#2983bb}[data-theme='dark'] .single .content .highlight>.chroma .code-header .edit:hover,[data-theme='dark'] .single .content .highlight>.chroma .code-header .copy:hover{color:#fff}.single .content .highlight>.chroma .code-header.language-abap .code-title::after{content:"ABAP"}.single .content .highlight>.chroma .code-header.language-abnf .code-title::after{content:"ABNF"}.single .content .highlight>.chroma .code-header.language-as .code-title::after{content:"ActionScript"}.single .content .highlight>.chroma .code-header.language-actionscript .code-title::after{content:"ActionScript"}.single .content .highlight>.chroma .code-header.language-as3 .code-title::after{content:"ActionScript 3"}.single .content .highlight>.chroma .code-header.language-actionscript3 .code-title::after{content:"ActionScript 3"}.single .content .highlight>.chroma .code-header.language-ada .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-ada95 .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-ada2005 .code-title::after{content:"Ada"}.single .content .highlight>.chroma .code-header.language-al .code-title::after{content:"AL"}.single .content .highlight>.chroma .code-header.language-ng2 .code-title::after{content:"Angular2"}.single .content .highlight>.chroma .code-header.language-antlr .code-title::after{content:"ANTLR"}.single .content .highlight>.chroma .code-header.language-apacheconf .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-aconf .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-apache .code-title::after{content:"ApacheConf"}.single .content .highlight>.chroma .code-header.language-apl .code-title::after{content:"APL"}.single .content .highlight>.chroma .code-header.language-applescript .code-title::after{content:"AppleScript"}.single .content .highlight>.chroma .code-header.language-arduino .code-title::after{content:"Arduino"}.single .content .highlight>.chroma .code-header.language-armasm .code-title::after{content:"ArmAsm"}.single .content .highlight>.chroma .code-header.language-awk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-gawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-mawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-nawk .code-title::after{content:"Awk"}.single .content .highlight>.chroma .code-header.language-ballerina .code-title::after{content:"Ballerina"}.single .content .highlight>.chroma .code-header.language-make .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-makefile .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-mf .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-bsdmake .code-title::after{content:"Base Makefile"}.single .content .highlight>.chroma .code-header.language-bash .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-sh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-ksh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-zsh .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-shell .code-title::after{content:"Bash"}.single .content .highlight>.chroma .code-header.language-bash-session .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-console .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-shell-session .code-title::after{content:"BashSession"}.single .content .highlight>.chroma .code-header.language-bat .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-batch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-dosbatch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-winbatch .code-title::after{content:"Batchfile"}.single .content .highlight>.chroma .code-header.language-bib .code-title::after{content:"BibTeX"}.single .content .highlight>.chroma .code-header.language-bibtex .code-title::after{content:"BibTeX"}.single .content .highlight>.chroma .code-header.language-bicep .code-title::after{content:"Bicep"}.single .content .highlight>.chroma .code-header.language-blitzbasic .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-b3d .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-bplus .code-title::after{content:"BlitzBasic"}.single .content .highlight>.chroma .code-header.language-bnf .code-title::after{content:"BNF"}.single .content .highlight>.chroma .code-header.language-brainfuck .code-title::after{content:"Brainfuck"}.single .content .highlight>.chroma .code-header.language-bf .code-title::after{content:"Brainfuck"}.single .content .highlight>.chroma .code-header.language-c .code-title::after{content:"C"}.single .content .highlight>.chroma .code-header.language-csharp .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-c\# .code-title::after{content:"C#"}.single .content .highlight>.chroma .code-header.language-cpp .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-c\+\+ .code-title::after{content:"C++"}.single .content .highlight>.chroma .code-header.language-caddyfile .code-title::after{content:"Caddyfile"}.single .content .highlight>.chroma .code-header.language-caddy .code-title::after{content:"Caddyfile"}.single .content .highlight>.chroma .code-header.language-caddyfile-directives .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-caddyfile-d .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-caddy-d .code-title::after{content:"Caddyfile Directives"}.single .content .highlight>.chroma .code-header.language-capnp .code-title::after{content:"Cap'n Proto"}.single .content .highlight>.chroma .code-header.language-cassandra .code-title::after{content:"Cassandra CQL"}.single .content .highlight>.chroma .code-header.language-cql .code-title::after{content:"Cassandra CQL"}.single .content .highlight>.chroma .code-header.language-ceylon .code-title::after{content:"Ceylon"}.single .content .highlight>.chroma .code-header.language-cfengine3 .code-title::after{content:"CFEngine3"}.single .content .highlight>.chroma .code-header.language-cf3 .code-title::after{content:"CFEngine3"}.single .content .highlight>.chroma .code-header.language-cfs .code-title::after{content:"cfstatement"}.single .content .highlight>.chroma .code-header.language-chai .code-title::after{content:"ChaiScript"}.single .content .highlight>.chroma .code-header.language-chaiscript .code-title::after{content:"ChaiScript"}.single .content .highlight>.chroma .code-header.language-cheetah .code-title::after{content:"Cheetah"}.single .content .highlight>.chroma .code-header.language-spitfire .code-title::after{content:"Cheetah"}.single .content .highlight>.chroma .code-header.language-clojure .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-clj .code-title::after{content:"Clojure"}.single .content .highlight>.chroma .code-header.language-cmake .code-title::after{content:"CMake"}.single .content .highlight>.chroma .code-header.language-cobol .code-title::after{content:"COBOL"}.single .content .highlight>.chroma .code-header.language-coffee-script .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-coffeescript .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-coffee .code-title::after{content:"CoffeeScript"}.single .content .highlight>.chroma .code-header.language-common-lisp .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-cl .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-lisp .code-title::after{content:"Common Lisp"}.single .content .highlight>.chroma .code-header.language-coq .code-title::after{content:"Coq"}.single .content .highlight>.chroma .code-header.language-cr .code-title::after{content:"Crystal"}.single .content .highlight>.chroma .code-header.language-crystal .code-title::after{content:"Crystal"}.single .content .highlight>.chroma .code-header.language-css .code-title::after{content:"CSS"}.single .content .highlight>.chroma .code-header.language-cython .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-pyx .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-pyrex .code-title::after{content:"Cython"}.single .content .highlight>.chroma .code-header.language-d .code-title::after{content:"D"}.single .content .highlight>.chroma .code-header.language-dart .code-title::after{content:"Dart"}.single .content .highlight>.chroma .code-header.language-diff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-udiff .code-title::after{content:"Diff"}.single .content .highlight>.chroma .code-header.language-django .code-title::after{content:"Django/Jinja"}.single .content .highlight>.chroma .code-header.language-jinja .code-title::after{content:"Django/Jinja"}.single .content .highlight>.chroma .code-header.language-docker .code-title::after{content:"Docker"}.single .content .highlight>.chroma .code-header.language-dockerfile .code-title::after{content:"Docker"}.single .content .highlight>.chroma .code-header.language-dtd .code-title::after{content:"DTD"}.single .content .highlight>.chroma .code-header.language-dylan .code-title::after{content:"Dylan"}.single .content .highlight>.chroma .code-header.language-ebnf .code-title::after{content:"EBNF"}.single .content .highlight>.chroma .code-header.language-elixir .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-ex .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-exs .code-title::after{content:"Elixir"}.single .content .highlight>.chroma .code-header.language-elm .code-title::after{content:"Elm"}.single .content .highlight>.chroma .code-header.language-emacs .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-elisp .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-emacs-lisp .code-title::after{content:"EmacsLisp"}.single .content .highlight>.chroma .code-header.language-erlang .code-title::after{content:"Erlang"}.single .content .highlight>.chroma .code-header.language-factor .code-title::after{content:"Factor"}.single .content .highlight>.chroma .code-header.language-fennel .code-title::after{content:"Fennel"}.single .content .highlight>.chroma .code-header.language-fnl .code-title::after{content:"Fennel"}.single .content .highlight>.chroma .code-header.language-fish .code-title::after{content:"Fish"}.single .content .highlight>.chroma .code-header.language-fishshell .code-title::after{content:"Fish"}.single .content .highlight>.chroma .code-header.language-forth .code-title::after{content:"Forth"}.single .content .highlight>.chroma .code-header.language-fortran .code-title::after{content:"Fortran"}.single .content .highlight>.chroma .code-header.language-fortranfixed .code-title::after{content:"FortranFixed"}.single .content .highlight>.chroma .code-header.language-fsharp .code-title::after{content:"FSharp"}.single .content .highlight>.chroma .code-header.language-gas .code-title::after{content:"GAS"}.single .content .highlight>.chroma .code-header.language-asm .code-title::after{content:"GAS"}.single .content .highlight>.chroma .code-header.language-gdscript .code-title::after{content:"GDScript"}.single .content .highlight>.chroma .code-header.language-gd .code-title::after{content:"GDScript"}.single .content .highlight>.chroma .code-header.language-genshi .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-kid .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-xml\+genshi .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-xml\+kid .code-title::after{content:"Genshi"}.single .content .highlight>.chroma .code-header.language-html\+genshi .code-title::after{content:"Genshi HTML"}.single .content .highlight>.chroma .code-header.language-html\+kid .code-title::after{content:"Genshi HTML"}.single .content .highlight>.chroma .code-header.language-genshitext .code-title::after{content:"Genshi Text"}.single .content .highlight>.chroma .code-header.language-cucumber .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-Cucumber .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-gherkin .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-Gherkin .code-title::after{content:"Gherkin"}.single .content .highlight>.chroma .code-header.language-glsl .code-title::after{content:"GLSL"}.single .content .highlight>.chroma .code-header.language-gnuplot .code-title::after{content:"Gnuplot"}.single .content .highlight>.chroma .code-header.language-go .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-golang .code-title::after{content:"Go"}.single .content .highlight>.chroma .code-header.language-go-html-template .code-title::after{content:"Go HTML Template"}.single .content .highlight>.chroma .code-header.language-go-text-template .code-title::after{content:"Go Text Template"}.single .content .highlight>.chroma .code-header.language-graphql .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-graphqls .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-gql .code-title::after{content:"GraphQL"}.single .content .highlight>.chroma .code-header.language-groff .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-nroff .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-man .code-title::after{content:"Groff"}.single .content .highlight>.chroma .code-header.language-groovy .code-title::after{content:"Groovy"}.single .content .highlight>.chroma .code-header.language-handlebars .code-title::after{content:"Handlebars"}.single .content .highlight>.chroma .code-header.language-hbs .code-title::after{content:"Handlebars"}.single .content .highlight>.chroma .code-header.language-haskell .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-hs .code-title::after{content:"Haskell"}.single .content .highlight>.chroma .code-header.language-hx .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-haxe .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-hxsl .code-title::after{content:"Haxe"}.single .content .highlight>.chroma .code-header.language-hcl .code-title::after{content:"HCL"}.single .content .highlight>.chroma .code-header.language-hexdump .code-title::after{content:"Hexdump"}.single .content .highlight>.chroma .code-header.language-hlb .code-title::after{content:"HLB"}.single .content .highlight>.chroma .code-header.language-html .code-title::after{content:"HTML"}.single .content .highlight>.chroma .code-header.language-http .code-title::after{content:"HTTP"}.single .content .highlight>.chroma .code-header.language-hylang .code-title::after{content:"Hy"}.single .content .highlight>.chroma .code-header.language-idris .code-title::after{content:"Idris"}.single .content .highlight>.chroma .code-header.language-idr .code-title::after{content:"Idris"}.single .content .highlight>.chroma .code-header.language-igor .code-title::after{content:"Igor"}.single .content .highlight>.chroma .code-header.language-igorpro .code-title::after{content:"Igor"}.single .content .highlight>.chroma .code-header.language-ini .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-cfg .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-dosini .code-title::after{content:"INI"}.single .content .highlight>.chroma .code-header.language-io .code-title::after{content:"Io"}.single .content .highlight>.chroma .code-header.language-j .code-title::after{content:"J"}.single .content .highlight>.chroma .code-header.language-java .code-title::after{content:"Java"}.single .content .highlight>.chroma .code-header.language-js .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-javascript .code-title::after{content:"JavaScript"}.single .content .highlight>.chroma .code-header.language-json .code-title::after{content:"JSON"}.single .content .highlight>.chroma .code-header.language-julia .code-title::after{content:"Julia"}.single .content .highlight>.chroma .code-header.language-jl .code-title::after{content:"Julia"}.single .content .highlight>.chroma .code-header.language-jungle .code-title::after{content:"Jungle"}.single .content .highlight>.chroma .code-header.language-kotlin .code-title::after{content:"Kotlin"}.single .content .highlight>.chroma .code-header.language-lighty .code-title::after{content:"Lighttpd configuration file"}.single .content .highlight>.chroma .code-header.language-lighttpd .code-title::after{content:"Lighttpd configuration file"}.single .content .highlight>.chroma .code-header.language-llvm .code-title::after{content:"LLVM"}.single .content .highlight>.chroma .code-header.language-lua .code-title::after{content:"Lua"}.single .content .highlight>.chroma .code-header.language-mako .code-title::after{content:"Mako"}.single .content .highlight>.chroma .code-header.language-md .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-mkd .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-mason .code-title::after{content:"Mason"}.single .content .highlight>.chroma .code-header.language-mathematica .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-mma .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-nb .code-title::after{content:"Mathematica"}.single .content .highlight>.chroma .code-header.language-matlab .code-title::after{content:"Matlab"}.single .content .highlight>.chroma .code-header.language-mcfunction .code-title::after{content:"mcfunction"}.single .content .highlight>.chroma .code-header.language-meson .code-title::after{content:"Meson"}.single .content .highlight>.chroma .code-header.language-meson\.build .code-title::after{content:"Meson"}.single .content .highlight>.chroma .code-header.language-metal .code-title::after{content:"Metal"}.single .content .highlight>.chroma .code-header.language-minizinc .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-MZN .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-mzn .code-title::after{content:"MiniZinc"}.single .content .highlight>.chroma .code-header.language-mlir .code-title::after{content:"MLIR"}.single .content .highlight>.chroma .code-header.language-modula2 .code-title::after{content:"Modula-2"}.single .content .highlight>.chroma .code-header.language-m2 .code-title::after{content:"Modula-2"}.single .content .highlight>.chroma .code-header.language-monkeyc .code-title::after{content:"MonkeyC"}.single .content .highlight>.chroma .code-header.language-morrowind .code-title::after{content:"MorrowindScript"}.single .content .highlight>.chroma .code-header.language-mwscript .code-title::after{content:"MorrowindScript"}.single .content .highlight>.chroma .code-header.language-myghty .code-title::after{content:"Myghty"}.single .content .highlight>.chroma .code-header.language-mysql .code-title::after{content:"MySQL"}.single .content .highlight>.chroma .code-header.language-mariadb .code-title::after{content:"MySQL"}.single .content .highlight>.chroma .code-header.language-nasm .code-title::after{content:"NASM"}.single .content .highlight>.chroma .code-header.language-newspeak .code-title::after{content:"Newspeak"}.single .content .highlight>.chroma .code-header.language-nginx .code-title::after{content:"Nginx configuration file"}.single .content .highlight>.chroma .code-header.language-nim .code-title::after{content:"Nim"}.single .content .highlight>.chroma .code-header.language-nimrod .code-title::after{content:"Nim"}.single .content .highlight>.chroma .code-header.language-nixos .code-title::after{content:"Nix"}.single .content .highlight>.chroma .code-header.language-nix .code-title::after{content:"Nix"}.single .content .highlight>.chroma .code-header.language-objective-c .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-objectivec .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-obj-c .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-objc .code-title::after{content:"Objective-C"}.single .content .highlight>.chroma .code-header.language-ocaml .code-title::after{content:"OCaml"}.single .content .highlight>.chroma .code-header.language-octave .code-title::after{content:"Octave"}.single .content .highlight>.chroma .code-header.language-ones .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-onesenterprise .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-1S .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-1S:Enterprise .code-title::after{content:"OnesEnterprise"}.single .content .highlight>.chroma .code-header.language-openedge .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-abl .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-progress .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-openedgeabl .code-title::after{content:"OpenEdge ABL"}.single .content .highlight>.chroma .code-header.language-openscad .code-title::after{content:"OpenSCAD"}.single .content .highlight>.chroma .code-header.language-org .code-title::after{content:"Org Mode"}.single .content .highlight>.chroma .code-header.language-orgmode .code-title::after{content:"Org Mode"}.single .content .highlight>.chroma .code-header.language-pacmanconf .code-title::after{content:"PacmanConf"}.single .content .highlight>.chroma .code-header.language-perl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-pl .code-title::after{content:"Perl"}.single .content .highlight>.chroma .code-header.language-php .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php3 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php4 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-php5 .code-title::after{content:"PHP"}.single .content .highlight>.chroma .code-header.language-phtml .code-title::after{content:"PHTML"}.single .content .highlight>.chroma .code-header.language-pig .code-title::after{content:"Pig"}.single .content .highlight>.chroma .code-header.language-pkgconfig .code-title::after{content:"PkgConfig"}.single .content .highlight>.chroma .code-header.language-plpgsql .code-title::after{content:"PL/pgSQL"}.single .content .highlight>.chroma .code-header.language-text .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-plain .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-no-highlight .code-title::after{content:"plaintext"}.single .content .highlight>.chroma .code-header.language-plutus-core .code-title::after{content:"Plutus Core"}.single .content .highlight>.chroma .code-header.language-plc .code-title::after{content:"Plutus Core"}.single .content .highlight>.chroma .code-header.language-pony .code-title::after{content:"Pony"}.single .content .highlight>.chroma .code-header.language-postgresql .code-title::after{content:"PostgreSQL SQL dialect"}.single .content .highlight>.chroma .code-header.language-postgres .code-title::after{content:"PostgreSQL SQL dialect"}.single .content .highlight>.chroma .code-header.language-postscript .code-title::after{content:"PostScript"}.single .content .highlight>.chroma .code-header.language-postscr .code-title::after{content:"PostScript"}.single .content .highlight>.chroma .code-header.language-pov .code-title::after{content:"POVRay"}.single .content .highlight>.chroma .code-header.language-powerquery .code-title::after{content:"PowerQuery"}.single .content .highlight>.chroma .code-header.language-pq .code-title::after{content:"PowerQuery"}.single .content .highlight>.chroma .code-header.language-powershell .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-posh .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-ps1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-psm1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-psd1 .code-title::after{content:"PowerShell"}.single .content .highlight>.chroma .code-header.language-prolog .code-title::after{content:"Prolog"}.single .content .highlight>.chroma .code-header.language-promql .code-title::after{content:"PromQL"}.single .content .highlight>.chroma .code-header.language-protobuf .code-title::after{content:"Protocol Buffer"}.single .content .highlight>.chroma .code-header.language-proto .code-title::after{content:"Protocol Buffer"}.single .content .highlight>.chroma .code-header.language-puppet .code-title::after{content:"Puppet"}.single .content .highlight>.chroma .code-header.language-python .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-py .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-sage .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-python3 .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-py3 .code-title::after{content:"Python"}.single .content .highlight>.chroma .code-header.language-python2 .code-title::after{content:"Python 2"}.single .content .highlight>.chroma .code-header.language-py2 .code-title::after{content:"Python 2"}.single .content .highlight>.chroma .code-header.language-qbasic .code-title::after{content:"QBasic"}.single .content .highlight>.chroma .code-header.language-basic .code-title::after{content:"QBasic"}.single .content .highlight>.chroma .code-header.language-qml .code-title::after{content:"QML"}.single .content .highlight>.chroma .code-header.language-qbs .code-title::after{content:"QML"}.single .content .highlight>.chroma .code-header.language-splus .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-s .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-r .code-title::after{content:"R"}.single .content .highlight>.chroma .code-header.language-racket .code-title::after{content:"Racket"}.single .content .highlight>.chroma .code-header.language-rkt .code-title::after{content:"Racket"}.single .content .highlight>.chroma .code-header.language-ragel .code-title::after{content:"Ragel"}.single .content .highlight>.chroma .code-header.language-perl6 .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-pl6 .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-raku .code-title::after{content:"Raku"}.single .content .highlight>.chroma .code-header.language-jsx .code-title::after{content:"react"}.single .content .highlight>.chroma .code-header.language-react .code-title::after{content:"react"}.single .content .highlight>.chroma .code-header.language-reason .code-title::after{content:"ReasonML"}.single .content .highlight>.chroma .code-header.language-reasonml .code-title::after{content:"ReasonML"}.single .content .highlight>.chroma .code-header.language-registry .code-title::after{content:"reg"}.single .content .highlight>.chroma .code-header.language-rst .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-rest .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-restructuredtext .code-title::after{content:"reStructuredText"}.single .content .highlight>.chroma .code-header.language-rexx .code-title::after{content:"Rexx"}.single .content .highlight>.chroma .code-header.language-arexx .code-title::after{content:"Rexx"}.single .content .highlight>.chroma .code-header.language-rb .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-ruby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-duby .code-title::after{content:"Ruby"}.single .content .highlight>.chroma .code-header.language-rust .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-rs .code-title::after{content:"Rust"}.single .content .highlight>.chroma .code-header.language-sas .code-title::after{content:"SAS"}.single .content .highlight>.chroma .code-header.language-sass .code-title::after{content:"Sass"}.single .content .highlight>.chroma .code-header.language-scala .code-title::after{content:"Scala"}.single .content .highlight>.chroma .code-header.language-scheme .code-title::after{content:"Scheme"}.single .content .highlight>.chroma .code-header.language-scm .code-title::after{content:"Scheme"}.single .content .highlight>.chroma .code-header.language-scilab .code-title::after{content:"Scilab"}.single .content .highlight>.chroma .code-header.language-scss .code-title::after{content:"SCSS"}.single .content .highlight>.chroma .code-header.language-sieve .code-title::after{content:"Sieve"}.single .content .highlight>.chroma .code-header.language-smalltalk .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-squeak .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-st .code-title::after{content:"Smalltalk"}.single .content .highlight>.chroma .code-header.language-smarty .code-title::after{content:"Smarty"}.single .content .highlight>.chroma .code-header.language-snobol .code-title::after{content:"Snobol"}.single .content .highlight>.chroma .code-header.language-sol .code-title::after{content:"Solidity"}.single .content .highlight>.chroma .code-header.language-solidity .code-title::after{content:"Solidity"}.single .content .highlight>.chroma .code-header.language-sparql .code-title::after{content:"SPARQL"}.single .content .highlight>.chroma .code-header.language-sql .code-title::after{content:"SQL"}.single .content .highlight>.chroma .code-header.language-squidconf .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-squid\.conf .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-squid .code-title::after{content:"SquidConf"}.single .content .highlight>.chroma .code-header.language-sml .code-title::after{content:"Standard ML"}.single .content .highlight>.chroma .code-header.language-stylus .code-title::after{content:"Stylus"}.single .content .highlight>.chroma .code-header.language-svelte .code-title::after{content:"Svelte"}.single .content .highlight>.chroma .code-header.language-swift .code-title::after{content:"Swift"}.single .content .highlight>.chroma .code-header.language-systemd .code-title::after{content:"SYSTEMD"}.single .content .highlight>.chroma .code-header.language-systemverilog .code-title::after{content:"systemverilog"}.single .content .highlight>.chroma .code-header.language-sv .code-title::after{content:"systemverilog"}.single .content .highlight>.chroma .code-header.language-tablegen .code-title::after{content:"TableGen"}.single .content .highlight>.chroma .code-header.language-tasm .code-title::after{content:"TASM"}.single .content .highlight>.chroma .code-header.language-tcl .code-title::after{content:"Tcl"}.single .content .highlight>.chroma .code-header.language-tcsh .code-title::after{content:"Tcsh"}.single .content .highlight>.chroma .code-header.language-csh .code-title::after{content:"Tcsh"}.single .content .highlight>.chroma .code-header.language-termcap .code-title::after{content:"Termcap"}.single .content .highlight>.chroma .code-header.language-terminfo .code-title::after{content:"Terminfo"}.single .content .highlight>.chroma .code-header.language-terraform .code-title::after{content:"Terraform"}.single .content .highlight>.chroma .code-header.language-tf .code-title::after{content:"Terraform"}.single .content .highlight>.chroma .code-header.language-tex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-latex .code-title::after{content:"TeX"}.single .content .highlight>.chroma .code-header.language-thrift .code-title::after{content:"Thrift"}.single .content .highlight>.chroma .code-header.language-toml .code-title::after{content:"TOML"}.single .content .highlight>.chroma .code-header.language-tradingview .code-title::after{content:"TradingView"}.single .content .highlight>.chroma .code-header.language-tv .code-title::after{content:"TradingView"}.single .content .highlight>.chroma .code-header.language-tsql .code-title::after{content:"Transact-SQL"}.single .content .highlight>.chroma .code-header.language-t-sql .code-title::after{content:"Transact-SQL"}.single .content .highlight>.chroma .code-header.language-turing .code-title::after{content:"Turing"}.single .content .highlight>.chroma .code-header.language-turtle .code-title::after{content:"Turtle"}.single .content .highlight>.chroma .code-header.language-twig .code-title::after{content:"Twig"}.single .content .highlight>.chroma .code-header.language-ts .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-tsx .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typescript .code-title::after{content:"TypeScript"}.single .content .highlight>.chroma .code-header.language-typoscript .code-title::after{content:"TypoScript"}.single .content .highlight>.chroma .code-header.language-typoscriptcssdata .code-title::after{content:"TypoScriptCssData"}.single .content .highlight>.chroma .code-header.language-typoscripthtmldata .code-title::after{content:"TypoScriptHtmlData"}.single .content .highlight>.chroma .code-header.language-v .code-title::after{content:"verilog"}.single .content .highlight>.chroma .code-header.language-vlang .code-title::after{content:"V"}.single .content .highlight>.chroma .code-header.language-vsh .code-title::after{content:"V shell"}.single .content .highlight>.chroma .code-header.language-vshell .code-title::after{content:"V shell"}.single .content .highlight>.chroma .code-header.language-vb\.net .code-title::after{content:"VB.net"}.single .content .highlight>.chroma .code-header.language-vbnet .code-title::after{content:"VB.net"}.single .content .highlight>.chroma .code-header.language-verilog .code-title::after{content:"verilog"}.single .content .highlight>.chroma .code-header.language-vhdl .code-title::after{content:"VHDL"}.single .content .highlight>.chroma .code-header.language-vim .code-title::after{content:"VimL"}.single .content .highlight>.chroma .code-header.language-vue .code-title::after{content:"vue"}.single .content .highlight>.chroma .code-header.language-vuejs .code-title::after{content:"vue"}.single .content .highlight>.chroma .code-header.language-whiley .code-title::after{content:"Whiley"}.single .content .highlight>.chroma .code-header.language-xml .code-title::after{content:"XML"}.single .content .highlight>.chroma .code-header.language-xorg\.conf .code-title::after{content:"Xorg"}.single .content .highlight>.chroma .code-header.language-yaml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .code-header.language-yang .code-title::after{content:"YANG"}.single .content .highlight>.chroma .code-header.language-zed .code-title::after{content:"Zed"}.single .content .highlight>.chroma .code-header.language-zig .code-title::after{content:"Zig"}.single .content .highlight>.chroma .code-header.language-markdown .code-title::after{content:"markdown"}.single .content .highlight>.chroma .code-header.language-yml .code-title::after{content:"YAML"}.single .content .highlight>.chroma .table-wrapper{max-height:0;overflow:hidden;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-moz-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;-o-transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s;transition:max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s}.single .content .highlight>.chroma table{border-spacing:0;width:auto;overflow:auto;display:block;background-color:#f6f8fa}[data-theme='dark'] .single .content .highlight>.chroma table{background-color:#2d333b}.single .content .highlight>.chroma table td{vertical-align:top;padding:0}.single .content .highlight>.chroma table pre{padding:0.25rem;outline-offset:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.single .content .highlight>.chroma table .ln{min-width:1.25rem}.single .content .highlight>.chroma table .lntd:first-child{min-width:1.6rem;text-align:right;position:sticky;left:0}.single .content .highlight>.chroma table .lntd:first-child pre{-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}.single .content .highlight>.chroma table .lntd:last-child{width:100%}.single .content .highlight>.chroma table .lntd:last-child pre{padding-left:0.5rem;padding-right:0.5rem}.single .content .highlight>.chroma table .lntd:last-child code{width:100%}.single .content .highlight>.chroma.open .code-header{background-color:#e2e9ef;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}[data-theme='dark'] .single .content .highlight>.chroma.open .code-header{background-color:#262b32}.single .content .highlight>.chroma.open .table-wrapper{max-height:100%;-webkit-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-moz-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;-o-transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s;transition:max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s}.single .content .highlight>.chroma.open .arrow{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.single .content .highlight>.chroma.open .ellipses{display:none}.single .content .highlight>.chroma.open .edit,.single .content .highlight>.chroma.open .copy{display:inline}.single .content .highlight .hl{display:block;background-color:#fff8c5;box-shadow:-0.5rem 0 0 #fff8c5,0.5rem 0 0 #fff8c5}[data-theme='dark'] .single .content .highlight .hl{background-color:rgba(174,124,20,0.15);box-shadow:-0.5rem 0 0 rgba(174,124,20,0.15),0.5rem 0 0 rgba(174,124,20,0.15)}.single .content .highlight .gl{text-decoration:underline}.single .content .highlight .gs{font-weight:bold}.single .content .highlight .ge{font-style:italic}.single .content .highlight .ln{padding-right:0.5rem;display:inline-block;min-width:1.1rem;text-align:right}.single .content .highlight .lnt,.single .content .highlight .ln{color:#b1b1ba}[data-theme='dark'] .single .content .highlight .lnt,[data-theme='dark'] .single .content .highlight .ln{color:#909092}.single .content .highlight .err{font-style:italic;border-bottom:1px dotted #dc3545}.single .content .highlight .gd{background-color:#ffebe9}[data-theme='dark'] .single .content .highlight .gd{background-color:#78191b}.single .content .highlight .gi{background-color:#dafbe1}[data-theme='dark'] .single .content .highlight .gi{background-color:#1b4721}.single .content .highlight .err{color:#dc3545}.single .content .highlight .k{color:#cf222e}.single .content .highlight .kc{color:#0550ae}.single .content .highlight .kd{color:#cf222e}.single .content .highlight .kn{color:#cf222e}.single .content .highlight .kp{color:#cf222e}.single .content .highlight .kr{color:#cf222e}.single .content .highlight .kt{color:#cf222e}.single .content .highlight .n{color:#24292f}.single .content .highlight .na{color:#0550ae}.single .content .highlight .nb{color:#0550ae}.single .content .highlight .bp{color:#24292f}.single .content .highlight .nc{color:#8250df}.single .content .highlight .no{color:#cf222e}.single .content .highlight .nd{color:#8250df}.single .content .highlight .ni{color:#0550ae}.single .content .highlight .ne{color:#0550ae}.single .content .highlight .nf{color:#0550ae}.single .content .highlight .fm{color:#0550ae}.single .content .highlight .nl{color:#0550ae}.single .content .highlight .nn{color:#8250df}.single .content .highlight .nx{color:#0550ae}.single .content .highlight .py{color:#0550ae}.single .content .highlight .nt{color:#116329}.single .content .highlight .nv{color:#953800}.single .content .highlight .vc{color:#0550ae}.single .content .highlight .vg{color:#0550ae}.single .content .highlight .vi{color:#0550ae}.single .content .highlight .vm{color:#0550ae}.single .content .highlight .l{color:#0550ae}.single .content .highlight .ld{color:#0a3069}.single .content .highlight .s{color:#0a3069}.single .content .highlight .sa{color:#0a3069}.single .content .highlight .sb{color:#0a3069}.single .content .highlight .sc{color:#0a3069}.single .content .highlight .dl{color:#0a3069}.single .content .highlight .sd{color:#0a3069}.single .content .highlight .s2{color:#0a3069}.single .content .highlight .se{color:#0a3069}.single .content .highlight .sh{color:#0a3069}.single .content .highlight .si{color:#0a3069}.single .content .highlight .sx{color:#0a3069}.single .content .highlight .sr{color:#0a3069}.single .content .highlight .s1{color:#0a3069}.single .content .highlight .ss{color:#0a3069}.single .content .highlight .m{color:#0550ae}.single .content .highlight .mb{color:#0550ae}.single .content .highlight .mf{color:#0550ae}.single .content .highlight .mh{color:#0550ae}.single .content .highlight .mi{color:#0550ae}.single .content .highlight .il{color:#0550ae}.single .content .highlight .mo{color:#0550ae}.single .content .highlight .o{color:#cf222e}.single .content .highlight .ow{color:#cf222e}.single .content .highlight .p{color:#24292f}.single .content .highlight .c{color:#6e7781}.single .content .highlight .ch{color:#6e7781}.single .content .highlight .cm{color:#6e7781}.single .content .highlight .c1{color:#6e7781}.single .content .highlight .cs{color:#6e7781}.single .content .highlight .cp{color:#0550ae}.single .content .highlight .cpf{color:#6e7781}.single .content .highlight .g{color:#24292f}.single .content .highlight .gd{color:#82071e}.single .content .highlight .ge{color:#24292f}.single .content .highlight .gr{color:#dc3545}.single .content .highlight .gh{color:#24292f}.single .content .highlight .gi{color:#116329}.single .content .highlight .go{color:#24292f}.single .content .highlight .gp{color:#24292f}.single .content .highlight .gs{color:#24292f}.single .content .highlight .gu{color:#24292f}.single .content .highlight .gt{color:#dc3545}.single .content .highlight .gl{color:#24292f}.single .content .highlight .w{color:#24292f}.single .content .highlight .x{color:#24292f}[data-theme='dark'] .single .content .highlight .err{color:#dc3545}[data-theme='dark'] .single .content .highlight .k{color:#f47067}[data-theme='dark'] .single .content .highlight .kc{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .kd{color:#f47067}[data-theme='dark'] .single .content .highlight .kn{color:#f47067}[data-theme='dark'] .single .content .highlight .kp{color:#f47067}[data-theme='dark'] .single .content .highlight .kr{color:#f47067}[data-theme='dark'] .single .content .highlight .kt{color:#f47067}[data-theme='dark'] .single .content .highlight .n{color:#adbac7}[data-theme='dark'] .single .content .highlight .na{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nb{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .bp{color:#adbac7}[data-theme='dark'] .single .content .highlight .nc{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .no{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nd{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .ni{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .ne{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nf{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .fm{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nl{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nn{color:#f47067}[data-theme='dark'] .single .content .highlight .nx{color:#dcbdfb}[data-theme='dark'] .single .content .highlight .py{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .nt{color:#8ddb8c}[data-theme='dark'] .single .content .highlight .nv{color:#f69d50}[data-theme='dark'] .single .content .highlight .vc{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vg{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vi{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .vm{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .l{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .ld{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sa{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sb{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sc{color:#96d0ff}[data-theme='dark'] .single .content .highlight .dl{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sd{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s2{color:#96d0ff}[data-theme='dark'] .single .content .highlight .se{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sh{color:#96d0ff}[data-theme='dark'] .single .content .highlight .si{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sx{color:#96d0ff}[data-theme='dark'] .single .content .highlight .sr{color:#96d0ff}[data-theme='dark'] .single .content .highlight .s1{color:#96d0ff}[data-theme='dark'] .single .content .highlight .ss{color:#96d0ff}[data-theme='dark'] .single .content .highlight .m{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mb{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mf{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mh{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mi{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .il{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .mo{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .o{color:#f47067}[data-theme='dark'] .single .content .highlight .ow{color:#f47067}[data-theme='dark'] .single .content .highlight .p{color:#adbac7}[data-theme='dark'] .single .content .highlight .c{color:#768390}[data-theme='dark'] .single .content .highlight .ch{color:#768390}[data-theme='dark'] .single .content .highlight .cm{color:#768390}[data-theme='dark'] .single .content .highlight .c1{color:#768390}[data-theme='dark'] .single .content .highlight .cs{color:#768390}[data-theme='dark'] .single .content .highlight .cp{color:#6cb6ff}[data-theme='dark'] .single .content .highlight .cpf{color:#768390}[data-theme='dark'] .single .content .highlight .g{color:#adbac7}[data-theme='dark'] .single .content .highlight .gd{color:#ffd8d3}[data-theme='dark'] .single .content .highlight .ge{color:#adbac7}[data-theme='dark'] .single .content .highlight .gr{color:#dc3545}[data-theme='dark'] .single .content .highlight .gh{color:#adbac7}[data-theme='dark'] .single .content .highlight .gi{color:#b4f1b4}[data-theme='dark'] .single .content .highlight .go{color:#adbac7}[data-theme='dark'] .single .content .highlight .gp{color:#adbac7}[data-theme='dark'] .single .content .highlight .gs{color:#adbac7}[data-theme='dark'] .single .content .highlight .gu{color:#adbac7}[data-theme='dark'] .single .content .highlight .gt{color:#dc3545}[data-theme='dark'] .single .content .highlight .gl{color:#adbac7}[data-theme='dark'] .single .content .highlight .w{color:#adbac7}[data-theme='dark'] .single .content .highlight .x{color:#adbac7}.single .content .gist .gist-file,.single .content .gist .gist-data,.single .content .gist .gist-meta{border:none}.single .content .gist .gist-data{background-color:transparent}.single .content .gist .gist-meta{padding:0.4rem 0.8rem;background-color:#e6ebf1}.single .content .gist .gist-meta a,.single .content .gist .gist-meta a::before,.single .content .gist .gist-meta a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .content .gist .gist-meta a,[data-theme='dark'] .single .content .gist .gist-meta a::before,[data-theme='dark'] .single .content .gist .gist-meta a::after{color:#1781b5}.single .content .gist .gist-meta a:active,.single .content .gist .gist-meta a:hover{color:#ea517f}[data-theme='dark'] .single .content .gist .gist-meta a:active,[data-theme='dark'] .single .content .gist .gist-meta a:hover{color:#cc5595}[data-theme='dark'] .single .content .gist .gist-meta{background-color:#22262d}.single .content .gist .table-wrapper .highlight,.single .content .gist .table-wrapper::-webkit-scrollbar{background-color:#f6f8fa}[data-theme='dark'] .single .content .gist .table-wrapper .highlight,[data-theme='dark'] .single .content .gist .table-wrapper::-webkit-scrollbar{background-color:#2d333b}[data-theme='dark'] .single .content .gist{--color-fg-default: #adbac7;--color-prettylights-syntax-comment: #768390;--color-prettylights-syntax-constant: #6cb6ff;--color-prettylights-syntax-entity: #dcbdfb;--color-prettylights-syntax-storage-modifier-import: #adbac7;--color-prettylights-syntax-entity-tag: #8ddb8c;--color-prettylights-syntax-keyword: #f47067;--color-prettylights-syntax-string: #96d0ff;--color-prettylights-syntax-variable: #f69d50;--color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;--color-prettylights-syntax-invalid-illegal-text: #cdd9e5;--color-prettylights-syntax-invalid-illegal-bg: #922323;--color-prettylights-syntax-carriage-return-text: #cdd9e5;--color-prettylights-syntax-carriage-return-bg: #ad2e2c;--color-prettylights-syntax-string-regexp: #8ddb8c;--color-prettylights-syntax-markup-list: #eac55f;--color-prettylights-syntax-markup-heading: #316dca;--color-prettylights-syntax-markup-italic: #adbac7;--color-prettylights-syntax-markup-bold: #adbac7;--color-prettylights-syntax-markup-deleted-text: #ffd8d3;--color-prettylights-syntax-markup-deleted-bg: #78191b;--color-prettylights-syntax-markup-inserted-text: #b4f1b4;--color-prettylights-syntax-markup-inserted-bg: #1b4721;--color-prettylights-syntax-markup-changed-text: #ffddb0;--color-prettylights-syntax-markup-changed-bg: #682d0f;--color-prettylights-syntax-markup-ignored-text: #adbac7;--color-prettylights-syntax-markup-ignored-bg: #255ab2;--color-prettylights-syntax-meta-diff-range: #dcbdfb;--color-prettylights-syntax-brackethighlighter-angle: #768390;--color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;--color-prettylights-syntax-constant-other-reference-link: #96d0ff}[data-theme='dark'] .single .content .gist .blob-num,[data-theme='dark'] .single .content .gist .blob-code-inner{color:val(--color-fg-default)}[data-theme='dark'] .single .content .gist .pl-c{color:var(--color-prettylights-syntax-comment)}[data-theme='dark'] .single .content .gist .pl-c1,[data-theme='dark'] .single .content .gist .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}[data-theme='dark'] .single .content .gist .pl-e,[data-theme='dark'] .single .content .gist .pl-en{color:var(--color-prettylights-syntax-entity)}[data-theme='dark'] .single .content .gist .pl-smi,[data-theme='dark'] .single .content .gist .pl-s .pl-s1{color:var(--color-prettylights-syntax-storage-modifier-import)}[data-theme='dark'] .single .content .gist .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}[data-theme='dark'] .single .content .gist .pl-k{color:var(--color-prettylights-syntax-keyword)}[data-theme='dark'] .single .content .gist .pl-s,[data-theme='dark'] .single .content .gist .pl-pds,[data-theme='dark'] .single .content .gist .pl-s .pl-pse .pl-s1,[data-theme='dark'] .single .content .gist .pl-sr,[data-theme='dark'] .single .content .gist .pl-sr .pl-cce,[data-theme='dark'] .single .content .gist .pl-sr .pl-sre,[data-theme='dark'] .single .content .gist .pl-sr .pl-sra{color:var(--color-prettylights-syntax-string)}[data-theme='dark'] .single .content .gist .pl-v,[data-theme='dark'] .single .content .gist .pl-smw{color:var(--color-prettylights-syntax-variable)}[data-theme='dark'] .single .content .gist .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}[data-theme='dark'] .single .content .gist .pl-ii{color:var(--color-prettylights-syntax-invalid-illegal-text);background-color:var(--color-prettylights-syntax-invalid-illegal-bg)}[data-theme='dark'] .single .content .gist .pl-c2{color:var(--color-prettylights-syntax-carriage-return-text);background-color:var(--color-prettylights-syntax-carriage-return-bg)}[data-theme='dark'] .single .content .gist .pl-c2::before{content:'^M'}[data-theme='dark'] .single .content .gist .pl-sr .pl-cce{font-weight:bold;color:var(--color-prettylights-syntax-string-regexp)}[data-theme='dark'] .single .content .gist .pl-ml{color:var(--color-prettylights-syntax-markup-list)}[data-theme='dark'] .single .content .gist .pl-mh,[data-theme='dark'] .single .content .gist .pl-mh .pl-en,[data-theme='dark'] .single .content .gist .pl-ms{font-weight:bold;color:var(--color-prettylights-syntax-markup-heading)}[data-theme='dark'] .single .content .gist .pl-mi{font-style:italic;color:var(--color-prettylights-syntax-markup-italic)}[data-theme='dark'] .single .content .gist .pl-mb{font-weight:bold;color:var(--color-prettylights-syntax-markup-bold)}[data-theme='dark'] .single .content .gist .pl-md{color:var(--color-prettylights-syntax-markup-deleted-text);background-color:var(--color-prettylights-syntax-markup-deleted-bg)}[data-theme='dark'] .single .content .gist .pl-mi1{color:var(--color-prettylights-syntax-markup-inserted-text);background-color:var(--color-prettylights-syntax-markup-inserted-bg)}[data-theme='dark'] .single .content .gist .pl-mc{color:var(--color-prettylights-syntax-markup-changed-text);background-color:var(--color-prettylights-syntax-markup-changed-bg)}[data-theme='dark'] .single .content .gist .pl-mi2{color:var(--color-prettylights-syntax-markup-ignored-text);background-color:var(--color-prettylights-syntax-markup-ignored-bg)}[data-theme='dark'] .single .content .gist .pl-mdr{font-weight:bold;color:var(--color-prettylights-syntax-meta-diff-range)}[data-theme='dark'] .single .content .gist .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}[data-theme='dark'] .single .content .gist .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}[data-theme='dark'] .single .content .gist .pl-corl{text-decoration:underline;color:var(--color-prettylights-syntax-constant-other-reference-link)}.single .content .admonition{position:relative;margin:1rem 0;padding:0 0.75rem;border-left:.25rem solid;overflow:auto;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-color:rgba(68,138,255,0.1);border-left-color:#448aff}.single .content .admonition .admonition-title{font-weight:bold;margin:0 -0.75rem;padding:0.25rem 1.8rem;border-bottom:1px solid;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.single .content .admonition .admonition-content{padding:0.5rem 0}.single .content .admonition i.icon{font-size:0.85rem;position:absolute;top:0.6rem;left:0.4rem}.single .content .admonition i.details-icon{position:absolute;top:0.6rem;right:0.3rem}.single .content .admonition .admonition-title{border-bottom-color:rgba(68,138,255,0.1);background-color:rgba(68,138,255,0.25)}.single .content .admonition.open .admonition-title{background-color:rgba(68,138,255,0.1)}.single .content .admonition i.icon{color:#448aff}.single .content .admonition.abstract{background-color:rgba(0,176,255,0.1);border-left-color:#00b0ff}.single .content .admonition.abstract .admonition-title{border-bottom-color:rgba(0,176,255,0.1);background-color:rgba(0,176,255,0.25)}.single .content .admonition.abstract.open .admonition-title{background-color:rgba(0,176,255,0.1)}.single .content .admonition.abstract i.icon{color:#00b0ff}.single .content .admonition.info{background-color:rgba(0,184,212,0.1);border-left-color:#00b8d4}.single .content .admonition.info .admonition-title{border-bottom-color:rgba(0,184,212,0.1);background-color:rgba(0,184,212,0.25)}.single .content .admonition.info.open .admonition-title{background-color:rgba(0,184,212,0.1)}.single .content .admonition.info i.icon{color:#00b8d4}.single .content .admonition.tip{background-color:rgba(0,191,165,0.1);border-left-color:#00bfa5}.single .content .admonition.tip .admonition-title{border-bottom-color:rgba(0,191,165,0.1);background-color:rgba(0,191,165,0.25)}.single .content .admonition.tip.open .admonition-title{background-color:rgba(0,191,165,0.1)}.single .content .admonition.tip i.icon{color:#00bfa5}.single .content .admonition.success{background-color:rgba(0,200,83,0.1);border-left-color:#00c853}.single .content .admonition.success .admonition-title{border-bottom-color:rgba(0,200,83,0.1);background-color:rgba(0,200,83,0.25)}.single .content .admonition.success.open .admonition-title{background-color:rgba(0,200,83,0.1)}.single .content .admonition.success i.icon{color:#00c853}.single .content .admonition.question{background-color:rgba(100,221,23,0.1);border-left-color:#64dd17}.single .content .admonition.question .admonition-title{border-bottom-color:rgba(100,221,23,0.1);background-color:rgba(100,221,23,0.25)}.single .content .admonition.question.open .admonition-title{background-color:rgba(100,221,23,0.1)}.single .content .admonition.question i.icon{color:#64dd17}.single .content .admonition.warning{background-color:rgba(255,145,0,0.1);border-left-color:#ff9100}.single .content .admonition.warning .admonition-title{border-bottom-color:rgba(255,145,0,0.1);background-color:rgba(255,145,0,0.25)}.single .content .admonition.warning.open .admonition-title{background-color:rgba(255,145,0,0.1)}.single .content .admonition.warning i.icon{color:#ff9100}.single .content .admonition.failure{background-color:rgba(255,82,82,0.1);border-left-color:#ff5252}.single .content .admonition.failure .admonition-title{border-bottom-color:rgba(255,82,82,0.1);background-color:rgba(255,82,82,0.25)}.single .content .admonition.failure.open .admonition-title{background-color:rgba(255,82,82,0.1)}.single .content .admonition.failure i.icon{color:#ff5252}.single .content .admonition.danger{background-color:rgba(255,23,68,0.1);border-left-color:#ff1744}.single .content .admonition.danger .admonition-title{border-bottom-color:rgba(255,23,68,0.1);background-color:rgba(255,23,68,0.25)}.single .content .admonition.danger.open .admonition-title{background-color:rgba(255,23,68,0.1)}.single .content .admonition.danger i.icon{color:#ff1744}.single .content .admonition.bug{background-color:rgba(245,0,87,0.1);border-left-color:#f50057}.single .content .admonition.bug .admonition-title{border-bottom-color:rgba(245,0,87,0.1);background-color:rgba(245,0,87,0.25)}.single .content .admonition.bug.open .admonition-title{background-color:rgba(245,0,87,0.1)}.single .content .admonition.bug i.icon{color:#f50057}.single .content .admonition.example{background-color:rgba(101,31,255,0.1);border-left-color:#651fff}.single .content .admonition.example .admonition-title{border-bottom-color:rgba(101,31,255,0.1);background-color:rgba(101,31,255,0.25)}.single .content .admonition.example.open .admonition-title{background-color:rgba(101,31,255,0.1)}.single .content .admonition.example i.icon{color:#651fff}.single .content .admonition.quote{background-color:rgba(159,159,159,0.1);border-left-color:#9e9e9e}.single .content .admonition.quote .admonition-title{border-bottom-color:rgba(159,159,159,0.1);background-color:rgba(159,159,159,0.25)}.single .content .admonition.quote.open .admonition-title{background-color:rgba(159,159,159,0.1)}.single .content .admonition.quote i.icon{color:#9e9e9e}.single .content .admonition:last-child{margin-bottom:0.75rem}.single .content .bilibili{position:relative;width:100%;height:0;padding-bottom:75%;margin:3% auto;text-align:center}.single .content .bilibili iframe{position:absolute;width:100%;height:100%;left:0;top:0}.single .content .card-link{position:relative;display:block;margin:0.5rem auto;box-sizing:border-box;width:clamp(50%, 400px, 100%);max-width:100%;overflow:hidden;text-decoration:none;border:none;-webkit-border-radius:.75rem;-moz-border-radius:.75rem;border-radius:.75rem}.single .content .cl-backdrop{position:absolute;top:0.75rem;bottom:0.75rem;left:0;right:0;background-image:var(--cl-bg-url);background-repeat:no-repeat;filter:blur(0.5rem);opacity:0.5;background-size:contain;background-position:center}.single .content .cl-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding:0.75rem;background-color:rgba(245,245,245,0.88)}.single .content .cl-text{overflow:hidden}.single .content .cl-title{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;max-height:calc(1rem * 1.25 * 2);font-size:1rem;font-weight:500;line-height:1.25;color:#161209}.single .content .cl-meta{display:flex;align-items:center;margin-top:0.25rem;font-size:0.825rem;color:#b1b1ba}.single .content .cl-icon-link{width:1rem;height:1rem;flex-shrink:0;margin-right:0.25rem}.single .content .cl-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.single .content .cl-icon-globe{width:4rem;height:4rem;flex-shrink:0;margin-left:0.25rem}[data-theme='dark'] .single .content .cl-content{background-color:rgba(61,62,65,0.88)}[data-theme='dark'] .single .content .cl-title{color:#b1b1ba}[data-theme='dark'] .single .content .cl-meta{color:#909092}.single .content .blockquote-center{border-left:none;margin:40px 0;padding:0;position:relative;text-align:center;color:initial}.single .content .blockquote-center::after,.single .content .blockquote-center::before{left:0;line-height:1;opacity:0.6;position:absolute;width:100%}.single .content .blockquote-center::before{border-top:1px solid #f0f0f0;text-align:left;top:-20px;content:'\f10d';font-family:'Font Awesome 5 Free';font-weight:900}[data-theme='dark'] .single .content .blockquote-center::before{border-top-color:#363636}.single .content .blockquote-center::after{border-bottom:1px solid #f0f0f0;bottom:-20px;text-align:right;content:'\f10e';font-family:'Font Awesome 5 Free';font-weight:900}[data-theme='dark'] .single .content .blockquote-center::after{border-bottom-color:#363636}.single .content .echarts{margin:0.5rem 0;text-align:center}[data-theme='dark'] .single .content iframe.instagram-media{border:none !important}.single .content .mapbox{margin:0.5rem 0;padding:0.5rem 0;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.single .content .mermaid{text-align:center}.single .content .mermaid svg{max-width:100%;height:auto}.single .content hr{margin-block:1em;position:relative;border-top:1px dashed #e3e3e3;border-bottom:none}[data-theme='dark'] .single .content hr{border-top:1px dashed #434343}.single .content kbd{display:inline-block;padding:0 0.25rem;background-color:#fff;border:1px solid #f0f0f0;font-size:0.8rem;font-family:Source Code Pro,Menlo,Consolas,Monaco,monospace,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;color:#24292f;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:inset 0 -1px 0 #f0f0f0;box-shadow:inset 0 -1px 0 #f0f0f0}[data-theme='dark'] .single .content kbd{background-color:#292a2e;border:1px solid #363636;color:#adbac7;-webkit-box-shadow:inset 0 -1px 0 #363636;box-shadow:inset 0 -1px 0 #363636}.single .post-reward{padding:1rem;text-align:center;margin-bottom:-1rem}.single .post-reward:has(.reward-ways:empty){display:none}.single .post-reward .comment{margin:0.5rem 0;font-weight:500}.single .post-reward .reward-ways{display:none}.single .post-reward .reward-input:checked~.reward-ways{display:block;padding-top:20px}.single .post-reward .reward-input:checked~.reward-ways div{display:inline-block;-webkit-user-select:none !important;-moz-user-select:none !important;user-select:none !important}.single .post-reward .reward-input:checked~.reward-ways div span{display:block}.single .post-reward .reward-input:checked~.reward-ways div:hover span[data-animation]{animation:var(--animation-reward, jackInTheBox) 0.8s infinite linear;pointer-events:none}.single .post-reward .reward-input:checked~.reward-ways div img{display:inline-block;margin:0.8em 2em 0;max-width:100%;width:180px}.single .post-reward .reward-input:checked~.reward-ways[data-mode='fixed']{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%);padding:1rem;background-color:#fff;z-index:200;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.2);box-shadow:0 0 1.5rem 0 rgba(0,0,0,0.2)}[data-theme='dark'] .single .post-reward .reward-input:checked~.reward-ways[data-mode='fixed']{background-color:#292a2e;-webkit-box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.2);box-shadow:0 0 1.5rem 0 rgba(255,255,255,0.2)}.single .post-reward .reward-button{display:inline-block;box-sizing:border-box;cursor:pointer;outline:none;color:#ff7961;border:2px solid #ff8e7a;border-radius:5px;padding:0.6rem 1rem;background-color:#fff;vertical-align:text-top;line-height:1rem;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-reward .reward-button:active,.single .post-reward .reward-button:hover{color:#ffffff;border-color:tomato;background-color:tomato}[data-theme='dark'] .single .post-reward .reward-button:active,[data-theme='dark'] .single .post-reward .reward-button:hover{color:#ffffff;border-color:#ff4d2e;background-color:#ff4d2e}[data-theme='dark'] .single .post-reward .reward-button{color:tomato;border-color:#ff7961;background-color:#292a2e}.single .post-footer{margin:2rem 0}.single .post-footer~.post-reward{margin-block:-2rem 0}.single .post-footer .post-info{border-bottom:1px solid #f0f0f0;padding:0.3rem 0}[data-theme='dark'] .single .post-footer .post-info{border-bottom:1px solid #363636}.single .post-footer .post-info .post-info-line{display:flex;justify-content:space-between}.single .post-footer .post-info .post-info-line .post-info-mod{font-size:0.8em;color:#b1b1ba}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod{color:#909092}.single .post-footer .post-info .post-info-line .post-info-mod a,.single .post-footer .post-info .post-info-line .post-info-mod a::before,.single .post-footer .post-info .post-info-line .post-info-mod a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-mod a:active,.single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-mod a:hover{color:#cc5595}.single .post-footer .post-info .post-info-line .post-info-license{font-size:0.8em;color:#b1b1ba}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license{color:#909092}.single .post-footer .post-info .post-info-line .post-info-license a,.single .post-footer .post-info .post-info-line .post-info-license a::before,.single .post-footer .post-info .post-info-line .post-info-license a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-license a:active,.single .post-footer .post-info .post-info-line .post-info-license a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-license a:hover{color:#cc5595}.single .post-footer .post-info .post-info-line .post-info-md{font-size:0.8rem;width:fit-content}.single .post-footer .post-info .post-info-line .post-info-md a,.single .post-footer .post-info .post-info-line .post-info-md a::before,.single .post-footer .post-info .post-info-line .post-info-md a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a::before,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a::after{color:#1781b5}.single .post-footer .post-info .post-info-line .post-info-md a:active,.single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#ea517f}[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a:active,[data-theme='dark'] .single .post-footer .post-info .post-info-line .post-info-md a:hover{color:#cc5595}.single .post-footer .post-info .post-info-line .post-info-md>span:not(:first-child)::before{content:'|';margin-left:0.25rem;margin-right:0.25rem}.single .post-footer .post-info .post-info-line .post-info-share a *{vertical-align:text-bottom}.single .post-footer .post-info-more{padding:0.3rem 0;display:flex;justify-content:space-between;font-size:0.9rem}.single .post-footer .post-tags{max-width:65%}.single .post-footer .post-tags *{display:inline}.single .post-footer .post-tags a,.single .post-footer .post-tags a::before,.single .post-footer .post-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .single .post-footer .post-tags a,[data-theme='dark'] .single .post-footer .post-tags a::before,[data-theme='dark'] .single .post-footer .post-tags a::after{color:#b1b1ba}.single .post-footer .post-tags a:active,.single .post-footer .post-tags a:hover{color:#2983bb}[data-theme='dark'] .single .post-footer .post-tags a:active,[data-theme='dark'] .single .post-footer .post-tags a:hover{color:#fff}.single .post-footer .post-tags .post-tag:not(:last-child)::after{content:',';margin-right:0.25rem}.single .post-footer .post-nav{display:flex;justify-content:space-between;gap:1.5rem;padding-block:0.5rem}.single .post-footer .post-nav .post-nav-item{flex:1;font-size:1rem;font-weight:600;-webkit-transition:all 0.3s ease-out;-moz-transition:all 0.3s ease-out;-o-transition:all 0.3s ease-out;transition:all 0.3s ease-out}.single .post-footer .post-nav .post-nav-item[rel='next']{text-align:right}.single .post-footer .post-nav .post-nav-item[rel='prev']:hover{-webkit-transform:translateX(-4px);-ms-transform:translateX(-4px);-o-transform:translateX(-4px);transform:translateX(-4px)}.single .post-footer .post-nav .post-nav-item[rel='next']:hover{-webkit-transform:translateX(4px);-ms-transform:translateX(4px);-o-transform:translateX(4px);transform:translateX(4px)}.single>#comments{padding:2rem 0}.lg-toolbar .lg-icon::after{color:#999}.special .single-title,.special .single-subtitle{text-align:right}.archive .single-title{padding:1rem 0 0.5rem;margin:0;font-size:1.6rem;font-weight:bold;line-height:140%;text-align:right}.archive .single-subtitle{margin:0.5rem 0;font-size:1.2rem;font-weight:normal;line-height:100%;text-align:right}.archive .group-title{font-size:1.2rem;margin-top:1.5rem;margin-bottom:1rem}.archive .categories-card,.archive .collections-card{margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:row;flex-wrap:wrap;line-height:1.6rem}.archive .categories-card .card-item,.archive .collections-card .card-item{font-size:0.875rem;text-align:left;width:45%;display:flex;align-items:flex-start;min-height:10rem;padding:0 2%;position:relative}.archive .categories-card .card-item:nth-child(n+3),.archive .collections-card .card-item:nth-child(n+3){margin-top:2rem}.archive .categories-card .card-item .card-item-wrapper,.archive .collections-card .card-item .card-item-wrapper{width:100%;overflow:hidden}.archive .categories-card .card-item .card-item-wrapper .card-item-title,.archive .collections-card .card-item .card-item-wrapper .card-item-title{font-size:1.2rem;font-weight:bold;display:inline-block;margin-top:1rem;margin-bottom:0.75rem}.archive .categories-card .card-item .card-item-wrapper span,.archive .collections-card .card-item .card-item-wrapper span{float:right;padding-right:1rem}.archive .archive-item{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;margin:0.25rem 0 0.25rem 1.5rem}.archive .archive-item-link{min-width:10%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.archive .archive-item-link:hover{color:#2983bb;background-color:transparent}[data-theme='dark'] .archive .archive-item-link{color:#b1b1ba}[data-theme='dark'] .archive .archive-item-link:hover{color:#fff}.archive .archive-item-date{text-align:right;color:#b1b1ba;white-space:nowrap;font-variant-numeric:tabular-nums lining-nums}[data-theme='dark'] .archive .archive-item-date{color:#909092}.archive .more-post{text-align:right}.archive .tag-cloud-tags{margin:10px 0}.archive .tag-cloud-tags a,.archive .tag-cloud-tags a::before,.archive .tag-cloud-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .archive .tag-cloud-tags a,[data-theme='dark'] .archive .tag-cloud-tags a::before,[data-theme='dark'] .archive .tag-cloud-tags a::after{color:#b1b1ba}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:hover{color:#2983bb}[data-theme='dark'] .archive .tag-cloud-tags a:active,[data-theme='dark'] .archive .tag-cloud-tags a:hover{color:#fff}.archive .tag-cloud-tags a{display:inline-block;position:relative;margin:5px 10px;word-wrap:break-word;overflow-wrap:break-word;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}.archive .tag-cloud-tags a:active,.archive .tag-cloud-tags a:focus,.archive .tag-cloud-tags a:hover{-webkit-transform:scale(1.2);-ms-transform:scale(1.2);-o-transform:scale(1.2);transform:scale(1.2)}.archive .tag-cloud-tags a:active sup,.archive .tag-cloud-tags a:focus sup,.archive .tag-cloud-tags a:hover sup{color:#161209;-webkit-transition:all ease-out 0.3s;-moz-transition:all ease-out 0.3s;-o-transition:all ease-out 0.3s;transition:all ease-out 0.3s}[data-theme='dark'] .archive .tag-cloud-tags a:active sup,[data-theme='dark'] .archive .tag-cloud-tags a:focus sup,[data-theme='dark'] .archive .tag-cloud-tags a:hover sup{color:#b1b1ba}.archive .tag-cloud-tags a sup{color:#b1b1ba}[data-theme='dark'] .archive .tag-cloud-tags a sup{color:#909092}.archive .tag-cloud-0{color:#b1b1ba !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-0:active,.archive .tag-cloud-0:focus,.archive .tag-cloud-0:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-0:active,[data-theme='dark'] .archive .tag-cloud-0:focus,[data-theme='dark'] .archive .tag-cloud-0:hover{color:#fff}.archive .tag-cloud-0:active sup,.archive .tag-cloud-0:focus sup,.archive .tag-cloud-0:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-0{color:#909092 !important}.archive .tag-cloud-0 sup{opacity:0}.archive .tag-cloud-1{color:#a2a1a8 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-1:active,.archive .tag-cloud-1:focus,.archive .tag-cloud-1:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-1:active,[data-theme='dark'] .archive .tag-cloud-1:focus,[data-theme='dark'] .archive .tag-cloud-1:hover{color:#fff}.archive .tag-cloud-1:active sup,.archive .tag-cloud-1:focus sup,.archive .tag-cloud-1:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-1{color:#939396 !important}.archive .tag-cloud-1 sup{opacity:0}.archive .tag-cloud-2{color:#929197 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-2:active,.archive .tag-cloud-2:focus,.archive .tag-cloud-2:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-2:active,[data-theme='dark'] .archive .tag-cloud-2:focus,[data-theme='dark'] .archive .tag-cloud-2:hover{color:#fff}.archive .tag-cloud-2:active sup,.archive .tag-cloud-2:focus sup,.archive .tag-cloud-2:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-2{color:#97979a !important}.archive .tag-cloud-2 sup{opacity:0}.archive .tag-cloud-3{color:#838185 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-3:active,.archive .tag-cloud-3:focus,.archive .tag-cloud-3:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-3:active,[data-theme='dark'] .archive .tag-cloud-3:focus,[data-theme='dark'] .archive .tag-cloud-3:hover{color:#fff}.archive .tag-cloud-3:active sup,.archive .tag-cloud-3:focus sup,.archive .tag-cloud-3:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-3{color:#9a9a9e !important}.archive .tag-cloud-3 sup{opacity:0}.archive .tag-cloud-4{color:#737173 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-4:active,.archive .tag-cloud-4:focus,.archive .tag-cloud-4:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-4:active,[data-theme='dark'] .archive .tag-cloud-4:focus,[data-theme='dark'] .archive .tag-cloud-4:hover{color:#fff}.archive .tag-cloud-4:active sup,.archive .tag-cloud-4:focus sup,.archive .tag-cloud-4:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-4{color:#9d9da2 !important}.archive .tag-cloud-4 sup{opacity:0}.archive .tag-cloud-5{color:#646262 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-5:active,.archive .tag-cloud-5:focus,.archive .tag-cloud-5:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-5:active,[data-theme='dark'] .archive .tag-cloud-5:focus,[data-theme='dark'] .archive .tag-cloud-5:hover{color:#fff}.archive .tag-cloud-5:active sup,.archive .tag-cloud-5:focus sup,.archive .tag-cloud-5:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-5{color:#a1a1a6 !important}.archive .tag-cloud-5 sup{opacity:0}.archive .tag-cloud-6{color:#545250 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-6:active,.archive .tag-cloud-6:focus,.archive .tag-cloud-6:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-6:active,[data-theme='dark'] .archive .tag-cloud-6:focus,[data-theme='dark'] .archive .tag-cloud-6:hover{color:#fff}.archive .tag-cloud-6:active sup,.archive .tag-cloud-6:focus sup,.archive .tag-cloud-6:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-6{color:#a4a4aa !important}.archive .tag-cloud-6 sup{opacity:0}.archive .tag-cloud-7{color:#45423e !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-7:active,.archive .tag-cloud-7:focus,.archive .tag-cloud-7:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-7:active,[data-theme='dark'] .archive .tag-cloud-7:focus,[data-theme='dark'] .archive .tag-cloud-7:hover{color:#fff}.archive .tag-cloud-7:active sup,.archive .tag-cloud-7:focus sup,.archive .tag-cloud-7:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-7{color:#a7a7ae !important}.archive .tag-cloud-7 sup{opacity:0}.archive .tag-cloud-8{color:#35322c !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-8:active,.archive .tag-cloud-8:focus,.archive .tag-cloud-8:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-8:active,[data-theme='dark'] .archive .tag-cloud-8:focus,[data-theme='dark'] .archive .tag-cloud-8:hover{color:#fff}.archive .tag-cloud-8:active sup,.archive .tag-cloud-8:focus sup,.archive .tag-cloud-8:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-8{color:#aaaab2 !important}.archive .tag-cloud-8 sup{opacity:0}.archive .tag-cloud-9{color:#26221b !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-9:active,.archive .tag-cloud-9:focus,.archive .tag-cloud-9:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-9:active,[data-theme='dark'] .archive .tag-cloud-9:focus,[data-theme='dark'] .archive .tag-cloud-9:hover{color:#fff}.archive .tag-cloud-9:active sup,.archive .tag-cloud-9:focus sup,.archive .tag-cloud-9:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-9{color:#aeaeb6 !important}.archive .tag-cloud-9 sup{opacity:0}.archive .tag-cloud-10{color:#161209 !important;font-size:var(--tag-font);margin:10px !important}.archive .tag-cloud-10:active,.archive .tag-cloud-10:focus,.archive .tag-cloud-10:hover{color:#2983bb !important}[data-theme='dark'] .archive .tag-cloud-10:active,[data-theme='dark'] .archive .tag-cloud-10:focus,[data-theme='dark'] .archive .tag-cloud-10:hover{color:#fff}.archive .tag-cloud-10:active sup,.archive .tag-cloud-10:focus sup,.archive .tag-cloud-10:hover sup{opacity:1}[data-theme='dark'] .archive .tag-cloud-10{color:#b1b1ba !important}.archive .tag-cloud-10 sup{opacity:0}.home .home-profile{text-align:center}.home .home-profile .home-avatar{padding:0.5rem}.home .home-profile .home-avatar img{display:inline-block;width:8rem;height:auto;margin:0 auto;-webkit-border-radius:100%;-moz-border-radius:100%;border-radius:100%;-webkit-box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);box-shadow:0 0 0 0.3618em rgba(0,0,0,0.05);-webkit-transition:all 0.4s ease;-moz-transition:all 0.4s ease;-o-transition:all 0.4s ease;transition:all 0.4s ease}[data-theme='dark'] .home .home-profile .home-avatar img{-webkit-box-shadow:0 0 0 0.3618em rgba(255,255,255,0.05);box-shadow:0 0 0 0.3618em rgba(255,255,255,0.05)}.home .home-profile .home-avatar img:hover{position:relative;-webkit-transform:translateY(-0.75rem);-ms-transform:translateY(-0.75rem);-o-transform:translateY(-0.75rem);transform:translateY(-0.75rem)}.home .home-profile .home-title{font-size:1.25rem;font-weight:bold;margin:0}.home .home-profile .home-title:not(:empty){padding:0.5rem}.home .home-profile .home-subtitle{font-size:1rem;font-weight:normal;margin:0;padding:0.5rem}.home .home-profile .links{padding:0.5rem;font-size:1.5rem}.home .home-profile .links a *{vertical-align:text-bottom}.home .home-profile .links img{height:1.5rem;padding:0 0.25rem}.home .home-profile .home-disclaimer{font-size:1rem;line-height:1.5rem;font-weight:normal;margin:0;padding:0.5rem;color:#b1b1ba}[data-theme='dark'] .home .home-profile .home-disclaimer{color:#909092}.home.posts .home-profile{padding:2rem 0}.home.posts .home-avatar img{width:6rem}.home.posts .summary{padding-top:1rem;padding-bottom:0.8rem;color:#161209;border-bottom:1px dashed #f0f0f0}.home.posts .summary:first-of-type{padding-top:0}[data-theme='dark'] .home.posts .summary{color:#b1b1ba;border-bottom:1px dashed #363636}.home.posts .summary .featured-image-preview{width:100%;padding:30% 0 0;position:relative;margin:0.6rem auto;-webkit-transition:transform 0.4s ease;-moz-transition:transform 0.4s ease;-o-transition:transform 0.4s ease;transition:transform 0.4s ease}.home.posts .summary .featured-image-preview img{position:absolute;width:100%;height:100%;left:0;top:0;-o-object-fit:cover;object-fit:cover;font-family:"object-fit: cover;"}.home.posts .summary .featured-image-preview:hover{-webkit-transform:scale(1.01);-ms-transform:scale(1.01);-o-transform:scale(1.01);transform:scale(1.01)}.home.posts .summary .single-title{font-size:1.25rem;line-height:140%;margin:0.4rem 0}.home.posts .summary .content{display:-moz-box;display:-webkit-box;display:box;-webkit-box-orient:vertical;-moz-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:3;margin-top:0.3rem;width:100%;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;overflow-wrap:break-word;color:#b1b1ba}[data-theme='dark'] .home.posts .summary .content{color:#909092}.home.posts .summary .content h2,.home.posts .summary .content h3,.home.posts .summary .content h4,.home.posts .summary .content h5,.home.posts .summary .content h6,.home.posts .summary .content p{font-size:1rem;line-height:1.5;display:inline}.home.posts .summary .content h2::after,.home.posts .summary .content h3::after,.home.posts .summary .content h4::after,.home.posts .summary .content h5::after,.home.posts .summary .content h6::after,.home.posts .summary .content p::after{content:'\A';white-space:pre}.home.posts .summary .content h2{font-size:1.125rem}.home.posts .summary .content a,.home.posts .summary .content a::before,.home.posts .summary .content a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .home.posts .summary .content a,[data-theme='dark'] .home.posts .summary .content a::before,[data-theme='dark'] .home.posts .summary .content a::after{color:#b1b1ba}.home.posts .summary .content a:active,.home.posts .summary .content a:hover{color:#ea517f}[data-theme='dark'] .home.posts .summary .content a:active,[data-theme='dark'] .home.posts .summary .content a:hover{color:#fff}.home.posts .summary .content b,.home.posts .summary .content strong{color:#b1b1ba}[data-theme='dark'] .home.posts .summary .content b,[data-theme='dark'] .home.posts .summary .content strong{color:#909092}.home.posts .summary .post-footer{margin-top:0.4rem;display:flex;justify-content:space-between;align-items:center;font-size:0.875rem}.home.posts .summary .post-footer a,.home.posts .summary .post-footer a::before,.home.posts .summary .post-footer a::after{text-decoration:none;color:#2376b7}[data-theme='dark'] .home.posts .summary .post-footer a,[data-theme='dark'] .home.posts .summary .post-footer a::before,[data-theme='dark'] .home.posts .summary .post-footer a::after{color:#1781b5}.home.posts .summary .post-footer a:active,.home.posts .summary .post-footer a:hover{color:#ea517f}[data-theme='dark'] .home.posts .summary .post-footer a:active,[data-theme='dark'] .home.posts .summary .post-footer a:hover{color:#cc5595}.home.posts .summary .post-footer .post-tags{padding:0}.home.posts .summary .post-footer .post-tags a,.home.posts .summary .post-footer .post-tags a::before,.home.posts .summary .post-footer .post-tags a::after{text-decoration:none;color:#161209}[data-theme='dark'] .home.posts .summary .post-footer .post-tags a,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a::before,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a::after{color:#b1b1ba}.home.posts .summary .post-footer .post-tags a:active,.home.posts .summary .post-footer .post-tags a:hover{color:#2983bb}[data-theme='dark'] .home.posts .summary .post-footer .post-tags a:active,[data-theme='dark'] .home.posts .summary .post-footer .post-tags a:hover{color:#fff}.home.posts .summary .post-footer .post-tags .post-tag:not(:last-child)::after{content:',';margin-right:0.25rem}#content-404{font-size:1.8rem;line-height:3rem;-webkit-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}#content-offline{-webkit-transform:translateY(30vh);-ms-transform:translateY(30vh);-o-transform:translateY(30vh);transform:translateY(30vh);text-align:center}#content-offline .offline-title{font-size:3.6rem}#content-offline .offline-subtitle{margin:0.4rem 0;font-size:1rem;font-weight:normal;font-style:italic;line-height:100%;color:#57606a}#content-offline .error-text{font-size:1.2rem}.friend-links{margin-top:1rem;display:flex;flex-direction:row;justify-content:space-between;flex-wrap:wrap}@media (max-width: 576px){.friend-links{justify-content:space-around}}.friend-link{width:150px;height:200px;font-size:1rem;text-align:center;background:rgba(255,255,255,0.3);box-sizing:border-box;box-shadow:3px 3px 5px #aaa;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;border:none;transition-duration:0.3s;margin-bottom:1rem;display:flex;flex-direction:column;justify-content:space-between}.friend-link:hover{background:#fff;-webkit-transform:scale(1.03);-ms-transform:scale(1.03);-o-transform:scale(1.03);transform:scale(1.03);box-shadow:0 0 3px #aaa}.friend-avatar{object-fit:cover;object-position:center;width:100% !important;height:150px !important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;margin:0;padding:0}.friend-nickname{display:block;position:relative;color:#2bbc8a;font-weight:bold;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:18px;margin-bottom:1rem}.friend-nickname:hover{color:#d480aa}@media only screen and (min-width: 1441px){.breadcrumb-container .breadcrumb,.page{width:60%}[data-page-style='wide'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='wide'] .breadcrumb,[data-page-style='wide'] .page{width:64%}[data-page-style='narrow'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='narrow'] .breadcrumb,[data-page-style='narrow'] .page{max-width:800px}}@media only screen and (max-width: 1440px){.breadcrumb-container .breadcrumb,.page{width:56%}[data-page-style='wide'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='wide'] .breadcrumb,[data-page-style='wide'] .page{width:60%}}@media only screen and (max-width: 1200px){.breadcrumb-container .breadcrumb,.page{width:52%}[data-page-style='wide'] .breadcrumb-container .breadcrumb,.breadcrumb-container [data-page-style='wide'] .breadcrumb,[data-page-style='wide'] .page{width:56%}#header-desktop .header-wrapper{padding-right:1rem}.search-dropdown.desktop{right:1rem}}@media only screen and (max-width: 960px){.breadcrumb-container .breadcrumb,.page{width:80% !important}aside{display:none !important}#toc-static{display:block}#header-desktop .header-wrapper{padding-left:1rem}}@media only screen and (min-width: 681px){body:not([data-header-desktop='sticky']) .breadcrumb-container.sticky{top:0}body:not([data-header-desktop='auto']) .breadcrumb-container.sticky+.container .content [id]{scroll-margin-top:calc(var(--fi-scroll-mt) + var(--fi-breadcrumb-height))}[data-header-desktop='normal'] .page .content [id]{--fi-scroll-mt: .5rem}}@media only screen and (max-width: 680px){#header-desktop{display:none}#header-mobile,.d-none-desktop{display:block}.d-none-mobile{display:none !important}body:not([data-header-mobile='sticky']) .breadcrumb-container.sticky{top:0}body:not([data-header-mobile='auto']) .breadcrumb-container.sticky+.container .content [id]{scroll-margin-top:calc(var(--fi-scroll-mt) + var(--fi-breadcrumb-height))}[data-header-mobile='normal'] .page .content [id]{--fi-scroll-mt: .5rem}.breadcrumb-container .breadcrumb,.page{width:100% !important}.page .categories-card .card-item,.page .collections-card .card-item{width:100%}footer .footer-container{font-size:0.618rem}.pagination .page-item{margin:0 5px}}@media only print{@page{size:A4 portrait;margin:1.27cm}.page{width:100% !important;padding-top:0 !important}.page.single .single-title,.page.single .single-subtitle,.page.single .post-meta{text-align:center}.page h1:not(.single-title),.page .page-break-before{page-break-before:always}.page .page-break-after{page-break-after:always}.print-d-none,.fixed-button,.github-corner,.reading-progress-bar,header,.breadcrumb-container,footer,#toc-auto,.collection-card,.aside-collection,.single .post-meta .comment-visitors,.single .post-meta .comment-count,.single .content .highlight>.chroma .code-header .ellipses,.single .content .highlight>.chroma .code-header .edit,.single .content .highlight>.chroma .code-header .copy,.single .post-reward,.single .post-footer .post-info .post-info-line .post-info-share,.single .post-footer .post-info-more section:last-child,.single .post-footer .post-nav,.single>#comments{display:none !important}}.home .home-profile .home-avatar img{border-radius:0;box-shadow:none} /*# sourceMappingURL=style.min.css.map */ \ No newline at end of file diff --git a/css/style.min.css.map b/css/style.min.css.map index dd9703ec9..f36ba4c3c 100644 --- a/css/style.min.css.map +++ b/css/style.min.css.map @@ -1,7 +1,7 @@ { "version": 3, "file": "style.min.css", - "sourceRoot": "/opt/mailcow-blog", + "sourceRoot": "/home/runner/work/mailcow-blog/mailcow-blog", "sources": [ "themes/FixIt/assets/css/style.scss", "themes/FixIt/assets/css/_variables.scss", @@ -9,16 +9,19 @@ "themes/FixIt/assets/css/_partials/_maps/_code-highlight.scss", "themes/FixIt/assets/css/_partials/_maps/_code-type.scss", "themes/FixIt/assets/css/_partials/_maps/_colors.scss", + "themes/FixIt/assets/css/_partials/_maps/_utilities.scss", "themes/FixIt/assets/css/_override.scss", "themes/FixIt/assets/css/_mixin/_index.scss", "themes/FixIt/assets/css/_mixin/_compatibility.scss", "themes/FixIt/assets/css/_mixin/_link.scss", "themes/FixIt/assets/css/_mixin/_blur.scss", "themes/FixIt/assets/css/_mixin/_details.scss", + "themes/FixIt/assets/css/_mixin/_z-index.scss", "themes/FixIt/assets/css/_core/_root.scss", "themes/FixIt/assets/css/_core/_base.scss", "themes/FixIt/assets/lib/normalize/normalize.css", "themes/FixIt/assets/css/_partials/_mask.scss", + "themes/FixIt/assets/css/_partials/_img.scss", "themes/FixIt/assets/css/_partials/_icon.scss", "themes/FixIt/assets/css/_partials/_details.scss", "themes/FixIt/assets/css/_partials/_widgets.scss", @@ -29,11 +32,17 @@ "themes/FixIt/assets/css/_partials/_widgets/_reading-progress.scss", "themes/FixIt/assets/css/_partials/_widgets/_typeit.scss", "themes/FixIt/assets/css/_core/_layout.scss", + "themes/FixIt/assets/css/_core/_header.scss", + "themes/FixIt/assets/css/_core/_breadcrumb.scss", + "themes/FixIt/assets/css/_core/_footer.scss", + "themes/FixIt/assets/css/_core/_pagination.scss", "themes/FixIt/assets/css/_core/_common.scss", + "themes/FixIt/assets/css/_core/_patch.scss", "themes/FixIt/assets/css/_page/_index.scss", "themes/FixIt/assets/css/_page/_single.scss", "themes/FixIt/assets/css/_partials/_single/_toc.scss", "themes/FixIt/assets/css/_partials/_single/_fixit-decryptor.scss", + "themes/FixIt/assets/css/_partials/_single/_collections.scss", "themes/FixIt/assets/css/_partials/_single/_code.scss", "themes/FixIt/assets/css/_partials/_single/_github-dark-dimmed.scss", "themes/FixIt/assets/css/_shortcodes/_index.scss", @@ -44,6 +53,8 @@ "themes/FixIt/assets/css/_shortcodes/_echarts.scss", "themes/FixIt/assets/css/_shortcodes/_instagram.scss", "themes/FixIt/assets/css/_shortcodes/_mapbox.scss", + "themes/FixIt/assets/css/_shortcodes/_mermaid.scss", + "themes/FixIt/assets/css/_partials/_single/_reward.scss", "themes/FixIt/assets/css/_partials/_single/_footer.scss", "themes/FixIt/assets/css/_partials/_single/_comment.scss", "themes/FixIt/assets/css/_page/_special.scss", @@ -54,70 +65,75 @@ "themes/FixIt/assets/css/_page/_404.scss", "themes/FixIt/assets/css/_page/_offline.scss", "themes/FixIt/assets/css/_page/_friends.scss", - "themes/FixIt/assets/css/_partials/_header.scss", - "themes/FixIt/assets/css/_partials/_footer.scss", - "themes/FixIt/assets/css/_partials/_pagination.scss", "themes/FixIt/assets/css/_core/_media.scss", "themes/FixIt/assets/css/_custom.scss" ], "sourcesContent": [ - "@charset \"utf-8\";\n\n@import \"_variables\";\n@import \"_override\";\n@import \"_mixin/index\";\n@import \"_core/root\";\n@import \"_core/base\";\n@import \"_core/layout\";\n@import \"_core/common\";\n@import \"_page\";\n@import \"_partials/header\";\n@import \"_partials/footer\";\n@import \"_partials/pagination\";\n@import \"_core/media\";\n@import \"_custom\";\n", - "// ==============================\n// Variables\n// ==============================\n\n// ========== Global ========== //\n// Prefix for :root CSS variables.\n$prefix: fi- !default;\n\n// Font and Line Height\n$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;\n$global-font-size: 16px;\n$global-font-weight: 400;\n$global-line-height: 1.5rem;\n\n// Radius of the border\n$global-border-radius: 5px !default;\n\n// Color of the background\n$global-background-color: #ffffff !default;\n$global-background-color-dark: #292a2e !default;\n\n// Color of the text\n$global-font-color: #161209 !default;\n$global-font-color-dark: #b1b1ba !default;\n\n// Color of the secondary text\n$global-font-secondary-color: #b1b1ba !default;\n$global-font-secondary-color-dark: #909092 !default;\n\n// Color of the link\n$global-link-color: #161209 !default;\n$global-link-color-dark: #b1b1ba !default;\n\n// Color of the hover link\n$global-link-hover-color: #2983bb !default; // ๆฝฎ่“\n$global-link-hover-color-dark: #fff !default;\n\n// Color of the border\n$global-border-color: #f0f0f0 !default;\n$global-border-color-dark: #363636 !default;\n// ========== Global ========== //\n\n// ========== Scrollbar ========== //\n// Color of the scrollbar\n$scrollbar-color: #87878d !default;\n\n// Color of the hover scrollbar\n$scrollbar-hover-color: #b1b1ba !default;\n// ========== Scrollbar ========== //\n\n// ========== Selection ========== //\n// Color of the selected text\n$selection-color: rgba(53, 166, 247, 0.25) !default;\n$selection-color-dark: rgba(50, 112, 194, 0.4) !default;\n// ========== Selection ========== //\n\n// ========== Header ========== //\n// Height of the header\n$header-height: 3.5rem !default;\n\n// Color of the header background\n$header-background-color: #f8f8f8 !default;\n$header-background-color-dark: #252627 !default;\n\n// Font style of the header title\n$header-title-font-family: $global-font-family !default;\n$header-title-font-size: 1.5rem !default;\n\n// Color of the active menu item\n$menu-active-color: #161209 !default;\n$menu-active-color-dark: #fff !default;\n\n// Color of the search background\n$search-background-color: #e9e9e9 !default;\n$search-background-color-dark: #363636 !default;\n// ========== Header ========== //\n\n// ========== Single Content ========== //\n// Font size of the TOC\n$toc-title-font-size: 1.2rem !default;\n$toc-content-font-size: 1rem !default;\n\n// Color of the single link\n$single-link-color: #2376b7 !default; // ่Šฑ้’\n$single-link-color-dark: #1781b5 !default; // ้‡‰่“\n\n// Color of the hover single link\n$single-link-hover-color: #ea517f !default; // ่Žฒ็“ฃ็บข\n$single-link-hover-color-dark: #619ac3 !default; // ็พฝๆ‰‡่ฑ†่“\n\n// Color of the table background\n$table-background-color: #fff !default;\n$table-background-color-dark: #272c34 !default;\n\n// Color of the table thead\n$table-thead-color: #ededed !default;\n$table-thead-color-dark: #20252b !default;\n\n// Color of the blockquote\n$blockquote-color: #697681 !default;\n$blockquote-color-dark: #9ba3aa !default;\n// ========== Single Content ========== //\n\n// ========== Pagination ========== //\n// Color of the link in pagination\n$pagination-link-color: #bfbfbf !default;\n$pagination-link-color-dark: #b1b1ba !default;\n\n// Color of the hover link in pagination\n$pagination-link-hover-color: #000 !default;\n$pagination-link-hover-color-dark: #fff !default;\n// ========== Pagination ========== //\n\n// ========== Code ========== //\n// Color of the code\n$code-color: #24292f !default;\n$code-color-dark: #adbac7 !default;\n\n// Color of the code background\n$code-background-color: #f6f8fa !default;\n$code-background-color-dark: #2d333b !default;\n\n$code-error-color: #dc3545 !default;\n\n// Color of the hightlight code\n$code-hightlight-color: #fff8c5 !default;\n$code-hightlight-color-dark: rgba(174, 124, 20, 0.15) !default;\n\n$code-info-color: #9c9c9c !default;\n$code-info-color-dark: #b1b0b0 !default;\n\n// Font size of the code\n$code-font-size: 0.875rem !default;\n\n// Font family of the code\n$code-font-family: Source Code Pro, Menlo, Consolas, Monaco, monospace, $global-font-family !default;\n// ========== Code ========== //\n\n// ========== GitHub Corners ========== //\n// Color of the GitHub Corners\n$github-corner-color: white !default;\n$github-corner-color-dark: black !default;\n\n// Color of the GitHub Corners background\n$github-corner-fill: $header-background-color-dark !default;\n$github-corner-fill-dark: $header-background-color !default;\n// ========== GitHub Corners ========== //\n\n@import '_partials/_maps/admonition';\n@import '_partials/_maps/code-highlight';\n@import '_partials/_maps/code-type';\n@import '_partials/_maps/colors';\n", - "// Color map of the admonition\n$admonition-color-map: (\n 'note': #448aff,\n 'abstract': #00b0ff,\n 'info': #00b8d4,\n 'tip': #00bfa5,\n 'success': #00c853,\n 'question': #64dd17,\n 'warning': #ff9100,\n 'failure': #ff5252,\n 'danger': #ff1744,\n 'bug': #f50057,\n 'example': #651fff,\n 'quote': #9e9e9e\n) !default;\n\n// Color map of the admonition background\n$admonition-background-color-map: (\n 'note': rgba(68, 138, 255, 0.1),\n 'abstract': rgba(0, 176, 255, 0.1),\n 'info': rgba(0, 184, 212, 0.1),\n 'tip': rgba(0, 191, 165, 0.1),\n 'success': rgba(0, 200, 83, 0.1),\n 'question': rgba(100, 221, 23, 0.1),\n 'warning': rgba(255, 145, 0, 0.1),\n 'failure': rgba(255, 82, 82, 0.1),\n 'danger': rgba(255, 23, 68, 0.1),\n 'bug': rgba(245, 0, 87, 0.1),\n 'example': rgba(101, 31, 255, 0.1),\n 'quote': rgba(159, 159, 159, 0.1)\n) !default;\n", + "@charset \"utf-8\";\n\n@import \"_variables\";\n@import \"_override\";\n@import \"_mixin/index\";\n@import \"_core/root\";\n@import \"_core/base\";\n@import \"_core/layout\";\n@import \"_core/common\";\n@import \"_core/patch\";\n@import \"_page\";\n@import \"_core/media\";\n@import \"_custom\";\n", + "// ==============================\n// Variables\n// ==============================\n\n// ========== Global ========== //\n// Prefix for :root CSS variables.\n$prefix: fi- !default;\n\n// Font and Line Height\n$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;\n$global-font-size: 16px !default;\n$global-font-weight: 400 !default;\n$global-line-height: 1.5rem !default;\n\n// scroll-margin-top of content anchor\n$global-scroll-margin-top: 0.5rem;\n\n// Radius of the border\n$global-border-radius: 5px !default;\n\n// Color of the background\n$global-background-color: #ffffff !default;\n$global-background-color-dark: #292a2e !default;\n\n// Color of the text\n$global-font-color: #161209 !default;\n$global-font-color-dark: #b1b1ba !default;\n\n// Color of the secondary text\n$global-font-secondary-color: #b1b1ba !default;\n$global-font-secondary-color-dark: #909092 !default;\n\n// Color of the link\n$global-link-color: #161209 !default;\n$global-link-color-dark: #b1b1ba !default;\n\n// Color of the hover link\n$global-link-hover-color: #2983bb !default; // ๆฝฎ่“\n$global-link-hover-color-dark: #fff !default;\n\n// Color of the border\n$global-border-color: #f0f0f0 !default;\n$global-border-color-dark: #363636 !default;\n// ========== Global ========== //\n\n// ========== Scrollbar ========== //\n// Color of the scrollbar\n$scrollbar-color: #87878d !default;\n\n// Color of the hover scrollbar\n$scrollbar-hover-color: #b1b1ba !default;\n// ========== Scrollbar ========== //\n\n// ========== Selection ========== //\n// Color of the selected text\n$selection-color: rgba(53, 166, 247, 0.25) !default;\n$selection-color-dark: rgba(50, 112, 194, 0.4) !default;\n// ========== Selection ========== //\n\n// ========== Header ========== //\n// Height of the header\n$header-height: 3.5rem !default;\n\n// Color of the header background\n$header-background-color: #f8f8f8 !default;\n$header-background-color-dark: #252627 !default;\n\n// Font style of the header title\n$header-title-font-family: $global-font-family !default;\n$header-title-font-size: 1.5rem !default;\n\n// Color of the active menu item\n$menu-active-color: #161209 !default;\n$menu-active-color-dark: #fff !default;\n\n// Color of the search background\n$search-background-color: #e9e9e9 !default;\n$search-background-color-dark: #363636 !default;\n// ========== Header ========== //\n\n// ========== Tag Cloud ========== //\n// Color range of tag cloud\n$tag-cloud-start: $global-font-secondary-color!default;\n$tag-cloud-end: $global-font-color!default;\n$tag-cloud-start-dark: $global-font-secondary-color-dark!default;\n$tag-cloud-end-dark: $global-font-color-dark!default;\n// ========== Tag Cloud ========== //\n\n// ========== Single Content ========== //\n// Font size of the TOC\n$toc-title-font-size: 1.2rem !default;\n$toc-content-font-size: 1rem !default;\n\n// Color of the single link\n$single-link-color: #2376b7 !default; // ่Šฑ้’\n$single-link-color-dark: #1781b5 !default; // ้‡‰่“\n\n// Color of the hover single link\n$single-link-hover-color: #ea517f !default; // ่Žฒ็“ฃ็บข\n$single-link-hover-color-dark: #cc5595 !default; // ้พ™้กป็บข\n\n// Color of the table background\n$table-background-color: #fff !default;\n$table-background-color-dark: #272c34 !default;\n\n// Color of the table thead\n$table-thead-color: #ededed !default;\n$table-thead-color-dark: #20252b !default;\n\n// Color of the blockquote\n$blockquote-color: #697681 !default;\n$blockquote-color-dark: #9ba3aa !default;\n\n// Color of reward\n$reward-color: tomato !default;\n$reward-color-dark: darken($reward-color, 5%) !default;\n\n// Width of reward image\n$reward-img-width: 180px !default;\n// ========== Single Content ========== //\n\n// ========== Pagination ========== //\n// Color of the link in pagination\n$pagination-link-color: #bfbfbf !default;\n$pagination-link-color-dark: #b1b1ba !default;\n\n// Color of the hover link in pagination\n$pagination-link-hover-color: #000 !default;\n$pagination-link-hover-color-dark: #fff !default;\n// ========== Pagination ========== //\n\n// ========== Code ========== //\n// Color of the code\n$code-color: #24292f !default;\n$code-color-dark: #adbac7 !default;\n\n// Color of the code background\n$code-background-color: #f6f8fa !default;\n$code-background-color-dark: #2d333b !default;\n\n$code-error-color: #dc3545 !default;\n\n// Color of the hightlight code\n$code-hightlight-color: #fff8c5 !default;\n$code-hightlight-color-dark: rgba(174, 124, 20, 0.15) !default;\n\n$code-info-color: #9c9c9c !default;\n$code-info-color-dark: #b1b0b0 !default;\n\n// Font size of the code\n$code-font-size: 0.875rem !default;\n\n// Font family of the code\n$code-font-family: Source Code Pro, Menlo, Consolas, Monaco, monospace, $global-font-family !default;\n// ========== Code ========== //\n\n// ========== GitHub Corners ========== //\n// Color of the GitHub Corners\n$github-corner-color: white !default;\n$github-corner-color-dark: black !default;\n\n// Color of the GitHub Corners background\n$github-corner-fill: $header-background-color-dark !default;\n$github-corner-fill-dark: $header-background-color !default;\n// ========== GitHub Corners ========== //\n\n@import '_partials/_maps/admonition';\n@import '_partials/_maps/code-highlight';\n@import '_partials/_maps/code-type';\n@import '_partials/_maps/colors';\n@import '_partials/_maps/utilities';\n", + "// Color map of admonition [$type $color $background-color, ... ]\n$admonition-color-map:\n 'note' #448aff rgba(68, 138, 255, 0.1),\n 'abstract' #00b0ff rgba(0, 176, 255, 0.1),\n 'info' #00b8d4 rgba(0, 184, 212, 0.1),\n 'tip' #00bfa5 rgba(0, 191, 165, 0.1),\n 'success' #00c853 rgba(0, 200, 83, 0.1),\n 'question' #64dd17 rgba(100, 221, 23, 0.1),\n 'warning' #ff9100 rgba(255, 145, 0, 0.1),\n 'failure' #ff5252 rgba(255, 82, 82, 0.1),\n 'danger' #ff1744 rgba(255, 23, 68, 0.1),\n 'bug' #f50057 rgba(245, 0, 87, 0.1),\n 'example' #651fff rgba(101, 31, 255, 0.1),\n 'quote' #9e9e9e rgba(159, 159, 159, 0.1)\n !default;\n", "// Color map of the code highlight\n$code-highlight-color-map: (\n /* Error */ 'err': $code-error-color,\n /* Keyword */ 'k': #cf222e,\n /* KeywordConstant */ 'kc': #0550ae,\n /* KeywordDeclaration */ 'kd': #cf222e,\n /* KeywordNamespace */ 'kn': #cf222e,\n /* KeywordPseudo */ 'kp': #cf222e,\n /* KeywordReserved */ 'kr': #cf222e,\n /* KeywordType */ 'kt': #cf222e,\n /* Name */ 'n': $code-color,\n /* NameAttribute */ 'na': #0550ae,\n /* NameBuiltin */ 'nb': #0550ae,\n /* NameBuiltinPseudo */ 'bp': $code-color,\n /* NameClass */ 'nc': #8250df,\n /* NameConstant */ 'no': #cf222e,\n /* NameDecorator */ 'nd': #8250df,\n /* NameEntity */ 'ni': #0550ae,\n /* NameException */ 'ne': #0550ae,\n /* NameFunction */ 'nf': #0550ae,\n /* NameFunctionMagic */ 'fm': #0550ae,\n /* NameLabel */ 'nl': #0550ae,\n /* NameNamespace */ 'nn': #8250df,\n /* NameOther */ 'nx': #0550ae,\n /* NameProperty */ 'py': #0550ae,\n /* NameTag */ 'nt': #116329,\n /* NameVariable */ 'nv': #953800,\n /* NameVariableClass */ 'vc': #0550ae,\n /* NameVariableGlobal */ 'vg': #0550ae,\n /* NameVariableInstance */ 'vi': #0550ae,\n /* NameVariableMagic */ 'vm': #0550ae,\n /* Literal */ 'l': #0550ae,\n /* LiteralDate */ 'ld': #0a3069,\n /* LiteralString */ 's': #0a3069,\n /* LiteralStringAffix */ 'sa': #0a3069,\n /* LiteralStringBacktick */ 'sb': #0a3069,\n /* LiteralStringChar */ 'sc': #0a3069,\n /* LiteralStringDelimiter */ 'dl': #0a3069,\n /* LiteralStringDoc */ 'sd': #0a3069,\n /* LiteralStringDouble */ 's2': #0a3069,\n /* LiteralStringEscape */ 'se': #0a3069,\n /* LiteralStringHeredoc */ 'sh': #0a3069,\n /* LiteralStringInterpol */ 'si': #0a3069,\n /* LiteralStringOther */ 'sx': #0a3069,\n /* LiteralStringRegex */ 'sr': #0a3069,\n /* LiteralStringSingle */ 's1': #0a3069,\n /* LiteralStringSymbol */ 'ss': #0a3069,\n /* LiteralNumber */ 'm': #0550ae,\n /* LiteralNumberBin */ 'mb': #0550ae,\n /* LiteralNumberFloat */ 'mf': #0550ae,\n /* LiteralNumberHex */ 'mh': #0550ae,\n /* LiteralNumberInteger */ 'mi': #0550ae,\n /* LiteralNumberIntegerLong */ 'il': #0550ae,\n /* LiteralNumberOct */ 'mo': #0550ae,\n /* Operator */ 'o': #cf222e,\n /* OperatorWord */ 'ow': #cf222e,\n /* Punctuation */ 'p': $code-color,\n /* Comment */ 'c': #6e7781,\n /* CommentHashbang */ 'ch': #6e7781,\n /* CommentMultiline */ 'cm': #6e7781,\n /* CommentSingle */ 'c1': #6e7781,\n /* CommentSpecial */ 'cs': #6e7781,\n /* CommentPreproc */ 'cp': #0550ae,\n /* CommentPreprocFile */ 'cpf': #6e7781,\n /* Generic */ 'g': $code-color,\n /* GenericDeleted */ 'gd': #82071e,\n /* GenericEmph */ 'ge': $code-color,\n /* GenericError */ 'gr': $code-error-color,\n /* GenericHeading */ 'gh': $code-color,\n /* GenericInserted */ 'gi': #116329,\n /* GenericOutput */ 'go': $code-color,\n /* GenericPrompt */ 'gp': $code-color,\n /* GenericStrong */ 'gs': $code-color,\n /* GenericSubheading */ 'gu': $code-color,\n /* GenericTraceback */ 'gt': $code-error-color,\n /* GenericUnderline */ 'gl': $code-color,\n /* TextWhitespace */ 'w': $code-color,\n /* Other */ 'x': $code-color\n) !default;\n$code-highlight-color-map-dark: (\n /* Error */ 'err': $code-error-color,\n /* Keyword */ 'k': #f47067,\n /* KeywordConstant */ 'kc': #6cb6ff,\n /* KeywordDeclaration */ 'kd': #f47067,\n /* KeywordNamespace */ 'kn': #f47067,\n /* KeywordPseudo */ 'kp': #f47067,\n /* KeywordReserved */ 'kr': #f47067,\n /* KeywordType */ 'kt': #f47067,\n /* Name */ 'n': $code-color-dark,\n /* NameAttribute */ 'na': #6cb6ff,\n /* NameBuiltin */ 'nb': #dcbdfb,\n /* NameBuiltinPseudo */ 'bp': $code-color-dark,\n /* NameClass */ 'nc': #dcbdfb,\n /* NameConstant */ 'no': #6cb6ff,\n /* NameDecorator */ 'nd': #dcbdfb,\n /* NameEntity */ 'ni': #6cb6ff,\n /* NameException */ 'ne': #6cb6ff,\n /* NameFunction */ 'nf': #dcbdfb,\n /* NameFunctionMagic */ 'fm': #6cb6ff,\n /* NameLabel */ 'nl': #6cb6ff,\n /* NameNamespace */ 'nn': #f47067,\n /* NameOther */ 'nx': #dcbdfb,\n /* NameProperty */ 'py': #6cb6ff,\n /* NameTag */ 'nt': #8ddb8c,\n /* NameVariable */ 'nv': #f69d50,\n /* NameVariableClass */ 'vc': #6cb6ff,\n /* NameVariableGlobal */ 'vg': #6cb6ff,\n /* NameVariableInstance */ 'vi': #6cb6ff,\n /* NameVariableMagic */ 'vm': #6cb6ff,\n /* Literal */ 'l': #6cb6ff,\n /* LiteralDate */ 'ld': #96d0ff,\n /* LiteralString */ 's': #96d0ff,\n /* LiteralStringAffix */ 'sa': #96d0ff,\n /* LiteralStringBacktick */ 'sb': #96d0ff,\n /* LiteralStringChar */ 'sc': #96d0ff,\n /* LiteralStringDelimiter */ 'dl': #96d0ff,\n /* LiteralStringDoc */ 'sd': #96d0ff,\n /* LiteralStringDouble */ 's2': #96d0ff,\n /* LiteralStringEscape */ 'se': #96d0ff,\n /* LiteralStringHeredoc */ 'sh': #96d0ff,\n /* LiteralStringInterpol */ 'si': #96d0ff,\n /* LiteralStringOther */ 'sx': #96d0ff,\n /* LiteralStringRegex */ 'sr': #96d0ff,\n /* LiteralStringSingle */ 's1': #96d0ff,\n /* LiteralStringSymbol */ 'ss': #96d0ff,\n /* LiteralNumber */ 'm': #6cb6ff,\n /* LiteralNumberBin */ 'mb': #6cb6ff,\n /* LiteralNumberFloat */ 'mf': #6cb6ff,\n /* LiteralNumberHex */ 'mh': #6cb6ff,\n /* LiteralNumberInteger */ 'mi': #6cb6ff,\n /* LiteralNumberIntegerLong */ 'il': #6cb6ff,\n /* LiteralNumberOct */ 'mo': #6cb6ff,\n /* Operator */ 'o': #f47067,\n /* OperatorWord */ 'ow': #f47067,\n /* Punctuation */ 'p': $code-color-dark,\n /* Comment */ 'c': #768390,\n /* CommentHashbang */ 'ch': #768390,\n /* CommentMultiline */ 'cm': #768390,\n /* CommentSingle */ 'c1': #768390,\n /* CommentSpecial */ 'cs': #768390,\n /* CommentPreproc */ 'cp': #6cb6ff,\n /* CommentPreprocFile */ 'cpf': #768390,\n /* Generic */ 'g': $code-color-dark,\n /* GenericDeleted */ 'gd': #ffd8d3,\n /* GenericEmph */ 'ge': $code-color-dark,\n /* GenericError */ 'gr': $code-error-color,\n /* GenericHeading */ 'gh': $code-color-dark,\n /* GenericInserted */ 'gi': #b4f1b4,\n /* GenericOutput */ 'go': $code-color-dark,\n /* GenericPrompt */ 'gp': $code-color-dark,\n /* GenericStrong */ 'gs': $code-color-dark,\n /* GenericSubheading */ 'gu': $code-color-dark,\n /* GenericTraceback */ 'gt': $code-error-color,\n /* GenericUnderline */ 'gl': $code-color-dark,\n /* TextWhitespace */ 'w': $code-color-dark,\n /* Other */ 'x': $code-color-dark\n) !default;", - "// Code type map\n$code-type-map: (\n // Chroma supported languages\n // @generator https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js\n \"abap\": \"ABAP\",\n \"abnf\": \"ABNF\",\n \"as\": \"ActionScript\",\n \"actionscript\": \"ActionScript\",\n \"as3\": \"ActionScript 3\",\n \"actionscript3\": \"ActionScript 3\",\n \"ada\": \"Ada\",\n \"ada95\": \"Ada\",\n \"ada2005\": \"Ada\",\n \"al\": \"AL\",\n \"ng2\": \"Angular2\",\n \"antlr\": \"ANTLR\",\n \"apacheconf\": \"ApacheConf\",\n \"aconf\": \"ApacheConf\",\n \"apache\": \"ApacheConf\",\n \"apl\": \"APL\",\n \"applescript\": \"AppleScript\",\n \"arduino\": \"Arduino\",\n \"armasm\": \"ArmAsm\",\n \"awk\": \"Awk\",\n \"gawk\": \"Awk\",\n \"mawk\": \"Awk\",\n \"nawk\": \"Awk\",\n \"ballerina\": \"Ballerina\",\n \"make\": \"Base Makefile\",\n \"makefile\": \"Base Makefile\",\n \"mf\": \"Base Makefile\",\n \"bsdmake\": \"Base Makefile\",\n \"bash\": \"Bash\",\n \"sh\": \"Bash\",\n \"ksh\": \"Bash\",\n \"zsh\": \"Bash\",\n \"shell\": \"Bash\",\n \"bash-session\": \"BashSession\",\n \"console\": \"BashSession\",\n \"shell-session\": \"BashSession\",\n \"bat\": \"Batchfile\",\n \"batch\": \"Batchfile\",\n \"dosbatch\": \"Batchfile\",\n \"winbatch\": \"Batchfile\",\n \"bib\": \"BibTeX\",\n \"bibtex\": \"BibTeX\",\n \"bicep\": \"Bicep\",\n \"blitzbasic\": \"BlitzBasic\",\n \"b3d\": \"BlitzBasic\",\n \"bplus\": \"BlitzBasic\",\n \"bnf\": \"BNF\",\n \"brainfuck\": \"Brainfuck\",\n \"bf\": \"Brainfuck\",\n \"c\": \"C\",\n \"csharp\": \"C#\",\n \"c\\\\#\": \"C#\",\n \"cpp\": \"C++\",\n \"c\\\\+\\\\+\": \"C++\",\n \"caddyfile\": \"Caddyfile\",\n \"caddy\": \"Caddyfile\",\n \"caddyfile-directives\": \"Caddyfile Directives\",\n \"caddyfile-d\": \"Caddyfile Directives\",\n \"caddy-d\": \"Caddyfile Directives\",\n \"capnp\": \"Cap'n Proto\",\n \"cassandra\": \"Cassandra CQL\",\n \"cql\": \"Cassandra CQL\",\n \"ceylon\": \"Ceylon\",\n \"cfengine3\": \"CFEngine3\",\n \"cf3\": \"CFEngine3\",\n \"cfs\": \"cfstatement\",\n \"chai\": \"ChaiScript\",\n \"chaiscript\": \"ChaiScript\",\n \"cheetah\": \"Cheetah\",\n \"spitfire\": \"Cheetah\",\n \"clojure\": \"Clojure\",\n \"clj\": \"Clojure\",\n \"cmake\": \"CMake\",\n \"cobol\": \"COBOL\",\n \"coffee-script\": \"CoffeeScript\",\n \"coffeescript\": \"CoffeeScript\",\n \"coffee\": \"CoffeeScript\",\n \"common-lisp\": \"Common Lisp\",\n \"cl\": \"Common Lisp\",\n \"lisp\": \"Common Lisp\",\n \"coq\": \"Coq\",\n \"cr\": \"Crystal\",\n \"crystal\": \"Crystal\",\n \"css\": \"CSS\",\n \"cython\": \"Cython\",\n \"pyx\": \"Cython\",\n \"pyrex\": \"Cython\",\n \"d\": \"D\",\n \"dart\": \"Dart\",\n \"diff\": \"Diff\",\n \"udiff\": \"Diff\",\n \"django\": \"Django/Jinja\",\n \"jinja\": \"Django/Jinja\",\n \"docker\": \"Docker\",\n \"dockerfile\": \"Docker\",\n \"dtd\": \"DTD\",\n \"dylan\": \"Dylan\",\n \"ebnf\": \"EBNF\",\n \"elixir\": \"Elixir\",\n \"ex\": \"Elixir\",\n \"exs\": \"Elixir\",\n \"elm\": \"Elm\",\n \"emacs\": \"EmacsLisp\",\n \"elisp\": \"EmacsLisp\",\n \"emacs-lisp\": \"EmacsLisp\",\n \"erlang\": \"Erlang\",\n \"factor\": \"Factor\",\n \"fennel\": \"Fennel\",\n \"fnl\": \"Fennel\",\n \"fish\": \"Fish\",\n \"fishshell\": \"Fish\",\n \"forth\": \"Forth\",\n \"fortran\": \"Fortran\",\n \"fortranfixed\": \"FortranFixed\",\n \"fsharp\": \"FSharp\",\n \"gas\": \"GAS\",\n \"asm\": \"GAS\",\n \"gdscript\": \"GDScript\",\n \"gd\": \"GDScript\",\n \"genshi\": \"Genshi\",\n \"kid\": \"Genshi\",\n \"xml\\\\+genshi\": \"Genshi\",\n \"xml\\\\+kid\": \"Genshi\",\n \"html\\\\+genshi\": \"Genshi HTML\",\n \"html\\\\+kid\": \"Genshi HTML\",\n \"genshitext\": \"Genshi Text\",\n \"cucumber\": \"Gherkin\",\n \"Cucumber\": \"Gherkin\",\n \"gherkin\": \"Gherkin\",\n \"Gherkin\": \"Gherkin\",\n \"glsl\": \"GLSL\",\n \"gnuplot\": \"Gnuplot\",\n \"go\": \"Go\",\n \"golang\": \"Go\",\n \"go-html-template\": \"Go HTML Template\",\n \"go-text-template\": \"Go Text Template\",\n \"graphql\": \"GraphQL\",\n \"graphqls\": \"GraphQL\",\n \"gql\": \"GraphQL\",\n \"groff\": \"Groff\",\n \"nroff\": \"Groff\",\n \"man\": \"Groff\",\n \"groovy\": \"Groovy\",\n \"handlebars\": \"Handlebars\",\n \"hbs\": \"Handlebars\",\n \"haskell\": \"Haskell\",\n \"hs\": \"Haskell\",\n \"hx\": \"Haxe\",\n \"haxe\": \"Haxe\",\n \"hxsl\": \"Haxe\",\n \"hcl\": \"HCL\",\n \"hexdump\": \"Hexdump\",\n \"hlb\": \"HLB\",\n \"html\": \"HTML\",\n \"http\": \"HTTP\",\n \"hylang\": \"Hy\",\n \"idris\": \"Idris\",\n \"idr\": \"Idris\",\n \"igor\": \"Igor\",\n \"igorpro\": \"Igor\",\n \"ini\": \"INI\",\n \"cfg\": \"INI\",\n \"dosini\": \"INI\",\n \"io\": \"Io\",\n \"j\": \"J\",\n \"java\": \"Java\",\n \"js\": \"JavaScript\",\n \"javascript\": \"JavaScript\",\n \"json\": \"JSON\",\n \"julia\": \"Julia\",\n \"jl\": \"Julia\",\n \"jungle\": \"Jungle\",\n \"kotlin\": \"Kotlin\",\n \"lighty\": \"Lighttpd configuration file\",\n \"lighttpd\": \"Lighttpd configuration file\",\n \"llvm\": \"LLVM\",\n \"lua\": \"Lua\",\n \"mako\": \"Mako\",\n \"md\": \"markdown\",\n \"mkd\": \"markdown\",\n \"mason\": \"Mason\",\n \"mathematica\": \"Mathematica\",\n \"mma\": \"Mathematica\",\n \"nb\": \"Mathematica\",\n \"matlab\": \"Matlab\",\n \"mcfunction\": \"mcfunction\",\n \"meson\": \"Meson\",\n \"meson\\\\.build\": \"Meson\",\n \"metal\": \"Metal\",\n \"minizinc\": \"MiniZinc\",\n \"MZN\": \"MiniZinc\",\n \"mzn\": \"MiniZinc\",\n \"mlir\": \"MLIR\",\n \"modula2\": \"Modula-2\",\n \"m2\": \"Modula-2\",\n \"monkeyc\": \"MonkeyC\",\n \"morrowind\": \"MorrowindScript\",\n \"mwscript\": \"MorrowindScript\",\n \"myghty\": \"Myghty\",\n \"mysql\": \"MySQL\",\n \"mariadb\": \"MySQL\",\n \"nasm\": \"NASM\",\n \"newspeak\": \"Newspeak\",\n \"nginx\": \"Nginx configuration file\",\n \"nim\": \"Nim\",\n \"nimrod\": \"Nim\",\n \"nixos\": \"Nix\",\n \"nix\": \"Nix\",\n \"objective-c\": \"Objective-C\",\n \"objectivec\": \"Objective-C\",\n \"obj-c\": \"Objective-C\",\n \"objc\": \"Objective-C\",\n \"ocaml\": \"OCaml\",\n \"octave\": \"Octave\",\n \"ones\": \"OnesEnterprise\",\n \"onesenterprise\": \"OnesEnterprise\",\n \"1S\": \"OnesEnterprise\",\n \"1S:Enterprise\": \"OnesEnterprise\",\n \"openedge\": \"OpenEdge ABL\",\n \"abl\": \"OpenEdge ABL\",\n \"progress\": \"OpenEdge ABL\",\n \"openedgeabl\": \"OpenEdge ABL\",\n \"openscad\": \"OpenSCAD\",\n \"org\": \"Org Mode\",\n \"orgmode\": \"Org Mode\",\n \"pacmanconf\": \"PacmanConf\",\n \"perl\": \"Perl\",\n \"pl\": \"Perl\",\n \"php\": \"PHP\",\n \"php3\": \"PHP\",\n \"php4\": \"PHP\",\n \"php5\": \"PHP\",\n \"phtml\": \"PHTML\",\n \"pig\": \"Pig\",\n \"pkgconfig\": \"PkgConfig\",\n \"plpgsql\": \"PL/pgSQL\",\n \"text\": \"plaintext\",\n \"plain\": \"plaintext\",\n \"no-highlight\": \"plaintext\",\n \"plutus-core\": \"Plutus Core\",\n \"plc\": \"Plutus Core\",\n \"pony\": \"Pony\",\n \"postgresql\": \"PostgreSQL SQL dialect\",\n \"postgres\": \"PostgreSQL SQL dialect\",\n \"postscript\": \"PostScript\",\n \"postscr\": \"PostScript\",\n \"pov\": \"POVRay\",\n \"powerquery\": \"PowerQuery\",\n \"pq\": \"PowerQuery\",\n \"powershell\": \"PowerShell\",\n \"posh\": \"PowerShell\",\n \"ps1\": \"PowerShell\",\n \"psm1\": \"PowerShell\",\n \"psd1\": \"PowerShell\",\n \"prolog\": \"Prolog\",\n \"promql\": \"PromQL\",\n \"protobuf\": \"Protocol Buffer\",\n \"proto\": \"Protocol Buffer\",\n \"puppet\": \"Puppet\",\n \"python\": \"Python\",\n \"py\": \"Python\",\n \"sage\": \"Python\",\n \"python3\": \"Python\",\n \"py3\": \"Python\",\n \"python2\": \"Python 2\",\n \"py2\": \"Python 2\",\n \"qbasic\": \"QBasic\",\n \"basic\": \"QBasic\",\n \"qml\": \"QML\",\n \"qbs\": \"QML\",\n \"splus\": \"R\",\n \"s\": \"R\",\n \"r\": \"R\",\n \"racket\": \"Racket\",\n \"rkt\": \"Racket\",\n \"ragel\": \"Ragel\",\n \"perl6\": \"Raku\",\n \"pl6\": \"Raku\",\n \"raku\": \"Raku\",\n \"jsx\": \"react\",\n \"react\": \"react\",\n \"reason\": \"ReasonML\",\n \"reasonml\": \"ReasonML\",\n \"registry\": \"reg\",\n \"rst\": \"reStructuredText\",\n \"rest\": \"reStructuredText\",\n \"restructuredtext\": \"reStructuredText\",\n \"rexx\": \"Rexx\",\n \"arexx\": \"Rexx\",\n \"rb\": \"Ruby\",\n \"ruby\": \"Ruby\",\n \"duby\": \"Ruby\",\n \"rust\": \"Rust\",\n \"rs\": \"Rust\",\n \"sas\": \"SAS\",\n \"sass\": \"Sass\",\n \"scala\": \"Scala\",\n \"scheme\": \"Scheme\",\n \"scm\": \"Scheme\",\n \"scilab\": \"Scilab\",\n \"scss\": \"SCSS\",\n \"sieve\": \"Sieve\",\n \"smalltalk\": \"Smalltalk\",\n \"squeak\": \"Smalltalk\",\n \"st\": \"Smalltalk\",\n \"smarty\": \"Smarty\",\n \"snobol\": \"Snobol\",\n \"sol\": \"Solidity\",\n \"solidity\": \"Solidity\",\n \"sparql\": \"SPARQL\",\n \"sql\": \"SQL\",\n \"squidconf\": \"SquidConf\",\n \"squid\\\\.conf\": \"SquidConf\",\n \"squid\": \"SquidConf\",\n \"sml\": \"Standard ML\",\n \"stylus\": \"Stylus\",\n \"svelte\": \"Svelte\",\n \"swift\": \"Swift\",\n \"systemd\": \"SYSTEMD\",\n \"systemverilog\": \"systemverilog\",\n \"sv\": \"systemverilog\",\n \"tablegen\": \"TableGen\",\n \"tasm\": \"TASM\",\n \"tcl\": \"Tcl\",\n \"tcsh\": \"Tcsh\",\n \"csh\": \"Tcsh\",\n \"termcap\": \"Termcap\",\n \"terminfo\": \"Terminfo\",\n \"terraform\": \"Terraform\",\n \"tf\": \"Terraform\",\n \"tex\": \"TeX\",\n \"latex\": \"TeX\",\n \"thrift\": \"Thrift\",\n \"toml\": \"TOML\",\n \"tradingview\": \"TradingView\",\n \"tv\": \"TradingView\",\n \"tsql\": \"Transact-SQL\",\n \"t-sql\": \"Transact-SQL\",\n \"turing\": \"Turing\",\n \"turtle\": \"Turtle\",\n \"twig\": \"Twig\",\n \"ts\": \"TypeScript\",\n \"tsx\": \"TypeScript\",\n \"typescript\": \"TypeScript\",\n \"typoscript\": \"TypoScript\",\n \"typoscriptcssdata\": \"TypoScriptCssData\",\n \"typoscripthtmldata\": \"TypoScriptHtmlData\",\n \"v\": \"verilog\",\n \"vlang\": \"V\",\n \"vsh\": \"V shell\",\n \"vshell\": \"V shell\",\n \"vb\\\\.net\": \"VB.net\",\n \"vbnet\": \"VB.net\",\n \"verilog\": \"verilog\",\n \"vhdl\": \"VHDL\",\n \"vim\": \"VimL\",\n \"vue\": \"vue\",\n \"vuejs\": \"vue\",\n \"whiley\": \"Whiley\",\n \"xml\": \"XML\",\n \"xorg\\\\.conf\": \"Xorg\",\n \"yaml\": \"YAML\",\n \"yang\": \"YANG\",\n \"zed\": \"Zed\",\n \"zig\": \"Zig\",\n // Custom code type\n \"markdown\": \"markdown\"\n) !default;\n", + "// Code type map\n$code-type-map: (\n // Chroma supported languages\n // @generator https://github.com/hugo-fixit/.tools/blob/main/tampermonkey/code-type-map-fetcher.user.js\n \"abap\": \"ABAP\",\n \"abnf\": \"ABNF\",\n \"as\": \"ActionScript\",\n \"actionscript\": \"ActionScript\",\n \"as3\": \"ActionScript 3\",\n \"actionscript3\": \"ActionScript 3\",\n \"ada\": \"Ada\",\n \"ada95\": \"Ada\",\n \"ada2005\": \"Ada\",\n \"al\": \"AL\",\n \"ng2\": \"Angular2\",\n \"antlr\": \"ANTLR\",\n \"apacheconf\": \"ApacheConf\",\n \"aconf\": \"ApacheConf\",\n \"apache\": \"ApacheConf\",\n \"apl\": \"APL\",\n \"applescript\": \"AppleScript\",\n \"arduino\": \"Arduino\",\n \"armasm\": \"ArmAsm\",\n \"awk\": \"Awk\",\n \"gawk\": \"Awk\",\n \"mawk\": \"Awk\",\n \"nawk\": \"Awk\",\n \"ballerina\": \"Ballerina\",\n \"make\": \"Base Makefile\",\n \"makefile\": \"Base Makefile\",\n \"mf\": \"Base Makefile\",\n \"bsdmake\": \"Base Makefile\",\n \"bash\": \"Bash\",\n \"sh\": \"Bash\",\n \"ksh\": \"Bash\",\n \"zsh\": \"Bash\",\n \"shell\": \"Bash\",\n \"bash-session\": \"BashSession\",\n \"console\": \"BashSession\",\n \"shell-session\": \"BashSession\",\n \"bat\": \"Batchfile\",\n \"batch\": \"Batchfile\",\n \"dosbatch\": \"Batchfile\",\n \"winbatch\": \"Batchfile\",\n \"bib\": \"BibTeX\",\n \"bibtex\": \"BibTeX\",\n \"bicep\": \"Bicep\",\n \"blitzbasic\": \"BlitzBasic\",\n \"b3d\": \"BlitzBasic\",\n \"bplus\": \"BlitzBasic\",\n \"bnf\": \"BNF\",\n \"brainfuck\": \"Brainfuck\",\n \"bf\": \"Brainfuck\",\n \"c\": \"C\",\n \"csharp\": \"C#\",\n \"c\\\\#\": \"C#\",\n \"cpp\": \"C++\",\n \"c\\\\+\\\\+\": \"C++\",\n \"caddyfile\": \"Caddyfile\",\n \"caddy\": \"Caddyfile\",\n \"caddyfile-directives\": \"Caddyfile Directives\",\n \"caddyfile-d\": \"Caddyfile Directives\",\n \"caddy-d\": \"Caddyfile Directives\",\n \"capnp\": \"Cap'n Proto\",\n \"cassandra\": \"Cassandra CQL\",\n \"cql\": \"Cassandra CQL\",\n \"ceylon\": \"Ceylon\",\n \"cfengine3\": \"CFEngine3\",\n \"cf3\": \"CFEngine3\",\n \"cfs\": \"cfstatement\",\n \"chai\": \"ChaiScript\",\n \"chaiscript\": \"ChaiScript\",\n \"cheetah\": \"Cheetah\",\n \"spitfire\": \"Cheetah\",\n \"clojure\": \"Clojure\",\n \"clj\": \"Clojure\",\n \"cmake\": \"CMake\",\n \"cobol\": \"COBOL\",\n \"coffee-script\": \"CoffeeScript\",\n \"coffeescript\": \"CoffeeScript\",\n \"coffee\": \"CoffeeScript\",\n \"common-lisp\": \"Common Lisp\",\n \"cl\": \"Common Lisp\",\n \"lisp\": \"Common Lisp\",\n \"coq\": \"Coq\",\n \"cr\": \"Crystal\",\n \"crystal\": \"Crystal\",\n \"css\": \"CSS\",\n \"cython\": \"Cython\",\n \"pyx\": \"Cython\",\n \"pyrex\": \"Cython\",\n \"d\": \"D\",\n \"dart\": \"Dart\",\n \"diff\": \"Diff\",\n \"udiff\": \"Diff\",\n \"django\": \"Django/Jinja\",\n \"jinja\": \"Django/Jinja\",\n \"docker\": \"Docker\",\n \"dockerfile\": \"Docker\",\n \"dtd\": \"DTD\",\n \"dylan\": \"Dylan\",\n \"ebnf\": \"EBNF\",\n \"elixir\": \"Elixir\",\n \"ex\": \"Elixir\",\n \"exs\": \"Elixir\",\n \"elm\": \"Elm\",\n \"emacs\": \"EmacsLisp\",\n \"elisp\": \"EmacsLisp\",\n \"emacs-lisp\": \"EmacsLisp\",\n \"erlang\": \"Erlang\",\n \"factor\": \"Factor\",\n \"fennel\": \"Fennel\",\n \"fnl\": \"Fennel\",\n \"fish\": \"Fish\",\n \"fishshell\": \"Fish\",\n \"forth\": \"Forth\",\n \"fortran\": \"Fortran\",\n \"fortranfixed\": \"FortranFixed\",\n \"fsharp\": \"FSharp\",\n \"gas\": \"GAS\",\n \"asm\": \"GAS\",\n \"gdscript\": \"GDScript\",\n \"gd\": \"GDScript\",\n \"genshi\": \"Genshi\",\n \"kid\": \"Genshi\",\n \"xml\\\\+genshi\": \"Genshi\",\n \"xml\\\\+kid\": \"Genshi\",\n \"html\\\\+genshi\": \"Genshi HTML\",\n \"html\\\\+kid\": \"Genshi HTML\",\n \"genshitext\": \"Genshi Text\",\n \"cucumber\": \"Gherkin\",\n \"Cucumber\": \"Gherkin\",\n \"gherkin\": \"Gherkin\",\n \"Gherkin\": \"Gherkin\",\n \"glsl\": \"GLSL\",\n \"gnuplot\": \"Gnuplot\",\n \"go\": \"Go\",\n \"golang\": \"Go\",\n \"go-html-template\": \"Go HTML Template\",\n \"go-text-template\": \"Go Text Template\",\n \"graphql\": \"GraphQL\",\n \"graphqls\": \"GraphQL\",\n \"gql\": \"GraphQL\",\n \"groff\": \"Groff\",\n \"nroff\": \"Groff\",\n \"man\": \"Groff\",\n \"groovy\": \"Groovy\",\n \"handlebars\": \"Handlebars\",\n \"hbs\": \"Handlebars\",\n \"haskell\": \"Haskell\",\n \"hs\": \"Haskell\",\n \"hx\": \"Haxe\",\n \"haxe\": \"Haxe\",\n \"hxsl\": \"Haxe\",\n \"hcl\": \"HCL\",\n \"hexdump\": \"Hexdump\",\n \"hlb\": \"HLB\",\n \"html\": \"HTML\",\n \"http\": \"HTTP\",\n \"hylang\": \"Hy\",\n \"idris\": \"Idris\",\n \"idr\": \"Idris\",\n \"igor\": \"Igor\",\n \"igorpro\": \"Igor\",\n \"ini\": \"INI\",\n \"cfg\": \"INI\",\n \"dosini\": \"INI\",\n \"io\": \"Io\",\n \"j\": \"J\",\n \"java\": \"Java\",\n \"js\": \"JavaScript\",\n \"javascript\": \"JavaScript\",\n \"json\": \"JSON\",\n \"julia\": \"Julia\",\n \"jl\": \"Julia\",\n \"jungle\": \"Jungle\",\n \"kotlin\": \"Kotlin\",\n \"lighty\": \"Lighttpd configuration file\",\n \"lighttpd\": \"Lighttpd configuration file\",\n \"llvm\": \"LLVM\",\n \"lua\": \"Lua\",\n \"mako\": \"Mako\",\n \"md\": \"markdown\",\n \"mkd\": \"markdown\",\n \"mason\": \"Mason\",\n \"mathematica\": \"Mathematica\",\n \"mma\": \"Mathematica\",\n \"nb\": \"Mathematica\",\n \"matlab\": \"Matlab\",\n \"mcfunction\": \"mcfunction\",\n \"meson\": \"Meson\",\n \"meson\\\\.build\": \"Meson\",\n \"metal\": \"Metal\",\n \"minizinc\": \"MiniZinc\",\n \"MZN\": \"MiniZinc\",\n \"mzn\": \"MiniZinc\",\n \"mlir\": \"MLIR\",\n \"modula2\": \"Modula-2\",\n \"m2\": \"Modula-2\",\n \"monkeyc\": \"MonkeyC\",\n \"morrowind\": \"MorrowindScript\",\n \"mwscript\": \"MorrowindScript\",\n \"myghty\": \"Myghty\",\n \"mysql\": \"MySQL\",\n \"mariadb\": \"MySQL\",\n \"nasm\": \"NASM\",\n \"newspeak\": \"Newspeak\",\n \"nginx\": \"Nginx configuration file\",\n \"nim\": \"Nim\",\n \"nimrod\": \"Nim\",\n \"nixos\": \"Nix\",\n \"nix\": \"Nix\",\n \"objective-c\": \"Objective-C\",\n \"objectivec\": \"Objective-C\",\n \"obj-c\": \"Objective-C\",\n \"objc\": \"Objective-C\",\n \"ocaml\": \"OCaml\",\n \"octave\": \"Octave\",\n \"ones\": \"OnesEnterprise\",\n \"onesenterprise\": \"OnesEnterprise\",\n \"1S\": \"OnesEnterprise\",\n \"1S:Enterprise\": \"OnesEnterprise\",\n \"openedge\": \"OpenEdge ABL\",\n \"abl\": \"OpenEdge ABL\",\n \"progress\": \"OpenEdge ABL\",\n \"openedgeabl\": \"OpenEdge ABL\",\n \"openscad\": \"OpenSCAD\",\n \"org\": \"Org Mode\",\n \"orgmode\": \"Org Mode\",\n \"pacmanconf\": \"PacmanConf\",\n \"perl\": \"Perl\",\n \"pl\": \"Perl\",\n \"php\": \"PHP\",\n \"php3\": \"PHP\",\n \"php4\": \"PHP\",\n \"php5\": \"PHP\",\n \"phtml\": \"PHTML\",\n \"pig\": \"Pig\",\n \"pkgconfig\": \"PkgConfig\",\n \"plpgsql\": \"PL/pgSQL\",\n \"text\": \"plaintext\",\n \"plain\": \"plaintext\",\n \"no-highlight\": \"plaintext\",\n \"plutus-core\": \"Plutus Core\",\n \"plc\": \"Plutus Core\",\n \"pony\": \"Pony\",\n \"postgresql\": \"PostgreSQL SQL dialect\",\n \"postgres\": \"PostgreSQL SQL dialect\",\n \"postscript\": \"PostScript\",\n \"postscr\": \"PostScript\",\n \"pov\": \"POVRay\",\n \"powerquery\": \"PowerQuery\",\n \"pq\": \"PowerQuery\",\n \"powershell\": \"PowerShell\",\n \"posh\": \"PowerShell\",\n \"ps1\": \"PowerShell\",\n \"psm1\": \"PowerShell\",\n \"psd1\": \"PowerShell\",\n \"prolog\": \"Prolog\",\n \"promql\": \"PromQL\",\n \"protobuf\": \"Protocol Buffer\",\n \"proto\": \"Protocol Buffer\",\n \"puppet\": \"Puppet\",\n \"python\": \"Python\",\n \"py\": \"Python\",\n \"sage\": \"Python\",\n \"python3\": \"Python\",\n \"py3\": \"Python\",\n \"python2\": \"Python 2\",\n \"py2\": \"Python 2\",\n \"qbasic\": \"QBasic\",\n \"basic\": \"QBasic\",\n \"qml\": \"QML\",\n \"qbs\": \"QML\",\n \"splus\": \"R\",\n \"s\": \"R\",\n \"r\": \"R\",\n \"racket\": \"Racket\",\n \"rkt\": \"Racket\",\n \"ragel\": \"Ragel\",\n \"perl6\": \"Raku\",\n \"pl6\": \"Raku\",\n \"raku\": \"Raku\",\n \"jsx\": \"react\",\n \"react\": \"react\",\n \"reason\": \"ReasonML\",\n \"reasonml\": \"ReasonML\",\n \"registry\": \"reg\",\n \"rst\": \"reStructuredText\",\n \"rest\": \"reStructuredText\",\n \"restructuredtext\": \"reStructuredText\",\n \"rexx\": \"Rexx\",\n \"arexx\": \"Rexx\",\n \"rb\": \"Ruby\",\n \"ruby\": \"Ruby\",\n \"duby\": \"Ruby\",\n \"rust\": \"Rust\",\n \"rs\": \"Rust\",\n \"sas\": \"SAS\",\n \"sass\": \"Sass\",\n \"scala\": \"Scala\",\n \"scheme\": \"Scheme\",\n \"scm\": \"Scheme\",\n \"scilab\": \"Scilab\",\n \"scss\": \"SCSS\",\n \"sieve\": \"Sieve\",\n \"smalltalk\": \"Smalltalk\",\n \"squeak\": \"Smalltalk\",\n \"st\": \"Smalltalk\",\n \"smarty\": \"Smarty\",\n \"snobol\": \"Snobol\",\n \"sol\": \"Solidity\",\n \"solidity\": \"Solidity\",\n \"sparql\": \"SPARQL\",\n \"sql\": \"SQL\",\n \"squidconf\": \"SquidConf\",\n \"squid\\\\.conf\": \"SquidConf\",\n \"squid\": \"SquidConf\",\n \"sml\": \"Standard ML\",\n \"stylus\": \"Stylus\",\n \"svelte\": \"Svelte\",\n \"swift\": \"Swift\",\n \"systemd\": \"SYSTEMD\",\n \"systemverilog\": \"systemverilog\",\n \"sv\": \"systemverilog\",\n \"tablegen\": \"TableGen\",\n \"tasm\": \"TASM\",\n \"tcl\": \"Tcl\",\n \"tcsh\": \"Tcsh\",\n \"csh\": \"Tcsh\",\n \"termcap\": \"Termcap\",\n \"terminfo\": \"Terminfo\",\n \"terraform\": \"Terraform\",\n \"tf\": \"Terraform\",\n \"tex\": \"TeX\",\n \"latex\": \"TeX\",\n \"thrift\": \"Thrift\",\n \"toml\": \"TOML\",\n \"tradingview\": \"TradingView\",\n \"tv\": \"TradingView\",\n \"tsql\": \"Transact-SQL\",\n \"t-sql\": \"Transact-SQL\",\n \"turing\": \"Turing\",\n \"turtle\": \"Turtle\",\n \"twig\": \"Twig\",\n \"ts\": \"TypeScript\",\n \"tsx\": \"TypeScript\",\n \"typescript\": \"TypeScript\",\n \"typoscript\": \"TypoScript\",\n \"typoscriptcssdata\": \"TypoScriptCssData\",\n \"typoscripthtmldata\": \"TypoScriptHtmlData\",\n \"v\": \"verilog\",\n \"vlang\": \"V\",\n \"vsh\": \"V shell\",\n \"vshell\": \"V shell\",\n \"vb\\\\.net\": \"VB.net\",\n \"vbnet\": \"VB.net\",\n \"verilog\": \"verilog\",\n \"vhdl\": \"VHDL\",\n \"vim\": \"VimL\",\n \"vue\": \"vue\",\n \"vuejs\": \"vue\",\n \"whiley\": \"Whiley\",\n \"xml\": \"XML\",\n \"xorg\\\\.conf\": \"Xorg\",\n \"yaml\": \"YAML\",\n \"yang\": \"YANG\",\n \"zed\": \"Zed\",\n \"zig\": \"Zig\",\n // Custom code type\n \"markdown\": \"markdown\",\n \"yml\": \"YAML\"\n) !default;\n", "// Theme colors\n$primary: #1772ee !default;\n$secondary: #919191 !default;\n$success: #13ce66 !default;\n$info: #0dcaf0 !default;\n$warning: #ffba00 !default;\n$danger: #ff4949 !default;\n\n// Theme colors map\n$theme-colors: (\n 'primary': $primary,\n 'secondary': $secondary,\n 'success': $success,\n 'info': $info,\n 'warning': $warning,\n 'danger': $danger\n) !default;\n", + "// Utilities\n\n// property order\n$orders: (\n first: -1,\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n last: 6,\n) !default;", "// ==============================\n// Override Variables\n// ่ฆ†็›–ๅ˜้‡\n// ==============================\n", - "@import '_compatibility';\n@import '_link';\n@import '_blur';\n@import '_details';\n", - "@mixin border-radius($value) {\n -webkit-border-radius: $value;\n -moz-border-radius: $value;\n border-radius: $value;\n}\n\n@mixin box-shadow($values...) {\n -webkit-box-shadow: $values;\n box-shadow: $values;\n}\n\n@mixin transition($values...) {\n -webkit-transition: $values;\n -moz-transition: $values;\n -o-transition: $values;\n transition: $values;\n}\n\n@mixin transform($value) {\n -webkit-transform: $value;\n -moz-transform: $value;\n -ms-transform: $value;\n -o-transform: $value;\n transform: $value;\n}\n\n@mixin filter($value) {\n -webkit-filter: $value;\n -moz-filter: $value;\n -ms-filter: $value;\n filter: $value;\n}\n\n@mixin flex($value) {\n -webkit-flex: $value;\n flex: $value;\n}\n\n@mixin box($orient) {\n display: -moz-box;\n display: -webkit-box;\n display: box;\n\n -webkit-box-orient: $orient;\n -moz-box-orient: $orient;\n box-orient: $orient;\n}\n\n@mixin placeholder($color) {\n input::-webkit-input-placeholder {\n color: $color;\n }\n\n input:-moz-placeholder {\n color: $color;\n }\n\n input::-moz-placeholder {\n color: $color;\n }\n\n input:-ms-input-placeholder {\n color: $color;\n }\n\n input::placeholder {\n color: $color;\n }\n}\n\n@mixin max-content($property) {\n #{$property}: -webkit-max-content;\n #{$property}: -moz-max-content;\n #{$property}: intrinsic;\n #{$property}: max-content;\n}\n\n@mixin tab-size($value) {\n -moz-tab-size: $value;\n -o-tab-size: $value;\n tab-size: $value;\n}\n\n@mixin appearance($value) {\n -moz-appearance: $value;\n -webkit-appearance: $value;\n}\n\n@mixin overflow-wrap($value) {\n word-wrap: $value;\n overflow-wrap: $value;\n}\n\n@mixin line-break($value) {\n -webkit-line-break: $value;\n -ms-line-break: $value;\n line-break: $value;\n}\n\n@mixin ms {\n input::-ms-clear {\n display: none;\n }\n}\n\n@mixin object-fit($value) {\n -o-object-fit: $value;\n object-fit: $value;\n font-family: 'object-fit: #{$value};';\n}\n", - "@mixin link($light, $dark) {\n a,\n a::before,\n a::after {\n text-decoration: none;\n\n color: if($light, $global-link-color, $single-link-color);\n\n [data-theme='dark'] & {\n color: if($dark, $global-link-color-dark, $single-link-color-dark);\n }\n }\n\n a:active,\n a:hover {\n color: if($light, $global-link-hover-color, $single-link-hover-color);\n\n [data-theme='dark'] & {\n color: if($dark, $global-link-hover-color-dark, $single-link-hover-color-dark);\n }\n }\n}\n", + "@import '_compatibility';\n@import '_link';\n@import '_blur';\n@import '_details';\n@import '_z-index';\n", + "@mixin border-radius($value) {\n -webkit-border-radius: $value;\n -moz-border-radius: $value;\n border-radius: $value;\n}\n\n@mixin box-shadow($values...) {\n -webkit-box-shadow: $values;\n box-shadow: $values;\n}\n\n@mixin transition($values...) {\n -webkit-transition: $values;\n -moz-transition: $values;\n -o-transition: $values;\n transition: $values;\n}\n\n@mixin transform($value) {\n -webkit-transform: $value;\n -ms-transform: $value;\n -o-transform: $value;\n transform: $value;\n}\n\n@mixin filter($value) {\n -webkit-filter: $value;\n filter: $value;\n}\n\n@mixin flex($value) {\n -webkit-flex: $value;\n flex: $value;\n}\n\n@mixin box($orient) {\n display: -moz-box;\n display: -webkit-box;\n display: box;\n\n -webkit-box-orient: $orient;\n -moz-box-orient: $orient;\n box-orient: $orient;\n}\n\n@mixin placeholder($color) {\n input::-webkit-input-placeholder {\n color: $color;\n }\n\n input:-moz-placeholder {\n color: $color;\n }\n\n input::-moz-placeholder {\n color: $color;\n }\n\n input:-ms-input-placeholder {\n color: $color;\n }\n\n input::placeholder {\n color: $color;\n }\n}\n\n@mixin max-content($property) {\n #{$property}: -webkit-max-content;\n #{$property}: -moz-max-content;\n #{$property}: intrinsic;\n #{$property}: max-content;\n}\n\n@mixin tab-size($value) {\n -moz-tab-size: $value;\n -o-tab-size: $value;\n tab-size: $value;\n}\n\n@mixin appearance($value) {\n -moz-appearance: $value;\n -webkit-appearance: $value;\n}\n\n@mixin overflow-wrap($value) {\n word-wrap: $value;\n overflow-wrap: $value;\n}\n\n@mixin line-break($value) {\n -webkit-line-break: $value;\n -ms-line-break: $value;\n line-break: $value;\n}\n\n@mixin object-fit($value) {\n -o-object-fit: $value;\n object-fit: $value;\n font-family: 'object-fit: #{$value};';\n}\n\n@mixin user-select($value) {\n -webkit-user-select: $value !important;\n -moz-user-select: $value !important;\n user-select: $value !important;\n}\n", + "/**\n * Link mixin\n * @param {Boolean} $light use global link color\n * @param {Boolean} $dark use global link color dark\n * @param {String} $decoration text-decoration, default none\n */\n@mixin link($light, $dark, $decoration: none) {\n a,\n a::before,\n a::after {\n text-decoration: $decoration;\n\n @if $light {\n color: $global-link-color;\n }\n\n @else {\n color: $single-link-color;\n }\n\n [data-theme='dark'] & {\n @if $dark {\n color: $global-link-color-dark;\n }\n\n @else {\n color: $single-link-color-dark;\n }\n }\n }\n\n a:active,\n a:hover {\n @if $light {\n color: $global-link-hover-color;\n }\n\n @else {\n color: $single-link-hover-color;\n }\n\n [data-theme='dark'] & {\n @if $dark {\n color: $global-link-hover-color-dark;\n }\n\n @else {\n color: $single-link-hover-color-dark;\n }\n }\n }\n}\n", "@mixin blur {\n .blur & {\n @include filter(blur(1.5px));\n }\n}\n", "@mixin details-transition-open {\n @include transition(max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s);\n}\n\n@mixin details-transition-close {\n @include transition(max-height 0.2s cubic-bezier(0.5, 0, 1, 0) 0s);\n}\n", - ":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Theme colors varibles\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}-dark: #{darken($value, 5%)};\n }\n}\n", - "@import \"../../lib/normalize/normalize\";\n\nhtml {\n font-family: $global-font-family;\n font-weight: $global-font-weight;\n font-display: swap;\n font-size: $global-font-size;\n line-height: $global-line-height;\n width: 100%;\n scroll-behavior: smooth;\n overflow: overlay;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n html {\n scroll-behavior: auto;\n }\n}\n\n/* scrollbar, only support webkit */\n::-webkit-scrollbar {\n width: 0.5rem;\n height: 0.5rem;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: $scrollbar-color;\n @include border-radius($global-border-radius);\n\n &:hover {\n background-color: $scrollbar-hover-color;\n }\n}\n\n::selection {\n background-color: $selection-color;\n\n [data-theme='dark'] & {\n background-color: $selection-color-dark;\n }\n}\n\nbody {\n background-color: $global-background-color;\n color: $global-font-color;\n @include overflow-wrap(break-word);\n scrollbar-color: auto;\n\n &[data-theme='dark'] {\n color: $global-font-color-dark;\n background-color: $global-background-color-dark;\n }\n}\n\nimg {\n @include object-fit(contain);\n @include border-radius($global-border-radius/2);\n}\n\niframe {\n border: 0;\n @include border-radius($global-border-radius);\n}\n\n[role='button'] {\n cursor: pointer;\n}\n\nsummary {\n cursor: pointer;\n}\n\nabbr[title] {\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\n@include ms;\n@include link(true, true);\n\n@import '../_partials/mask';\n@import '../_partials/icon';\n@import '../_partials/details';\n@import '../_partials/widgets';\n", + "@mixin z-index($level, $diff: 0) {\n z-index: ($level * 100) + $diff;\n}\n", + ":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Theme colors varibles\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}-dark: #{darken($value, 5%)};\n }\n\n // Scroll margin top and Stack sticky top related\n --#{$prefix}scroll-mt: calc(#{$header-height} + #{$global-scroll-margin-top});\n\n // Set breadcrumb height to 0px if breadcrumb is disabled\n --#{$prefix}breadcrumb-height: 0px;\n}\n", + "@import \"../../lib/normalize/normalize\";\n\nhtml {\n font-family: $global-font-family;\n font-weight: $global-font-weight;\n font-display: swap;\n font-size: $global-font-size;\n line-height: $global-line-height;\n width: 100%;\n scroll-behavior: smooth;\n overflow: overlay;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n html {\n scroll-behavior: auto;\n }\n}\n\n/* scrollbar, only support webkit */\n::-webkit-scrollbar {\n width: 0.5rem;\n height: 0.5rem;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: $scrollbar-color;\n @include border-radius($global-border-radius);\n\n &:hover {\n background-color: $scrollbar-hover-color;\n }\n}\n\n::selection {\n background-color: $selection-color;\n\n [data-theme='dark'] & {\n background-color: $selection-color-dark;\n }\n}\n\nbody {\n background-color: $global-background-color;\n color: $global-font-color;\n scrollbar-color: auto;\n @include overflow-wrap(break-word);\n\n &::-webkit-scrollbar {\n width: 0.75rem;\n height: 0.75rem;\n background-color: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background-color: transparent;\n background-clip: content-box;\n border: 2px solid transparent;\n @include border-radius(0.5rem);\n }\n\n &[data-scroll]::-webkit-scrollbar-thumb {\n background-color: $scrollbar-color;\n }\n\n &[data-theme='dark'] {\n color: $global-font-color-dark;\n background-color: $global-background-color-dark;\n }\n}\n\niframe {\n border: 0;\n @include border-radius($global-border-radius);\n}\n\n[role='button'] {\n cursor: pointer;\n}\n\nsummary {\n cursor: pointer;\n}\n\nabbr[title] {\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\n@include link(true, true);\n\n@import '../_partials/mask';\n@import '../_partials/img';\n@import '../_partials/icon';\n@import '../_partials/details';\n@import '../_partials/widgets';\n", "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n", - "#mask {\n background-repeat: no-repeat;\n background-position: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n background-color: rgba(0, 0, 0, 0);\n\n .blur & {\n z-index: 100;\n background-color: rgba(0, 0, 0, 0.25);\n }\n}\n", - "svg.icon {\n display: inline-block;\n width: 1.25em;\n height: 1em;\n text-align: center;\n\n path {\n fill: currentColor;\n }\n}\n\nimg.emoji {\n height: 1em;\n width: 1em;\n margin: 0 0.05em 0 0.1em;\n vertical-align: -0.1em;\n}\n\n.fixit-icon {\n display: inline-block;\n height: 1.5em;\n width: 1.5em;\n line-height: 1.5em;\n position: relative;\n vertical-align: text-bottom;\n}\n", + "#mask {\n background-repeat: no-repeat;\n background-position: center;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0);\n @include z-index(0, -1);\n\n .blur & {\n @include z-index(1);\n background-color: rgba(0, 0, 0, 0.25);\n }\n}\n", + "img {\n @include border-radius($global-border-radius/2);\n}\n", + "svg.icon {\n display: inline-block;\n width: 1.25em;\n height: 1em;\n text-align: center;\n\n path {\n fill: currentColor;\n }\n}\n\nimg.emoji {\n display: inline-block;\n height: 1em;\n width: 1em;\n margin: 0 0.05em 0 0.1em;\n vertical-align: -0.1em;\n}\n\n.hugo-icon,\n.fixit-icon {\n display: inline-block;\n height: 1.2em;\n width: 1.2em;\n line-height: 1.2em;\n position: relative;\n vertical-align: text-bottom;\n}\n", ".details {\n .details-summary {\n @include border-radius($global-border-radius);\n\n &:hover {\n cursor: pointer;\n }\n }\n\n i.details-icon {\n color: $global-font-secondary-color;\n @include transition(transform 0.2s ease);\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .details-content {\n max-height: 0;\n overflow-y: hidden;\n @include details-transition-open;\n }\n\n &.open {\n .details-summary {\n @include border-radius($global-border-radius $global-border-radius 0 0);\n }\n\n i.details-icon {\n @include transform(rotate(90deg));\n }\n\n .details-content {\n max-height: 100%;\n @include border-radius(0 0 $global-border-radius $global-border-radius);\n @include details-transition-close;\n }\n }\n}\n", "@import '_widgets/cookieconsent';\n@import '_widgets/fixed-button';\n@import '_widgets/github-corner';\n@import '_widgets/noscript-warning';\n@import '_widgets/reading-progress';\n@import '_widgets/typeit';\n", ".cc-window.cc-banner {\n .cc-btn {\n color: $global-font-color;\n\n &:hover,\n &:focus {\n background-color: #ccc;\n }\n\n [data-theme='dark'] & {\n color: $global-font-color;\n\n &:hover,\n &:focus {\n background-color: #fff;\n }\n }\n }\n}\n", - ".fixed-button {\n z-index: 100;\n position: fixed;\n right: 1.5rem;\n font-size: 1rem;\n line-height: 1.5rem;\n padding: 0.5rem 0.625rem;\n color: $global-font-secondary-color;\n background-color: $header-background-color;\n @include border-radius(1.25rem);\n @include transition(color 0.4s ease);\n\n @include blur;\n\n &:hover,\n &:active {\n color: $global-font-color;\n cursor: pointer;\n }\n\n &:active,\n &:focus,\n &:hover {\n outline: none;\n }\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n background-color: $header-background-color-dark;\n\n &:hover,\n &:active {\n color: $global-font-color-dark;\n }\n }\n}\n\n.back-to-top {\n bottom: 1.5rem;\n}\n\n.view-comments {\n bottom: 4.5rem;\n}\n", - "@keyframes octocat-wave {\n 0%,\n 100% {\n transform: rotate(0);\n }\n 20%,\n 60% {\n transform: rotate(-25deg);\n }\n 40%,\n 80% {\n transform: rotate(10deg);\n }\n}\n\n.github-corner {\n position: fixed;\n top: 0;\n z-index: 150;\n\n :hover .octo-arm {\n animation: octocat-wave 560ms ease-in-out;\n }\n svg {\n width: $header-height;\n height: $header-height;\n border: 0;\n color: $github-corner-color;\n fill: $github-corner-fill;\n\n [data-theme='dark'] & {\n color: $github-corner-color-dark;\n fill: $github-corner-fill-dark;\n }\n }\n &.left {\n left: 0;\n\n svg {\n transform: scale(-1, 1);\n }\n }\n &.right {\n right: 0;\n }\n}\n", - ".noscript-warning {\n background-color: var(--#{$prefix}danger);\n color: white;\n font-size: 1rem;\n font-weight: bold;\n position: fixed;\n text-align: center;\n left: 0;\n top: 0;\n width: 100%;\n z-index: 150;\n\n [data-theme='dark'] & {\n background-color: var(--#{$prefix}danger-dark);\n }\n}\n", - ".reading-progress-bar {\n --progress: 0;\n height: var(--progress-h, 2px);\n width: var(--progress);\n background-color: var(--bg-progress, var(--#{$prefix}info));\n z-index: 150;\n position: fixed;\n \n [data-theme=\"dark\"] & {\n background-color: var(--bg-progress-dark, var(--#{$prefix}info-dark));\n }\n}\n", + ".fixed-button {\n position: fixed;\n right: 1.5rem;\n font-size: 1rem;\n line-height: 1.5rem;\n padding: 0.5rem 0.625rem;\n color: $global-font-secondary-color;\n background-color: $header-background-color;\n @include z-index(1);\n @include border-radius(1.25rem);\n @include transition(color 0.4s ease);\n @include blur;\n @extend .print-d-none;\n\n &:hover,\n &:active {\n color: $global-font-color;\n cursor: pointer;\n }\n\n &:active,\n &:focus,\n &:hover {\n outline: none;\n }\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n background-color: $header-background-color-dark;\n\n &:hover,\n &:active {\n color: $global-font-color-dark;\n }\n }\n}\n\n.back-to-top {\n bottom: 1.5rem;\n}\n\n.view-comments {\n bottom: 4.5rem;\n}\n", + "@keyframes octocat-wave {\n 0%,\n 100% {\n @include transform(rotate(0));\n }\n 20%,\n 60% {\n @include transform(rotate(-25deg));\n }\n 40%,\n 80% {\n @include transform(rotate(10deg));\n }\n}\n\n.github-corner {\n position: fixed;\n top: 0;\n @include z-index(2);\n @extend .print-d-none;\n\n :hover .octo-arm {\n animation: octocat-wave 560ms ease-in-out;\n }\n svg {\n width: $header-height;\n height: $header-height;\n border: 0;\n color: $github-corner-color;\n fill: $github-corner-fill;\n\n [data-theme='dark'] & {\n color: $github-corner-color-dark;\n fill: $github-corner-fill-dark;\n }\n }\n &.left {\n left: 0;\n\n svg {\n @include transform(scale(-1, 1));\n }\n }\n &.right {\n right: 0;\n }\n}\n", + ".noscript-warning {\n background-color: var(--#{$prefix}danger);\n color: white;\n font-size: 1rem;\n font-weight: bold;\n position: fixed;\n text-align: center;\n left: 0;\n bottom: 0;\n width: 100%;\n @include z-index(2);\n\n [data-theme='dark'] & {\n background-color: var(--#{$prefix}danger-dark);\n }\n}\n", + ".reading-progress-bar {\n --progress: 0;\n height: var(--progress-h, 2px);\n width: var(--progress);\n background-color: var(--bg-progress, var(--#{$prefix}info));\n position: fixed;\n @include z-index(2);\n @extend .print-d-none;\n \n [data-theme=\"dark\"] & {\n background-color: var(--bg-progress-dark, var(--#{$prefix}info-dark));\n }\n}\n", ".typeit {\n .highlight {\n padding: 0.375rem;\n font-size: 0.875rem;\n font-family: $code-font-family;\n font-weight: bold;\n word-break: break-all;\n white-space: pre-wrap;\n }\n\n --ti-cursor-font-family: #{$global-font-family};\n --ti-cursor-font-size: #{$global-font-size};\n --ti-cursor-font-style: normal;\n --ti-cursor-font-weight: #{$global-font-weight};\n --ti-cursor-line-height: #{$global-line-height};\n --ti-cursor-color: #{$global-font-color};\n --ti-cursor-transform: translateX(0);\n\n [data-theme='dark'] & {\n --ti-cursor-color: #{$global-font-color-dark};\n }\n}\n", - "/** Layout **/\n.wrapper {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n width: 100%;\n\n main {\n flex: 1 0 auto;\n\n aside:first-child {\n order: 2;\n }\n\n &.container {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 0 1rem;\n }\n\n &.container-reverse {\n @extend .container;\n flex-direction: row-reverse;\n }\n }\n}\n", - "// ==============================\n// Common Styles\n// ๅธธ็”จๆ ทๅผ\n// ==============================\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-start {\n text-align: left !important;\n}\n.text-end {\n text-align: right !important;\n}\n.text-center {\n text-align: center !important;\n}\n\n.d-none {\n display: none !important;\n}\n.d-none-desktop {\n display: none;\n}\n.d-none-mobile {\n display: block;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n.me-1 {\n margin-right: 0.25rem !important;\n}\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n@each $color, $value in $theme-colors {\n .text-#{$color} {\n color: #{$value} !important;\n\n [data-theme='dark'] & {\n color: #{darken($value, 5%)} !important;\n }\n }\n}\n\n.variant-numeric {\n font-variant-numeric: tabular-nums lining-nums;\n}\n", - ".page {\n position: relative;\n\n .content {\n [id] {\n scroll-margin-top: $header-height;\n\n [data-header-desktop='normal'] & {\n scroll-margin-top: 0;\n }\n }\n }\n\n @include blur;\n}\n\n@import '_single';\n@import '_special';\n@import '_archive';\n@import '_home';\n@import '_404';\n@import '_offline';\n@import '_friends';\n", - "@import '../_partials/_single/toc';\n@import '../_partials/_single/fixit-decryptor';\n\n.single {\n .single-title {\n padding: 1rem 0 0.5rem;\n margin: 0;\n font-size: 1.6rem;\n font-weight: bold;\n line-height: 140%;\n \n .icon-repost {\n color: var(--#{$prefix}success);\n display: inline-block;\n width: max-content;\n margin-right: 0.25rem;\n\n [data-theme='dark'] & {\n color: var(--#{$prefix}success-dark);\n }\n }\n }\n\n .single-subtitle {\n margin: 0.5rem 0;\n font-size: 1.2rem;\n font-weight: normal;\n line-height: 100%;\n }\n\n .post-meta {\n font-size: 0.875rem;\n color: $global-font-secondary-color;\n\n span {\n display: inline-block;\n }\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, true);\n\n .author {\n font-size: 1.05rem;\n \n img.avatar {\n width: 1.3rem;\n height: 1.3rem;\n border-radius: 50%;\n vertical-align: text-bottom;\n border: 0.25px solid $global-border-color;\n box-sizing: border-box;\n object-position: center;\n @include object-fit(cover);\n\n [data-theme='dark'] & {\n border-color: $global-border-color-dark;\n }\n }\n }\n }\n\n .featured-image {\n margin: 0.5rem 0 1rem 0;\n\n img {\n display: block;\n max-width: 100%;\n height: auto;\n margin: 0 auto;\n overflow: hidden;\n\n &.lazyloaded {\n width: 100%;\n }\n }\n }\n\n .content {\n > h1,\n > h2 {\n font-size: 1.5rem;\n\n & code {\n font-size: 1.25rem;\n }\n }\n\n > h3 {\n font-size: 1.375rem;\n\n & code {\n font-size: 1.125rem;\n }\n }\n\n > h4 {\n font-size: 1.25rem;\n\n & code {\n font-size: 1rem;\n }\n }\n\n > h5 {\n font-size: 1.125rem;\n }\n\n > h6 {\n font-size: 1rem;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-weight: bold;\n margin: 1.2rem 0;\n\n [data-theme='dark'] & {\n font-weight: bolder;\n }\n }\n\n > h2,\n > h3,\n > h4,\n > h5,\n > h6 {\n > .header-mark::before {\n content: '|';\n margin-right: 0.3125rem;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n }\n\n > h2 > .header-mark::before {\n content: '#';\n }\n\n p {\n margin: 0.5rem 0;\n }\n\n b,\n strong {\n font-weight: bold;\n\n [data-theme='dark'] & {\n color: #ddd;\n }\n }\n\n @include link(false, false);\n\n a {\n white-space: normal;\n @include overflow-wrap(break-word);\n\n [data-theme='dark'] & b,\n [data-theme='dark'] & strong {\n color: $single-link-color-dark;\n }\n }\n\n [data-theme='dark'] a:hover b,\n [data-theme='dark'] a:hover strong {\n color: $single-link-hover-color-dark;\n }\n\n ul,\n ol {\n margin: 0.5rem 0;\n padding-left: 2.5rem;\n }\n\n ul {\n list-style-type: disc;\n }\n\n ruby {\n background: $code-background-color;\n\n rt {\n color: $global-font-secondary-color;\n }\n\n [data-theme='dark'] & {\n background: $code-background-color-dark;\n\n rt {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n\n .table-wrapper {\n overflow-x: auto;\n\n &::-webkit-scrollbar {\n background-color: $table-background-color;\n\n [data-theme='dark'] & {\n background-color: $table-background-color-dark;\n }\n }\n\n > table {\n width: 100%;\n max-width: 100%;\n margin: 0.625rem 0;\n border-spacing: 0;\n background: $table-background-color;\n border-collapse: collapse;\n\n [data-theme='dark'] & {\n background: $table-background-color-dark;\n }\n\n thead {\n background: $table-thead-color;\n\n [data-theme='dark'] & {\n background-color: $table-thead-color-dark;\n }\n }\n\n &:not([class]) tbody {\n & tr:nth-child(odd) {\n background: darken($table-background-color, 2.25%);\n\n [data-theme='dark'] & {\n background-color: lighten($table-background-color-dark, 2.75%);\n }\n }\n \n & tr:hover {\n background: darken($table-background-color, 4.5%);\n\n [data-theme='dark'] & {\n background-color: lighten($table-background-color-dark, 5.5%);\n }\n }\n }\n\n th,\n td {\n padding: 0.3rem 1rem;\n border: 1px solid darken($table-thead-color, 2%);\n\n [data-theme='dark'] & {\n border-color: darken($table-thead-color-dark, 2%);\n }\n }\n }\n }\n\n img {\n max-width: 100%;\n min-height: 1em;\n\n &:not([data-h]) {\n height: auto;\n }\n }\n svg {\n max-width: 100%;\n }\n\n figure {\n margin: 0.5rem;\n text-align: center;\n\n .image-caption:not(:empty) {\n min-width: 20%;\n max-width: 80%;\n display: inline-block;\n padding: 0.5rem;\n margin: 0 auto;\n font-size: 0.875rem;\n color: #969696;\n }\n\n img {\n display: block;\n margin: 0 auto;\n overflow: hidden;\n\n &.lazyloaded:not([data-w]) {\n width: 100%;\n }\n }\n }\n\n .lazyload,\n .lazyloading {\n @include object-fit(none);\n }\n\n .lazyloaded {\n @include object-fit(fill);\n }\n\n blockquote {\n display: block;\n border-left: 0.25em solid $global-border-color;\n color: $blockquote-color;\n padding: 0 1em;\n margin: 1rem 0;\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n [data-theme='dark'] & {\n color: $blockquote-color-dark;\n border-left-color: $global-border-color-dark;\n }\n\n @include link(false, true);\n }\n\n .footnotes {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n p {\n margin: 0.25rem 0;\n }\n }\n\n @import '../_partials/_single/code';\n @import '../_shortcodes';\n\n hr {\n margin: 1rem 0;\n position: relative;\n border-top: 1px dashed $global-border-color;\n border-bottom: none;\n\n [data-theme='dark'] & {\n border-top: 1px dashed $global-border-color-dark;\n }\n }\n\n kbd {\n display: inline-block;\n padding: 0 0.25rem;\n background-color: $global-background-color;\n border: 1px solid $global-border-color;\n border-bottom-color: $global-border-color;\n @include border-radius($global-border-radius);\n @include box-shadow(inset 0 -1px 0 $global-border-color);\n font-size: 0.8rem;\n font-family: $code-font-family;\n color: $code-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n border: 1px solid $global-border-color-dark;\n border-bottom-color: $global-border-color-dark;\n @include box-shadow(inset 0 -1px 0 $global-border-color-dark);\n color: $code-color-dark;\n }\n }\n\n .version {\n height: 1.25em;\n vertical-align: text-bottom;\n }\n }\n\n @import '../_partials/_single/footer';\n @import '../_partials/_single/comment';\n}\n\n.lg-toolbar .lg-icon::after {\n color: #999;\n}\n", - ".toc {\n .toc-title {\n font-size: $toc-title-font-size;\n font-weight: bold;\n text-transform: uppercase;\n }\n\n .toc-content {\n font-size: $toc-content-font-size;\n\n ul {\n text-indent: -0.8rem;\n padding-left: 0.8rem;\n list-style: none;\n\n a:first-child::before {\n content: '|';\n font-weight: bolder;\n margin-right: 0.5rem;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n\n ul {\n padding-left: 1.5rem;\n }\n }\n }\n\n ruby {\n background: $code-background-color;\n\n rt {\n color: $global-font-secondary-color;\n }\n\n [data-theme='dark'] & {\n background: $code-background-color-dark;\n\n rt {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n#toc-auto {\n display: block;\n position: sticky;\n top: $header-height + 0.5rem;\n padding-left: 1rem;\n padding-right: 1rem;\n @include overflow-wrap(break-word);\n box-sizing: border-box;\n visibility: hidden;\n\n @include blur;\n\n .toc-title {\n margin: 0.5rem 0;\n cursor: pointer;\n\n &::before {\n content: '|';\n font-weight: bolder;\n margin-right: 0.5rem;\n color: $global-border-color;\n\n [data-theme='dark'] & {\n color: $global-border-color-dark;\n }\n }\n\n i.toc-icon {\n @include transition(transform 0.2s ease);\n }\n }\n\n &.toc-hidden i.toc-icon {\n @include transform(rotate(-90deg));\n @include transition(transform 0.2s ease);\n }\n\n .toc-content {\n overflow-y: scroll;\n max-height: calc(100vh - #{2*$header-height});\n\n &.always-active ul {\n display: block;\n }\n\n > nav > ul {\n margin: 0;\n }\n\n ul {\n ul {\n display: none;\n }\n\n .has-active > ul {\n display: block;\n }\n }\n\n a.active {\n font-weight: bold;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n\n &::before {\n color: $single-link-hover-color;\n\n [data-theme='dark'] & {\n color: $single-link-hover-color-dark;\n }\n }\n }\n }\n}\n\n#toc-static {\n display: none;\n margin: 0.8rem 0;\n\n &[data-kept='true'] {\n display: block;\n }\n\n .toc-title {\n display: flex;\n justify-content: space-between;\n line-height: 2em;\n padding: 0 0.75rem;\n background: darken($code-background-color, 3%);\n\n [data-theme='dark'] & {\n background: darken($code-background-color-dark, 6%);\n }\n }\n\n .toc-content {\n background-color: $code-background-color;\n\n > nav > ul {\n margin: 0;\n padding: 0.4rem 1rem 0.4rem 1.8rem;\n }\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n }\n\n &.open {\n .toc-title {\n background: darken($code-background-color, 6%);\n\n [data-theme='dark'] & {\n background: darken($code-background-color-dark, 3%);\n }\n }\n }\n}\n", - ".fixit-decryptor-container {\n font-family: $global-font-family;\n text-align: center;\n margin-top: 3rem;\n\n .fixit-encryptor-shortcode & {\n margin-top: 1rem;\n }\n\n #fixit-decryptor-input,\n .fixit-decryptor-input,\n .fixit-encryptor-btn {\n display: inline-block;\n box-sizing: border-box;\n outline: none;\n color: $global-font-color;\n border: 1px solid darken($global-border-color, 15%);\n border-radius: $global-border-radius;\n transition: 0.1s;\n box-shadow: 0px 0px 5px 0px darken($global-border-color, 15%);\n\n &:active,\n &:focus,\n &:hover {\n color: darken($global-link-hover-color, 6%);\n border-color: $global-link-hover-color;\n box-shadow: 0px 0px 5px 0px lighten($global-link-hover-color, 20%);\n\n [data-theme='dark'] & {\n color: lighten($global-link-hover-color-dark, 6%);\n border-color: $global-link-hover-color-dark;\n box-shadow: 0px 0px 5px 0px darken($global-link-hover-color-dark, 20%);\n }\n }\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n border-color: lighten($global-border-color-dark, 15%);\n box-shadow: 0px 0px 5px 0px lighten($global-border-color-dark, 15%);\n }\n }\n\n #fixit-decryptor-input,\n .fixit-decryptor-input {\n width: clamp(50%, 400px, 100%);\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n background-color: $global-background-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n }\n\n .fixit-encryptor-btn {\n cursor: pointer;\n transition: 0.1s;\n padding: 0.6rem 1rem;\n\n background-color: $header-background-color;\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n }\n}\n", - "// inline code\ncode {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: $code-font-size;\n font-family: $code-font-family;\n color: $code-color;\n background-color: rgba(175, 184, 193, 0.2);\n text-decoration: inherit;\n @include border-radius($global-border-radius);\n @include overflow-wrap(break-word);\n @include line-break(auto);\n\n [data-theme='dark'] & {\n color: $code-color-dark;\n background-color: rgba(99, 110, 123, 0.4);\n }\n}\n\n// indented code\npre {\n margin: 0;\n line-height: 1.45em;\n padding: 0.5rem;\n overflow: auto;\n font-size: $code-font-size;\n font-family: $code-font-family;\n @include border-radius($global-border-radius);\n @include tab-size(4);\n\n background-color: $code-background-color;\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n\n code {\n padding: 0;\n background-color: transparent;\n @include border-radius(0);\n @include max-content(min-width);\n\n [data-theme='dark'] & {\n background-color: transparent;\n }\n }\n\n img {\n min-height: 1em;\n max-height: 1.2em;\n vertical-align: text-bottom;\n }\n}\n\n.highlight,\n.gist {\n font-size: $code-font-size;\n font-family: $code-font-family;\n\n .table-wrapper {\n > table,\n > table thead,\n > table tr,\n > table td {\n margin: 0;\n padding: 0;\n border: none !important;\n white-space: nowrap;\n }\n }\n}\n\n// block fenced code\n.highlight {\n margin: 0.5rem 0;\n\n > .chroma {\n position: relative;\n\n .code-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n font-family: $global-font-family;\n font-weight: bold;\n line-height: 1.4em;\n color: $code-info-color;\n background-color: darken($code-background-color, 3%);\n @include border-radius($global-border-radius);\n @include transition(border-radius 0.2s ease);\n\n [data-theme='dark'] & {\n color: $code-info-color-dark;\n background-color: darken($code-background-color-dark, 6%);\n }\n\n &:hover {\n cursor: pointer;\n }\n\n .code-title {\n width: 100%;\n padding: 0.4rem;\n\n .arrow {\n padding: 0 0.2rem;\n @include transition(transform 0.2s ease);\n }\n }\n\n .code-title::after {\n padding-left: 0.2rem;\n content: 'Code';\n }\n\n .ellipses {\n padding: 0.4rem;\n }\n\n .edit,\n .copy {\n display: none;\n padding: 0.4rem;\n\n &:hover {\n cursor: pointer;\n color: $global-link-hover-color;\n\n [data-theme='dark'] & {\n color: $global-link-hover-color-dark;\n }\n }\n }\n\n @each $type, $text in $code-type-map {\n &.language-#{$type} .code-title::after {\n content: $text;\n }\n }\n }\n\n // delayed loading table-wrapper\n .table-wrapper {\n max-height: 0;\n overflow: hidden;\n @include border-radius(0 0 $global-border-radius $global-border-radius);\n @include details-transition-open;\n }\n\n table {\n border-spacing: 0;\n width: auto;\n overflow: auto;\n display: block;\n background-color: $code-background-color;\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n\n td {\n vertical-align: top;\n padding: 0;\n }\n\n pre {\n padding: 0.25rem;\n outline-offset: -1px;\n @include border-radius(0);\n }\n\n /* lineNumbersInTable=false */\n .ln {\n min-width: 1.25rem;\n }\n\n // ========== lineNumbersInTable ========== //\n // line numbers\n .lntd:first-child {\n min-width: 1.6rem;\n text-align: right;\n\n pre {\n padding-right: 0;\n }\n }\n // code content\n .lntd:last-child {\n width: 100%;\n\n pre {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n code {\n width: 100%;\n }\n }\n // ========== lineNumbersInTable ========== //\n }\n\n &.open {\n .code-header {\n background-color: darken($code-background-color, 6%);\n @include border-radius($global-border-radius $global-border-radius 0 0);\n\n [data-theme='dark'] & {\n background-color: darken($code-background-color-dark, 3%);\n }\n }\n\n .table-wrapper {\n max-height: 100%;\n @include details-transition-close;\n }\n\n .arrow {\n @include transform(rotate(90deg));\n }\n\n .ellipses {\n display: none;\n }\n\n .edit,\n .copy {\n display: inline;\n }\n }\n }\n\n /* LineHighlight */\n .hl {\n display: block;\n background-color: $code-hightlight-color;\n box-shadow: -0.5rem 0 0 $code-hightlight-color, 0.5rem 0 0 $code-hightlight-color;\n\n [data-theme='dark'] & {\n background-color: $code-hightlight-color-dark;\n box-shadow: -0.5rem 0 0 $code-hightlight-color-dark, 0.5rem 0 0 $code-hightlight-color-dark;\n }\n }\n /* GenericUnderline */\n .gl {\n text-decoration: underline;\n }\n /* GenericStrong */\n .gs {\n font-weight: bold;\n }\n /* GenericEmph */\n .ge {\n font-style: italic;\n }\n /* lineNumbersInTable=false */\n .ln {\n padding-right: 0.5rem;\n display: inline-block;\n min-width: 1.1rem;\n text-align: right;\n }\n /* LineNumbers */\n .lnt,\n .ln {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n // ========== Higtlight Color ========== //\n\n /* Error */\n .err {\n font-style: italic;\n border-bottom: 1px dotted $code-error-color;\n }\n /* GenericDeleted */\n .gd {\n background-color: #ffebe9;\n\n [data-theme='dark'] & {\n background-color: #78191b;\n }\n }\n /* GenericInserted */\n .gi {\n background-color: #dafbe1;\n\n [data-theme='dark'] & {\n background-color: #1b4721;\n }\n }\n\n @each $class, $color in $code-highlight-color-map {\n .#{$class} {\n color: $color;\n }\n }\n\n [data-theme='dark'] & {\n @each $class, $color in $code-highlight-color-map-dark {\n .#{$class} {\n color: $color;\n }\n }\n }\n // ========== Higtlight Color ========== //\n}\n\n// gist shortcode\n.gist {\n .gist-file,\n .gist-data,\n .gist-meta {\n border: none;\n }\n\n .gist-data {\n background-color: transparent;\n }\n\n .gist-meta {\n padding: 0.4rem 0.8rem;\n @include link(false, false);\n background-color: darken($code-background-color, 5%);\n\n [data-theme='dark'] & {\n background-color: darken($code-background-color-dark, 5%);\n }\n }\n\n .table-wrapper {\n .highlight,\n &::-webkit-scrollbar {\n background-color: #f6f8fa;\n\n [data-theme='dark'] & {\n background-color: #2d333b;\n }\n }\n }\n\n [data-theme='dark'] & {\n @import './github-dark-dimmed';\n }\n}\n", + "/** Layout **/\n.wrapper {\n display: flex;\n flex-direction: column;\n min-height: 100vh;\n width: 100%;\n\n main {\n flex: 1 0 auto;\n\n aside {\n flex: 1;\n padding: 0.5rem;\n\n &:not(:has(~ aside)) {\n display: none;\n }\n }\n\n &.container {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding-inline: 1rem;\n gap: 0.5rem;\n\n &.container-reverse {\n flex-direction: row-reverse;\n }\n\n &:has(.home:not(.posts)) {\n align-items: center;\n }\n }\n }\n}\n\n@import \"_header\";\n@import \"_breadcrumb\";\n@import \"_footer\";\n@import \"_pagination\";\n", + "header {\n width: 100%;\n background-color: $header-background-color;\n @include z-index(2);\n @include transition(box-shadow 0.3s ease);\n @extend .print-d-none;\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n\n &:hover {\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n @include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.1));\n }\n }\n}\n\n.header-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n}\n\n.header-title {\n font-family: $header-title-font-family;\n font-weight: bold;\n margin-right: 0.5rem;\n min-width: 10%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n @include flex(10);\n\n .logo {\n min-height: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n width: auto;\n }\n\n .header-title-text {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n\n .header-subtitle {\n margin-left: 0.25rem;\n font-size: 0.6em;\n }\n}\n\n.menu {\n margin: 0;\n padding: 0;\n\n .menu-item {\n list-style: none;\n\n & .dropdown-icon {\n margin-left: 0.25rem;\n font-size: .875em;\n color: $global-font-color;\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n }\n\n &.open::before {\n content: \"\\f078\";\n }\n }\n\n &.active {\n >.menu-link,\n >.nested-item>.menu-link {\n font-weight: bold;\n color: $menu-active-color;\n\n [data-theme='dark'] & {\n color: $menu-active-color-dark;\n }\n }\n }\n\n .menu-link i {\n @include transform(perspective(1rem));\n @include transition(transform 0.4s ease);\n }\n\n .menu-link:hover i {\n @include transform(perspective(1rem) translateZ(0.2rem));\n }\n\n &.language-switch,\n &.theme-switch {\n cursor: pointer;\n }\n }\n}\n\n.search {\n position: relative;\n\n input {\n color: transparent;\n box-sizing: border-box;\n height: 2.5rem;\n width: 1.25rem;\n @include border-radius(0.5rem);\n border: none;\n outline: none;\n background-color: transparent;\n vertical-align: baseline !important;\n @include transition(width 0.3s ease);\n }\n\n @include placeholder(transparent);\n\n .search-button {\n margin: 0;\n position: absolute;\n left: auto;\n right: 1rem;\n }\n\n .search-toggle {\n left: 0.5rem;\n right: auto;\n\n #header-desktop.open & {\n left: 1rem;\n }\n }\n\n .search-loading {\n display: none;\n }\n\n .search-clear {\n display: none;\n }\n\n .open &,\n &.mobile {\n input {\n color: $global-font-color;\n background-color: $search-background-color;\n padding: 0 2rem 0 2rem;\n }\n\n [data-theme='dark'] & {\n input {\n color: $global-font-color-dark;\n background-color: $search-background-color-dark;\n }\n\n @include placeholder($global-font-secondary-color-dark);\n }\n\n @include placeholder($global-font-secondary-color);\n\n .search-button {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .search-clear:hover {\n color: #ff6b6b;\n }\n\n .search-toggle:hover {\n cursor: default;\n }\n }\n}\n\n.theme-switch {\n i {\n @include transform(rotate(225deg));\n @include transition(transform 0.4s ease);\n }\n\n &:hover i {\n @include transform(rotate(45deg));\n }\n}\n\n#header-desktop {\n display: block;\n position: sticky;\n top: 0;\n height: $header-height;\n line-height: $header-height;\n box-sizing: border-box;\n\n [data-header-desktop='normal'] & {\n position: static;\n }\n\n nav {\n overflow: hidden;\n white-space: nowrap;\n }\n\n .header-wrapper {\n // use css native function to calculate max value\n padding: 0 2rem 0 MAX(10vh, $header-height);\n height: 100%;\n\n &[data-github-corner='right'] {\n padding-right: $header-height;\n }\n\n .header-title {\n font-size: $header-title-font-size;\n height: 100%;\n }\n\n .menu {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n float: right;\n\n >.menu-item {\n &:hover .sub-menu {\n display: block;\n @include transform(translateX(-0.5rem));\n }\n &.language-switch:hover .sub-menu {\n @include transform(translateX(calc(1.75rem - 100%)));\n }\n }\n\n .menu-item {\n padding: 0 0.5rem;\n\n &.delimiter {\n width: 0;\n margin: 0.125rem 0.25rem;\n padding: 0;\n border-left: 1px dashed lighten($global-font-secondary-color, 15%);\n\n [data-theme='dark'] & {\n border-left-color: darken($global-font-secondary-color-dark, 15%);\n }\n }\n }\n\n .sub-menu {\n position: absolute;\n margin: 0;\n padding: 0.25rem 0;\n display: none;\n top: calc(#{$header-height} - 0.75rem);\n border-radius: $global-border-radius;\n border: 1px solid $global-border-color;\n background-color: $header-background-color;\n @include transition(box-shadow 0.3s ease);\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n border-color: $global-border-color-dark;\n @include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.1));\n }\n\n .menu-item {\n height: $header-height*0.5;\n line-height: $header-height*0.5;\n max-width: 15rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n }\n }\n }\n\n &.open .header-wrapper .menu .menu-item.search {\n input {\n width: 24rem;\n }\n }\n}\n\n#header-mobile {\n display: none;\n position: sticky;\n top: 0;\n min-height: $header-height;\n line-height: $header-height;\n\n [data-header-mobile='normal'] & {\n position: static;\n }\n\n .header-container {\n padding: 0;\n margin: 0;\n\n .header-wrapper {\n padding: 0 1rem;\n font-size: 1.125rem;\n @include transition(margin-top 0.3s ease);\n\n .header-title {\n font-size: $header-title-font-size;\n max-width: 80%;\n }\n\n .menu-toggle {\n line-height: 4rem;\n cursor: pointer;\n @include transition(width 0.3s ease);\n\n span {\n display: block;\n background: $global-font-color;\n width: 1.5rem;\n height: 2px;\n @include border-radius(3px);\n @include transition(all 0.3s ease-in-out);\n\n [data-theme='dark'] & {\n background: $global-font-color-dark;\n }\n }\n\n span:nth-child(1) {\n margin-bottom: 0.5rem;\n }\n\n span:nth-child(3) {\n margin-top: 0.5rem;\n }\n\n &.active {\n span:nth-child(1) {\n @include transform(rotate(45deg) translate(0.4rem, 0.5rem));\n }\n\n span:nth-child(2) {\n opacity: 0;\n }\n\n span:nth-child(3) {\n @include transform(rotate(-45deg) translate(0.4rem, -0.5rem));\n }\n }\n }\n }\n\n .menu {\n background: $header-background-color;\n border-top: 2px solid $global-border-color;\n display: none;\n overflow-y: overlay;\n max-height: 70vh;\n @include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n @include box-shadow(0 0.125rem 0.25rem rgba(255, 255, 255, 0.1));\n }\n \n &::-webkit-scrollbar {\n width: 0;\n }\n\n .search-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n padding: ($header-height - 2.5rem) / 2 1rem;\n line-height: 2.5rem;\n position: sticky;\n top: 0;\n background-color: $header-background-color;\n @include z-index(0, 50);\n \n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n }\n\n .search {\n flex-grow: 10;\n\n .algolia-autocomplete,\n input {\n width: 100%;\n }\n }\n\n .search-loading,\n .search-clear {\n right: 0.5rem;\n }\n\n .search-button {\n top: 0;\n }\n\n .search-cancel {\n display: none;\n margin-left: 0.75rem;\n }\n\n .menu-item {\n display: block;\n position: relative;\n line-height: 2.5rem;\n padding: 0 1rem;\n\n &:not(.menu-system):hover {\n background-color: lighten($global-font-secondary-color, 24%);\n\n [data-theme='dark'] & {\n background-color: darken($global-font-secondary-color-dark, 24%);\n }\n }\n\n .menu-link {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n @include flex(4);\n }\n\n & .nested-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .menu-link {\n max-width: 80%;\n }\n }\n }\n\n .menu-system {\n display: flex;\n justify-content: center;\n gap: 0.25rem;\n position: sticky;\n bottom: 0;\n line-height: 2.5rem;\n padding: 0 1rem;\n background-color: $header-background-color;\n \n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n\n .menu-system-item {\n padding-inline: 0.5rem;\n }\n\n .language-switch {\n position: relative;\n\n .language-select {\n position: absolute;\n opacity: 0;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .sub-menu {\n padding-left: 0;\n display: none;\n\n &.open {\n display: block;\n }\n\n .menu-item:hover {\n background-color: lighten($global-font-secondary-color, 20%);\n\n [data-theme='dark'] & {\n background-color: darken($global-font-secondary-color-dark, 20%);\n }\n }\n }\n\n &.active {\n display: block;\n }\n\n [data-theme='dark'] & {\n background: $header-background-color-dark;\n border-top-color: $global-border-color-dark;\n }\n }\n }\n\n &.open {\n .header-wrapper {\n margin-top: -$header-height;\n }\n\n .menu {\n padding-top: 0;\n border-top: none;\n\n .menu-item {\n display: none;\n }\n\n .search-cancel {\n display: inline;\n }\n }\n }\n}\n\n.search-dropdown {\n position: fixed;\n top: $header-height;\n @include z-index(2);\n @include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));\n\n [data-theme='dark'] & {\n @include box-shadow(0 0.125rem 0.25rem rgba(255, 255, 255, 0.1));\n }\n\n &.desktop {\n right: 2rem;\n width: 30rem;\n }\n\n &.mobile {\n right: 0;\n width: 100%;\n }\n\n .dropdown-menu {\n right: 0 !important;\n background-color: $global-background-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n\n .suggestions {\n overflow-y: auto;\n max-height: calc(100vh - #{$header-height});\n\n .suggestion {\n padding: 0.75rem 1rem;\n\n .suggestion-title {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 1rem;\n font-weight: bold;\n max-width: 75%;\n }\n\n .suggestion-date {\n font-size: 0.875rem;\n float: right;\n text-align: right;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .suggestion-context {\n line-height: 1.25rem;\n @include box(vertical);\n -webkit-line-clamp: 2;\n overflow: hidden;\n text-overflow: ellipsis;\n @include overflow-wrap(break-word);\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n em {\n font-style: normal;\n background-color: $selection-color;\n\n [data-theme='dark'] & {\n background-color: $selection-color-dark;\n }\n }\n\n &.cursor {\n background: darken($code-background-color, 5%);\n\n [data-theme='dark'] & {\n background: lighten($code-background-color-dark, 5%);\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n }\n }\n\n .search-empty {\n padding: 1rem;\n text-align: center;\n\n .search-query {\n font-weight: bold;\n\n [data-theme='dark'] & {\n color: #ddd;\n }\n }\n }\n\n .search-footer {\n padding: 0.5rem 1rem;\n float: right;\n font-size: 0.8rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n\n a {\n font-size: 1rem;\n }\n }\n }\n}\n", + ".breadcrumb-container {\n padding-inline: 1rem;\n font-size: 0.75rem;\n background-color: $global-background-color;\n @include z-index(1);\n @extend .print-d-none;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n\n &.sticky {\n position: sticky;\n top: $header-height;\n }\n\n .breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.5rem 0;\n margin: 0 auto;\n list-style: none;\n border-bottom: 1px inset $global-border-color;\n @extend %page-style;\n\n [data-theme='dark'] & {\n border-bottom-color: $global-border-color-dark;\n }\n\n .breadcrumb-item {\n display: flex;\n\n +.breadcrumb-item::before {\n content: \"/\";\n display: inline-block;\n padding-inline: 0.5rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n &.active {\n @extend .text-secondary;\n }\n }\n }\n}\n", + "footer {\n height: auto;\n width: 100%;\n text-align: center;\n line-height: 1.25rem;\n padding: 1rem 0;\n @extend .print-d-none;\n\n .footer-container {\n display: flex;\n flex-direction: column;\n font-size: 0.875rem;\n\n .footer-line {\n width: 100%;\n\n .footer-divider:not(:first-child)::before {\n content: '|';\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n\n .animate-icon {\n color: #dc143c;\n animation: icon-animate 1.33s ease-in-out infinite;\n }\n\n .run-times {\n font-variant-numeric: tabular-nums lining-nums;\n }\n }\n }\n\n @include blur;\n}\n\n@keyframes icon-animate {\n 0%,\n 100% {\n @include transform(scale(1));\n }\n\n 10%,\n 30% {\n @include transform(scale(0.9));\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n @include transform(scale(1.1));\n }\n\n 50%,\n 70% {\n @include transform(scale(1.1));\n }\n}\n", + ".pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n flex-wrap: wrap;\n list-style: none;\n white-space: nowrap;\n width: 100%;\n padding: 1rem 0;\n\n a {\n font-size: 0.8rem;\n color: $pagination-link-color;\n letter-spacing: 0.1rem;\n font-weight: 700;\n padding: 5px 5px;\n text-decoration: none;\n @include transition(0.3s);\n\n [data-theme='dark'] & {\n color: $pagination-link-color-dark;\n }\n }\n\n li {\n padding: 5px;\n margin: 0 10px;\n box-sizing: border-box;\n position: relative;\n display: inline;\n\n &.disabled {\n display: none;\n }\n\n &:hover a {\n color: $pagination-link-hover-color;\n }\n\n [data-theme='dark'] &:hover a {\n color: $pagination-link-hover-color-dark;\n }\n\n &::before,\n &::after {\n position: absolute;\n content: '';\n width: 0;\n height: 3px;\n background: $pagination-link-hover-color;\n @include transition(0.3s);\n bottom: 0px;\n }\n\n [data-theme='dark'] &::before,\n [data-theme='dark'] &::after {\n background: $pagination-link-hover-color-dark;\n }\n\n &::before {\n left: 50%;\n }\n\n &::after {\n right: 50%;\n }\n\n &:hover {\n &::before,\n &::after {\n width: 50%;\n }\n }\n\n &.active {\n a {\n color: $pagination-link-hover-color;\n }\n\n [data-theme='dark'] & a {\n color: $pagination-link-hover-color-dark;\n }\n\n &::before,\n &::after {\n width: 50%;\n }\n }\n }\n}\n", + "// ==============================\n// Common Styles\n// ๅธธ็”จๆ ทๅผ\n// ==============================\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.text-start {\n text-align: left !important;\n}\n.text-end {\n text-align: right !important;\n}\n.text-center {\n text-align: center !important;\n}\n\n.d-none {\n display: none !important;\n}\n.d-none-desktop {\n display: none;\n}\n.d-none-mobile {\n display: block;\n}\n\n.ms-1,\n.mx-1 {\n margin-left: 0.25em !important;\n}\n.me-1,\n.mx-1 {\n margin-right: 0.25em !important;\n}\n.ps-1,\n.px-1 {\n padding-left: 0.25em !important;\n}\n.pe-1,\n.px-1 {\n padding-right: 0.25em !important;\n}\n\n@each $color, $value in $theme-colors {\n .text-#{$color} {\n color: #{$value} !important;\n\n [data-theme='dark'] & {\n color: #{darken($value, 5%)} !important;\n }\n }\n}\n\n@each $key, $value in $orders {\n .order-#{$key} {\n order: #{$value} !important;\n }\n}\n\n.variant-numeric {\n font-variant-numeric: tabular-nums lining-nums;\n}\n", + "/* Resolve style conflicts between third-party plugins */\n\n@keyframes #{$prefix}pulse {\n from {\n @include transform(scale3d(1, 1, 1));\n }\n\n 50% {\n @include transform(scale3d(1.05, 1.05, 1.05));\n }\n\n to {\n @include transform(scale3d(1, 1, 1));\n }\n}\n\n.animate__pulse {\n -webkit-animation-name: #{$prefix}pulse !important;\n animation-name: #{$prefix}pulse !important;\n}\n", + ".page {\n position: relative;\n @extend %page-style;\n\n .content {\n [id] {\n scroll-margin-top: var(--#{$prefix}scroll-mt);\n }\n }\n\n @include blur;\n}\n\n@import '_single';\n@import '_special';\n@import '_archive';\n@import '_home';\n@import '_404';\n@import '_offline';\n@import '_friends';\n", + "@import '../_partials/_single/toc';\n@import '../_partials/_single/fixit-decryptor';\n@import '../_partials/_single/collections';\n\n.single {\n .single-title {\n padding: 1rem 0 0.5rem;\n margin: 0;\n font-size: 1.6rem;\n font-weight: bold;\n line-height: 140%;\n\n .icon-pin {\n display: inline-block;\n width: max-content;\n transform: rotate(30deg);\n margin-right: 0.25em;\n @extend .text-danger;\n }\n\n .icon-repost {\n display: inline-block;\n width: max-content;\n margin-right: 0.25em;\n @extend .text-success;\n }\n }\n\n .single-subtitle {\n margin: 0.5rem 0;\n font-size: 1.2rem;\n font-weight: normal;\n line-height: 100%;\n }\n\n .post-meta {\n font-size: 0.875rem;\n color: $global-font-secondary-color;\n\n .comment-visitors,\n .comment-count {\n @extend .print-d-none;\n }\n\n span {\n display: inline-block;\n }\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, true);\n\n .author {\n font-size: 1.05rem;\n\n img.avatar {\n width: 1.3rem;\n height: 1.3rem;\n border-radius: 50%;\n vertical-align: text-bottom;\n border: 0.25px solid $global-border-color;\n box-sizing: border-box;\n object-position: center;\n @include object-fit(cover);\n\n [data-theme='dark'] & {\n border-color: $global-border-color-dark;\n }\n }\n }\n }\n\n .featured-image {\n margin: 0.5rem 0 1rem 0;\n\n img {\n display: block;\n width: 100%;\n max-width: 100%;\n height: auto;\n margin: 0 auto;\n overflow: hidden;\n }\n }\n\n #content[data-end-flag]:not([data-password])::after {\n content: attr(data-end-flag);\n display: block;\n text-align: center;\n color: $global-font-secondary-color;\n font-size: 15px;\n padding: 5px;\n }\n\n .content {\n > h1,\n > h2 {\n font-size: 1.5rem;\n\n & code {\n font-size: 1.25rem;\n }\n }\n\n > h3 {\n font-size: 1.375rem;\n\n & code {\n font-size: 1.125rem;\n }\n }\n\n > h4 {\n font-size: 1.25rem;\n\n & code {\n font-size: 1rem;\n }\n }\n\n > h5 {\n font-size: 1.125rem;\n }\n\n > h6 {\n font-size: 1rem;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-weight: bold;\n margin: 1.2rem 0;\n\n [data-theme='dark'] & {\n font-weight: bolder;\n }\n }\n\n > h2,\n > h3,\n > h4,\n > h5,\n > h6 {\n > .heading-mark::before {\n content: '|';\n margin-right: 0.3125rem;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n }\n\n > h2 > .heading-mark::before {\n content: '#';\n }\n\n p {\n margin: 0.5rem 0;\n }\n\n b,\n strong {\n font-weight: bold;\n\n [data-theme='dark'] & {\n color: #ddd;\n }\n }\n\n @include link(false, false);\n\n a {\n white-space: normal;\n @include overflow-wrap(break-word);\n\n [data-theme='dark'] & b,\n [data-theme='dark'] & strong {\n color: $single-link-color-dark;\n }\n }\n\n [data-theme='dark'] a:hover b,\n [data-theme='dark'] a:hover strong {\n color: $single-link-hover-color-dark;\n }\n\n ul,\n ol,\n dl {\n margin-block: 0.5em;\n }\n\n ul {\n list-style-type: disc;\n }\n\n dl {\n dt {\n margin-bottom: 0.5em;\n }\n dd {\n margin-inline-start: 1.25em;\n }\n }\n\n ruby {\n background: $code-background-color;\n\n rt {\n color: $global-font-secondary-color;\n }\n\n [data-theme='dark'] & {\n background: $code-background-color-dark;\n\n rt {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n\n .table-wrapper {\n overflow-x: auto;\n\n &::-webkit-scrollbar {\n background-color: $table-background-color;\n\n [data-theme='dark'] & {\n background-color: $table-background-color-dark;\n }\n }\n\n > table {\n width: 100%;\n max-width: 100%;\n margin: 0.625rem 0;\n border-spacing: 0;\n background: $table-background-color;\n border-collapse: collapse;\n\n [data-theme='dark'] & {\n background: $table-background-color-dark;\n }\n\n thead {\n background: $table-thead-color;\n\n [data-theme='dark'] & {\n background-color: $table-thead-color-dark;\n }\n }\n\n &:not([class]) tbody {\n & tr:nth-child(odd) {\n background: darken($table-background-color, 2.25%);\n\n [data-theme='dark'] & {\n background-color: lighten($table-background-color-dark, 2.75%);\n }\n }\n\n & tr:hover {\n background: darken($table-background-color, 4.5%);\n\n [data-theme='dark'] & {\n background-color: lighten($table-background-color-dark, 5.5%);\n }\n }\n }\n\n th,\n td {\n padding: 0.3rem 1rem;\n border: 1px solid darken($table-thead-color, 2%);\n\n [data-theme='dark'] & {\n border-color: darken($table-thead-color-dark, 2%);\n }\n }\n }\n }\n\n img {\n max-width: 100%;\n min-height: 1em;\n\n &:not([height]) {\n height: auto;\n }\n\n &[loading='lazy'][srcset]:not([data-lazyloaded]) {\n &:not(.suffix-invalid__small) {\n width: var(--width-small, var(--width));\n aspect-ratio: var(--aspect-ratio-small, var(--aspect-ratio));\n }\n\n &:not(.suffix-invalid) {\n @media (min-resolution: 1.01dppx) and (max-resolution: 1.5dppx) {\n width: calc(var(--width) / 1.5);\n aspect-ratio: var(--aspect-ratio);\n }\n }\n\n &:not(.suffix-invalid__large) {\n @media (min-resolution: 1.51dppx) {\n width: calc(var(--width-large, var(--width)) / 2);\n aspect-ratio: var(--aspect-ratio-large, var(--aspect-ratio));\n }\n }\n }\n\n &.version {\n height: 1.25em;\n vertical-align: text-bottom;\n }\n }\n svg {\n max-width: 100%;\n }\n\n figure {\n margin: 0.5rem;\n text-align: center;\n\n .image-caption:not(:empty) {\n min-width: 20%;\n max-width: 80%;\n display: inline-block;\n padding: 0.5rem;\n margin: 0 auto;\n font-size: 0.875rem;\n color: #969696;\n }\n\n img {\n display: block;\n margin: 0 auto;\n overflow: hidden;\n }\n }\n\n blockquote {\n display: block;\n border-left: 0.25em solid $global-border-color;\n color: $blockquote-color;\n padding: 0 1em;\n margin: 1rem 0;\n\n ul,\n ol {\n padding-left: 1.5em;\n }\n\n dl dd {\n margin-inline-start: 0.25em;\n }\n\n [data-theme='dark'] & {\n color: $blockquote-color-dark;\n border-left-color: $global-border-color-dark;\n }\n\n @include link(false, true);\n }\n\n sup[id^='fnref:']:has(.footnote-ref) {\n padding: 2px 4px;\n background-color: rgba(238, 238, 238, 0.7);\n color: #555555;\n border-radius: 4px;\n cursor: pointer;\n\n [data-theme='dark'] & {\n background-color: rgba(56, 139, 253, 0.1);\n color: #58a6ff;\n }\n\n @include link(true, false);\n }\n\n .footnotes {\n font-size: 0.75rem;\n white-space: normal;\n color: darken($global-font-secondary-color, 5%);\n\n ol {\n margin-block: 1em;\n padding-left: 1rem;\n }\n\n a:not(.footnote-backref) {\n color: inherit;\n text-decoration: underline;\n }\n\n @include link(false, true);\n\n [data-theme='dark'] & {\n color: lighten($global-font-secondary-color-dark, 5%);\n }\n\n p {\n margin: 0.25rem 0;\n }\n }\n\n @import '../_partials/_single/code';\n @import '../_shortcodes';\n\n hr {\n margin-block: 1em;\n position: relative;\n border-top: 1px dashed darken($global-border-color, 5%);\n border-bottom: none;\n\n [data-theme='dark'] & {\n border-top: 1px dashed lighten($global-border-color-dark, 5%);\n }\n }\n\n kbd {\n display: inline-block;\n padding: 0 0.25rem;\n background-color: $global-background-color;\n border: 1px solid $global-border-color;\n font-size: 0.8rem;\n font-family: $code-font-family;\n color: $code-color;\n @include border-radius($global-border-radius);\n @include box-shadow(inset 0 -1px 0 $global-border-color);\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n border: 1px solid $global-border-color-dark;\n color: $code-color-dark;\n @include box-shadow(inset 0 -1px 0 $global-border-color-dark);\n }\n }\n }\n\n @import '../_partials/_single/reward';\n @import '../_partials/_single/footer';\n @import '../_partials/_single/comment';\n}\n\n.lg-toolbar .lg-icon::after {\n color: #999;\n}\n", + ".toc {\n .toc-title {\n font-size: $toc-title-font-size;\n font-weight: bold;\n text-transform: uppercase;\n }\n\n .toc-content {\n font-size: $toc-content-font-size;\n\n ul {\n text-indent: -0.8em;\n padding-left: 0.8em;\n list-style: none;\n\n a:first-child::before {\n content: '|';\n font-weight: bolder;\n margin-right: 0.5em;\n position: relative;\n bottom: 2px;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n\n ul {\n padding-left: 1em;\n }\n }\n\n ol {\n margin: 0;\n padding-left: 2.25em;\n\n ol {\n padding-left: 1.25em;\n }\n\n li:has(> a:hover)::marker {\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n }\n }\n\n ruby {\n background: $code-background-color;\n\n rt {\n color: $global-font-secondary-color;\n }\n\n [data-theme='dark'] & {\n background: $code-background-color-dark;\n\n rt {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n#toc-auto {\n display: block;\n position: sticky;\n top: calc(#{$header-height} + var(--#{$prefix}breadcrumb-height));\n box-sizing: border-box;\n visibility: hidden;\n @include overflow-wrap(break-word);\n @include blur;\n @extend .print-d-none;\n\n [data-header-desktop='normal'] & {\n --#{$prefix}scroll-mt: #{$global-scroll-margin-top};\n }\n\n .toc-title {\n margin-block: 0 0.5em;\n cursor: pointer;\n @include user-select(none);\n\n &::before {\n content: '|';\n font-weight: bolder;\n margin-right: 0.5em;\n position: relative;\n bottom: 2px;\n color: $global-border-color;\n\n [data-theme='dark'] & {\n color: $global-border-color-dark;\n }\n }\n\n i.toc-icon {\n @include transition(transform 0.2s ease);\n }\n }\n\n &.toc-hidden i.toc-icon {\n @include transform(rotate(-90deg));\n @include transition(transform 0.2s ease);\n }\n\n .toc-content {\n overflow-y: scroll;\n max-height: calc(100vh - #{2*$header-height});\n \n &::-webkit-scrollbar {\n width: 0;\n }\n\n &.always-active ul,\n &.always-active ol {\n display: block;\n }\n\n > nav > ul {\n margin: 0;\n }\n\n li.has-active {\n &::marker {\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n\n &:has(> .active)::marker {\n font-weight: bold;\n }\n\n > a {\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n }\n\n // for unordered list automatically collapsed\n ul {\n ul {\n display: none;\n }\n\n .has-active > ul {\n display: block;\n }\n\n a.active::before {\n color: $single-link-hover-color;\n\n [data-theme='dark'] & {\n color: $single-link-hover-color-dark;\n }\n }\n }\n\n // for ordered list automatically collapsed\n ol {\n ol {\n display: none;\n }\n\n .has-active > ol {\n display: block;\n }\n }\n\n a.active {\n font-weight: bold;\n }\n }\n}\n\n#toc-static {\n display: none;\n margin: 0.8em 0;\n\n &[data-kept='true'] {\n display: block;\n }\n\n .toc-title {\n display: flex;\n justify-content: space-between;\n line-height: 2em;\n padding: 0 0.75em;\n background: darken($code-background-color, 3%);\n\n [data-theme='dark'] & {\n background: darken($code-background-color-dark, 6%);\n }\n }\n\n .toc-content {\n background-color: $code-background-color;\n\n > nav {\n > ul {\n margin: 0;\n padding: 0.4em 1em 0.4em 1.8em;\n\n a:hover {\n font-weight: bold;\n\n &::before {\n color: $single-link-hover-color;\n \n [data-theme='dark'] & {\n color: $single-link-hover-color-dark;\n }\n }\n }\n }\n \n > ol {\n margin: 0;\n padding: 0.4em 1em 0.4em 2.25em;\n\n li:has(> a:hover)::marker,\n a:hover {\n font-weight: bold;\n }\n }\n }\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n }\n\n &.open {\n .toc-title {\n background: darken($code-background-color, 6%);\n\n [data-theme='dark'] & {\n background: darken($code-background-color-dark, 3%);\n }\n }\n }\n}\n", + ".fixit-decryptor-container {\n font-family: $global-font-family;\n text-align: center;\n margin-top: 3rem;\n\n .fixit-encryptor-shortcode & {\n margin-top: 1rem;\n }\n\n #fixit-decryptor-input,\n .fixit-decryptor-input,\n .fixit-encryptor-btn {\n display: inline-block;\n box-sizing: border-box;\n outline: none;\n color: $global-font-color;\n border: 1px solid darken($global-border-color, 15%);\n border-radius: $global-border-radius;\n @include transition(all 0.1s ease-out);\n box-shadow: 0px 0px 5px 0px darken($global-border-color, 15%);\n\n &:active,\n &:focus,\n &:hover {\n color: darken($global-link-hover-color, 6%);\n border-color: $global-link-hover-color;\n box-shadow: 0px 0px 5px 0px lighten($global-link-hover-color, 20%);\n\n [data-theme='dark'] & {\n color: lighten($global-link-hover-color-dark, 6%);\n border-color: $global-link-hover-color-dark;\n box-shadow: 0px 0px 5px 0px darken($global-link-hover-color-dark, 20%);\n }\n }\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n border-color: lighten($global-border-color-dark, 15%);\n box-shadow: 0px 0px 5px 0px lighten($global-border-color-dark, 15%);\n }\n }\n\n #fixit-decryptor-input,\n .fixit-decryptor-input {\n width: clamp(50%, 400px, 100%);\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n background-color: $global-background-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n }\n\n .fixit-encryptor-btn {\n cursor: pointer;\n @include transition(all 0.1s ease-out);\n padding: 0.6rem 1rem;\n\n background-color: $header-background-color;\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n }\n}\n\n.encrypted-hidden {\n display: none;\n}\n", + "// Collection Navigation\n.collection-card {\n font-size: 0.875rem;\n background-color: darken($global-background-color, 3%);\n margin-block: 2rem -1rem;\n padding: 1rem 1.25rem;\n position: relative;\n @include border-radius($global-border-radius * 1.5);\n @include user-select(none);\n @extend .print-d-none;\n\n [data-theme='dark'] & {\n background-color: lighten($global-background-color-dark, 3%);\n }\n\n &:has(.collection-nav-item:nth-child(2))::before {\n content: '';\n position: absolute;\n left: 50%;\n bottom: 0.75rem;\n width: 1px;\n height: 2rem;\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.05) 50%, rgba(0, 0, 0, 0.03) 100%);\n\n [data-theme='dark'] & {\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 0.03),\n rgba(255, 255, 255, 0.05) 50%,\n rgba(255, 255, 255, 0.03) 100%\n );\n }\n }\n\n .collection-title {\n @include link(false, false);\n }\n\n .collection-nav {\n display: flex;\n justify-content: space-between;\n gap: 1rem;\n\n &:not(:empty) {\n margin-top: 0.5rem;\n }\n\n .collection-nav-item {\n flex-grow: 1;\n max-width: calc(50% - 0.5rem);\n font-weight: 500;\n display: flex;\n align-items: center;\n @include transition(all 0.3s ease-out);\n\n &:only-child {\n max-width: 100%;\n }\n\n i {\n flex-shrink: 0;\n }\n\n span {\n flex-grow: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &[rel='next'] {\n text-align: right;\n }\n\n &[rel='prev']:hover {\n @include transform(translateX(-4px));\n }\n\n &[rel='next']:hover {\n @include transform(translateX(4px));\n }\n }\n }\n}\n\n// Collection aside container\n.aside-collection {\n position: sticky;\n top: calc(#{$header-height} + var(--#{$prefix}breadcrumb-height));\n box-sizing: border-box;\n @include overflow-wrap(break-word);\n @include blur;\n @extend .print-d-none;\n}\n\n// Collection List\n.collection-details {\n &:not(:last-of-type) {\n margin-bottom: 0.5rem;\n }\n\n &.open {\n .collection-summary {\n background-color: darken($global-background-color, 4%);\n\n [data-theme='dark'] & {\n background-color: lighten($global-background-color-dark, 4%);\n }\n }\n }\n\n .collection-summary {\n display: flex;\n align-items: baseline;\n gap: 0.25em;\n padding: 0.2em 0.5em;\n background-color: darken($global-background-color, 3%);\n\n [data-theme='dark'] & {\n background-color: lighten($global-background-color-dark, 3%);\n }\n \n > i.fa-layer-group {\n flex-shrink: 0;\n }\n\n .collection-name {\n flex-grow: 1;\n font-weight: bold;\n\n &::before {\n content: attr(data-collections) 'ใƒป';\n }\n }\n\n .collection-count {\n flex-shrink: 0;\n @extend .text-secondary;\n }\n\n .details-icon {\n flex-shrink: 0;\n }\n\n @include user-select(none);\n }\n\n .collection-content {\n font-size: $toc-content-font-size;\n background-color: darken($global-background-color, 2%);\n\n [data-theme='dark'] & {\n background-color: lighten($global-background-color-dark, 2%);\n }\n\n .collection-list {\n margin: 0;\n padding-inline: 1.6em 0.8em;\n padding-block: 0.4em;\n text-indent: -0.8em;\n list-style: none;\n overflow-y: scroll;\n max-height: 60vh;\n\n &::-webkit-scrollbar {\n width: 0;\n }\n\n .collection-item > a::before,\n .collection-item > span::before {\n content: '|';\n font-weight: 600;\n margin-right: 0.5em;\n position: relative;\n bottom: 2px;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n }\n\n .collection-item > .active {\n font-weight: bold;\n color: $single-link-color;\n\n [data-theme='dark'] & {\n color: $single-link-color-dark;\n }\n\n &::before {\n color: $single-link-hover-color;\n \n [data-theme='dark'] & {\n color: $single-link-hover-color-dark;\n }\n }\n }\n }\n\n .collection-nav-simple {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5em;\n background-color: darken($global-background-color, 3%);\n\n [data-theme='dark'] & {\n background-color: lighten($global-background-color-dark, 3%);\n }\n\n a.collection-nav-item {\n padding-inline: 2px;\n border-radius: 50%;\n @include transition(background-color 0.3s ease-out);\n\n &:hover {\n background-color: darken($global-background-color, 10%);\n\n [data-theme='dark'] & {\n background-color: lighten($global-background-color-dark, 10%);\n }\n }\n }\n\n > i.collection-nav-item {\n padding: 4px 2px;\n cursor: not-allowed;\n }\n }\n }\n}\n", + "// inline code\ncode {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: $code-font-size;\n font-family: $code-font-family;\n color: $code-color;\n background-color: rgba(175, 184, 193, 0.2);\n text-decoration: inherit;\n @include border-radius($global-border-radius);\n @include overflow-wrap(break-word);\n @include line-break(auto);\n\n [data-theme='dark'] & {\n color: $code-color-dark;\n background-color: rgba(99, 110, 123, 0.4);\n }\n}\n\n// indented code\npre {\n margin: 0;\n line-height: 1.45em;\n padding: 0.5rem;\n overflow: auto;\n font-size: $code-font-size;\n font-family: $code-font-family;\n @include border-radius($global-border-radius);\n @include tab-size(4);\n\n background-color: $code-background-color;\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n\n code {\n padding: 0;\n background-color: transparent;\n @include border-radius(0);\n @include max-content(min-width);\n\n [data-theme='dark'] & {\n background-color: transparent;\n }\n }\n\n img {\n min-height: 1em;\n max-height: 1.2em;\n vertical-align: text-bottom;\n }\n}\n\n.highlight,\n.gist {\n font-size: $code-font-size;\n font-family: $code-font-family;\n\n .table-wrapper {\n > table,\n > table thead,\n > table tr,\n > table td {\n margin: 0;\n padding: 0;\n border: none !important;\n white-space: nowrap;\n }\n }\n}\n\n// block fenced code\n.highlight {\n margin: 0.5rem 0;\n\n > .chroma {\n position: relative;\n\n .code-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n font-family: $global-font-family;\n font-weight: bold;\n line-height: 1.4em;\n color: $code-info-color;\n background-color: darken($code-background-color, 3%);\n @include border-radius($global-border-radius);\n @include transition(border-radius 0.2s ease);\n\n [data-theme='dark'] & {\n color: $code-info-color-dark;\n background-color: darken($code-background-color-dark, 6%);\n }\n\n &:hover {\n cursor: pointer;\n }\n\n .ellipses,\n .edit,\n .copy {\n @extend .print-d-none;\n }\n\n .code-title {\n width: 100%;\n padding: 0.4rem;\n\n .arrow {\n padding: 0 0.2rem;\n @include transition(transform 0.2s ease);\n }\n\n .title-inner {\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n }\n }\n\n .code-title::after {\n padding-left: 0.2rem;\n content: 'Code';\n }\n\n .ellipses {\n padding: 0.4rem;\n }\n\n .edit,\n .copy {\n display: none;\n padding: 0.4rem;\n\n &:hover {\n cursor: pointer;\n color: $global-link-hover-color;\n\n [data-theme='dark'] & {\n color: $global-link-hover-color-dark;\n }\n }\n }\n\n @each $type, $text in $code-type-map {\n &.language-#{$type} .code-title::after {\n content: $text;\n }\n }\n }\n\n // delayed loading table-wrapper\n .table-wrapper {\n max-height: 0;\n overflow: hidden;\n @include border-radius(0 0 $global-border-radius $global-border-radius);\n @include details-transition-open;\n }\n\n table {\n border-spacing: 0;\n width: auto;\n overflow: auto;\n display: block;\n background-color: $code-background-color;\n\n [data-theme='dark'] & {\n background-color: $code-background-color-dark;\n }\n\n td {\n vertical-align: top;\n padding: 0;\n }\n\n pre {\n padding: 0.25rem;\n outline-offset: -1px;\n @include border-radius(0);\n }\n\n /* lineNumbersInTable=false */\n .ln {\n min-width: 1.25rem;\n }\n\n // ========== lineNumbersInTable ========== //\n // line numbers\n .lntd:first-child {\n min-width: 1.6rem;\n text-align: right;\n position: sticky;\n left: 0;\n\n pre {\n @include user-select(none);\n }\n }\n // code content\n .lntd:last-child {\n width: 100%;\n\n pre {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n code {\n width: 100%;\n }\n }\n // ========== lineNumbersInTable ========== //\n }\n\n &.open {\n .code-header {\n background-color: darken($code-background-color, 6%);\n @include border-radius($global-border-radius $global-border-radius 0 0);\n\n [data-theme='dark'] & {\n background-color: darken($code-background-color-dark, 3%);\n }\n }\n\n .table-wrapper {\n max-height: 100%;\n @include details-transition-close;\n }\n\n .arrow {\n @include transform(rotate(90deg));\n }\n\n .ellipses {\n display: none;\n }\n\n .edit,\n .copy {\n display: inline;\n }\n }\n }\n\n /* LineHighlight */\n .hl {\n display: block;\n background-color: $code-hightlight-color;\n box-shadow: -0.5rem 0 0 $code-hightlight-color, 0.5rem 0 0 $code-hightlight-color;\n\n [data-theme='dark'] & {\n background-color: $code-hightlight-color-dark;\n box-shadow: -0.5rem 0 0 $code-hightlight-color-dark, 0.5rem 0 0 $code-hightlight-color-dark;\n }\n }\n /* GenericUnderline */\n .gl {\n text-decoration: underline;\n }\n /* GenericStrong */\n .gs {\n font-weight: bold;\n }\n /* GenericEmph */\n .ge {\n font-style: italic;\n }\n /* lineNumbersInTable=false */\n .ln {\n padding-right: 0.5rem;\n display: inline-block;\n min-width: 1.1rem;\n text-align: right;\n }\n /* LineNumbers */\n .lnt,\n .ln {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n // ========== Higtlight Color ========== //\n\n /* Error */\n .err {\n font-style: italic;\n border-bottom: 1px dotted $code-error-color;\n }\n /* GenericDeleted */\n .gd {\n background-color: #ffebe9;\n\n [data-theme='dark'] & {\n background-color: #78191b;\n }\n }\n /* GenericInserted */\n .gi {\n background-color: #dafbe1;\n\n [data-theme='dark'] & {\n background-color: #1b4721;\n }\n }\n\n @each $class, $color in $code-highlight-color-map {\n .#{$class} {\n color: $color;\n }\n }\n\n [data-theme='dark'] & {\n @each $class, $color in $code-highlight-color-map-dark {\n .#{$class} {\n color: $color;\n }\n }\n }\n // ========== Higtlight Color ========== //\n}\n\n// gist shortcode\n.gist {\n .gist-file,\n .gist-data,\n .gist-meta {\n border: none;\n }\n\n .gist-data {\n background-color: transparent;\n }\n\n .gist-meta {\n padding: 0.4rem 0.8rem;\n @include link(false, false);\n background-color: darken($code-background-color, 5%);\n\n [data-theme='dark'] & {\n background-color: darken($code-background-color-dark, 5%);\n }\n }\n\n .table-wrapper {\n .highlight,\n &::-webkit-scrollbar {\n background-color: #f6f8fa;\n\n [data-theme='dark'] & {\n background-color: #2d333b;\n }\n }\n }\n\n [data-theme='dark'] & {\n @import './github-dark-dimmed';\n }\n}\n", "/**\n * Theme: GitHub Dark Dimmed\n * Description: Dark Dimmed theme as seen on github.com\n * Author: github.com\n * Maintainer: https://github.com/hugo-fixit/FixIt\n * Updated: 2022-03-01\n */\n& {\n --color-fg-default: #adbac7;\n --color-prettylights-syntax-comment: #768390;\n --color-prettylights-syntax-constant: #6cb6ff;\n --color-prettylights-syntax-entity: #dcbdfb;\n --color-prettylights-syntax-storage-modifier-import: #adbac7;\n --color-prettylights-syntax-entity-tag: #8ddb8c;\n --color-prettylights-syntax-keyword: #f47067;\n --color-prettylights-syntax-string: #96d0ff;\n --color-prettylights-syntax-variable: #f69d50;\n --color-prettylights-syntax-brackethighlighter-unmatched: #e5534b;\n --color-prettylights-syntax-invalid-illegal-text: #cdd9e5;\n --color-prettylights-syntax-invalid-illegal-bg: #922323;\n --color-prettylights-syntax-carriage-return-text: #cdd9e5;\n --color-prettylights-syntax-carriage-return-bg: #ad2e2c;\n --color-prettylights-syntax-string-regexp: #8ddb8c;\n --color-prettylights-syntax-markup-list: #eac55f;\n --color-prettylights-syntax-markup-heading: #316dca;\n --color-prettylights-syntax-markup-italic: #adbac7;\n --color-prettylights-syntax-markup-bold: #adbac7;\n --color-prettylights-syntax-markup-deleted-text: #ffd8d3;\n --color-prettylights-syntax-markup-deleted-bg: #78191b;\n --color-prettylights-syntax-markup-inserted-text: #b4f1b4;\n --color-prettylights-syntax-markup-inserted-bg: #1b4721;\n --color-prettylights-syntax-markup-changed-text: #ffddb0;\n --color-prettylights-syntax-markup-changed-bg: #682d0f;\n --color-prettylights-syntax-markup-ignored-text: #adbac7;\n --color-prettylights-syntax-markup-ignored-bg: #255ab2;\n --color-prettylights-syntax-meta-diff-range: #dcbdfb;\n --color-prettylights-syntax-brackethighlighter-angle: #768390;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #545d68;\n --color-prettylights-syntax-constant-other-reference-link: #96d0ff;\n\n .blob-num,\n .blob-code-inner {\n color: val(--color-fg-default);\n }\n\n .pl-c /* comment, punctuation.definition.comment, string.comment */ {\n color: var(--color-prettylights-syntax-comment);\n }\n\n .pl-c1 /* constant, entity.name.constant, variable.other.constant, variable.language, support, meta.property-name, support.constant, support.variable, meta.module-reference, markup.raw, meta.diff.header, meta.output */,\n .pl-s .pl-v /* string variable */ {\n color: var(--color-prettylights-syntax-constant);\n }\n\n .pl-e /* entity */,\n .pl-en /* entity.name */ {\n color: var(--color-prettylights-syntax-entity);\n }\n\n .pl-smi /* variable.parameter.function, storage.modifier.package, storage.modifier.import, storage.type.java, variable.other */,\n .pl-s .pl-s1 /* string source */ {\n color: var(--color-prettylights-syntax-storage-modifier-import);\n }\n\n .pl-ent /* entity.name.tag, markup.quote */ {\n color: var(--color-prettylights-syntax-entity-tag);\n }\n\n .pl-k /* keyword, storage, storage.type */ {\n color: var(--color-prettylights-syntax-keyword);\n }\n\n .pl-s /* string */,\n .pl-pds /* punctuation.definition.string, source.regexp, string.regexp.character-class */,\n .pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */,\n .pl-sr /* string.regexp */,\n .pl-sr .pl-cce /* string.regexp constant.character.escape */,\n .pl-sr .pl-sre /* string.regexp source.ruby.embedded */,\n .pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */ {\n color: var(--color-prettylights-syntax-string);\n }\n\n .pl-v /* variable */,\n .pl-smw /* sublimelinter.mark.warning */ {\n color: var(--color-prettylights-syntax-variable);\n }\n\n .pl-bu /* invalid.broken, invalid.deprecated, invalid.unimplemented, message.error, brackethighlighter.unmatched, sublimelinter.mark.error */ {\n color: var(--color-prettylights-syntax-brackethighlighter-unmatched);\n }\n\n .pl-ii /* invalid.illegal */ {\n color: var(--color-prettylights-syntax-invalid-illegal-text);\n background-color: var(--color-prettylights-syntax-invalid-illegal-bg);\n }\n\n .pl-c2 /* carriage-return */ {\n color: var(--color-prettylights-syntax-carriage-return-text);\n background-color: var(--color-prettylights-syntax-carriage-return-bg);\n }\n\n .pl-c2::before /* carriage-return */ {\n content: '^M';\n }\n\n .pl-sr .pl-cce /* string.regexp constant.character.escape */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-string-regexp);\n }\n\n .pl-ml /* markup.list */ {\n color: var(--color-prettylights-syntax-markup-list);\n }\n\n .pl-mh /* markup.heading */,\n .pl-mh .pl-en /* markup.heading entity.name */,\n .pl-ms /* meta.separator */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-markup-heading);\n }\n\n .pl-mi /* markup.italic */ {\n font-style: italic;\n color: var(--color-prettylights-syntax-markup-italic);\n }\n\n .pl-mb /* markup.bold */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-markup-bold);\n }\n\n .pl-md /* markup.deleted, meta.diff.header.from-file, punctuation.definition.deleted */ {\n color: var(--color-prettylights-syntax-markup-deleted-text);\n background-color: var(--color-prettylights-syntax-markup-deleted-bg);\n }\n\n .pl-mi1 /* markup.inserted, meta.diff.header.to-file, punctuation.definition.inserted */ {\n color: var(--color-prettylights-syntax-markup-inserted-text);\n background-color: var(--color-prettylights-syntax-markup-inserted-bg);\n }\n\n .pl-mc /* markup.changed, punctuation.definition.changed */ {\n color: var(--color-prettylights-syntax-markup-changed-text);\n background-color: var(--color-prettylights-syntax-markup-changed-bg);\n }\n\n .pl-mi2 /* markup.ignored, markup.untracked */ {\n color: var(--color-prettylights-syntax-markup-ignored-text);\n background-color: var(--color-prettylights-syntax-markup-ignored-bg);\n }\n\n .pl-mdr /* meta.diff.range */ {\n font-weight: bold;\n color: var(--color-prettylights-syntax-meta-diff-range);\n }\n\n .pl-ba /* brackethighlighter.tag, brackethighlighter.curly, brackethighlighter.round, brackethighlighter.square, brackethighlighter.angle, brackethighlighter.quote */ {\n color: var(--color-prettylights-syntax-brackethighlighter-angle);\n }\n\n .pl-sg /* sublimelinter.gutter-mark */ {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n }\n\n .pl-corl /* constant.other.reference.link, string.other.link */ {\n text-decoration: underline;\n color: var(--color-prettylights-syntax-constant-other-reference-link);\n }\n}\n", - "@import '_admonition';\n@import '_bilibili';\n@import '_cardlink';\n@import '_center-quote';\n@import '_echarts';\n@import '_instagram';\n@import '_mapbox';\n", - ".admonition {\n position: relative;\n margin: 1rem 0;\n padding: 0 0.75rem;\n background-color: map-get($admonition-background-color-map, 'note');\n border-left: 0.25rem solid map-get($admonition-color-map, 'note');\n overflow: auto;\n @include border-radius($global-border-radius);\n\n .admonition-title {\n font-weight: bold;\n margin: 0 -0.75rem;\n padding: 0.25rem 1.8rem;\n border-bottom: 1px solid map-get($admonition-background-color-map, 'note');\n background-color: opacify(map-get($admonition-background-color-map, 'note'), 0.15);\n @include border-radius(0);\n }\n\n &.open .admonition-title {\n background-color: map-get($admonition-background-color-map, 'note');\n }\n\n .admonition-content {\n padding: 0.5rem 0;\n }\n\n i.icon {\n font-size: 0.85rem;\n color: map-get($admonition-color-map, 'note');\n position: absolute;\n top: 0.6rem;\n left: 0.4rem;\n }\n\n i.details-icon {\n position: absolute;\n top: 0.6rem;\n right: 0.3rem;\n }\n\n @each $type, $color in $admonition-color-map {\n &.#{$type} {\n border-left-color: $color;\n\n i.icon {\n color: $color;\n }\n }\n }\n\n @each $type, $color in $admonition-background-color-map {\n &.#{$type} {\n background-color: $color;\n\n .admonition-title {\n border-bottom-color: $color;\n background-color: opacify($color, 0.15);\n }\n\n &.open .admonition-title {\n background-color: $color;\n }\n }\n }\n\n &:last-child {\n margin-bottom: 0.75rem;\n }\n}\n", + "@import '_admonition';\n@import '_bilibili';\n@import '_cardlink';\n@import '_center-quote';\n@import '_echarts';\n@import '_instagram';\n@import '_mapbox';\n@import '_mermaid';\n", + ".admonition {\n position: relative;\n margin: 1rem 0;\n padding: 0 0.75rem;\n border-left: .25rem solid;\n overflow: auto;\n @include border-radius($global-border-radius);\n\n .admonition-title {\n font-weight: bold;\n margin: 0 -0.75rem;\n padding: 0.25rem 1.8rem;\n border-bottom: 1px solid;\n @include border-radius(0);\n }\n\n .admonition-content {\n padding: 0.5rem 0;\n }\n\n i.icon {\n font-size: 0.85rem;\n position: absolute;\n top: 0.6rem;\n left: 0.4rem;\n }\n\n i.details-icon {\n position: absolute;\n top: 0.6rem;\n right: 0.3rem;\n }\n\n @each $type, $color, $background-color in $admonition-color-map {\n @if $type == 'note' {\n background-color: $background-color;\n border-left-color: $color;\n\n .admonition-title {\n border-bottom-color: $background-color;\n background-color: opacify($background-color, 0.15);\n }\n\n &.open .admonition-title {\n background-color: $background-color;\n }\n\n i.icon {\n color: $color;\n }\n }\n \n @else {\n &.#{$type} {\n background-color: $background-color;\n border-left-color: $color;\n\n .admonition-title {\n border-bottom-color: $background-color;\n background-color: opacify($background-color, 0.15);\n }\n\n &.open .admonition-title {\n background-color: $background-color;\n }\n\n i.icon {\n color: $color;\n }\n }\n }\n }\n\n &:last-child {\n margin-bottom: 0.75rem;\n }\n}\n", ".bilibili {\n position: relative;\n width: 100%;\n height: 0;\n padding-bottom: 75%;\n margin: 3% auto;\n text-align: center;\n\n iframe {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n }\n}\n", "/**\n * Card link style\n * @author @Lruihao https://lruihao.cn\n */\n\n.card-link {\n position: relative;\n display: block;\n margin: 0.5rem auto;\n box-sizing: border-box;\n width: clamp(50%, 400px, 100%);\n max-width: 100%;\n overflow: hidden;\n text-decoration: none;\n border: none;\n @include border-radius(0.75rem);\n}\n\n.cl- {\n &backdrop {\n position: absolute;\n top: 0.75rem;\n bottom: 0.75rem;\n left: 0;\n right: 0;\n background-image: var(--cl-bg-url);\n background-repeat: no-repeat;\n filter: blur(0.5rem);\n opacity: 0.5;\n background-size: contain;\n background-position: center;\n }\n\n &content {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0.75rem;\n background-color: rgba(245, 245, 245, 0.88);\n }\n\n &text {\n overflow: hidden;\n }\n\n &title {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n overflow: hidden;\n max-height: calc(1rem * 1.25 * 2);\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.25;\n color: $global-font-color;\n }\n\n &meta {\n display: flex;\n align-items: center;\n margin-top: 0.25rem;\n font-size: 0.825rem;\n color: $global-font-secondary-color;\n }\n\n &icon-link {\n width: 1rem;\n height: 1rem;\n flex-shrink: 0;\n margin-right: 0.25rem;\n }\n\n &url {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n &icon-globe {\n width: 4rem;\n height: 4rem;\n flex-shrink: 0;\n margin-left: 0.25rem;\n }\n\n [data-theme='dark'] & {\n &content {\n background-color: rgba(61, 62, 65, 0.88);\n }\n\n &title {\n color: $global-font-color-dark;\n }\n\n &meta {\n color: $global-font-secondary-color-dark;\n }\n }\n}\n", ".blockquote-center {\n border-left: none;\n margin: 40px 0;\n padding: 0;\n position: relative;\n text-align: center;\n color: initial;\n\n &::after,\n &::before {\n left: 0;\n line-height: 1;\n opacity: 0.6;\n position: absolute;\n width: 100%;\n }\n\n &::before {\n border-top: 1px solid $global-border-color;\n text-align: left;\n top: -20px;\n content: '\\f10d';\n font-family: 'Font Awesome 5 Free';\n font-weight: 900;\n\n [data-theme='dark'] & {\n border-top-color: $global-border-color-dark;\n }\n }\n\n &::after {\n border-bottom: 1px solid $global-border-color;\n bottom: -20px;\n text-align: right;\n content: '\\f10e';\n font-family: 'Font Awesome 5 Free';\n font-weight: 900;\n\n [data-theme='dark'] & {\n border-bottom-color: $global-border-color-dark;\n }\n }\n}\n", ".echarts {\n margin: 0.5rem 0;\n text-align: center;\n}\n", "iframe.instagram-media {\n [data-theme='dark'] & {\n border: none !important;\n }\n}\n", ".mapbox {\n margin: 0.5rem 0;\n padding: 0.5rem 0;\n @include border-radius($global-border-radius);\n}\n", - ".post-footer {\n margin-top: 3rem;\n\n .post-info {\n border-bottom: 1px solid $global-border-color;\n padding: 1rem 0 0.3rem;\n\n [data-theme='dark'] & {\n border-bottom: 1px solid $global-border-color-dark;\n }\n\n .post-info-line {\n display: flex;\n justify-content: space-between;\n\n .post-info-mod {\n font-size: 0.8em;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n }\n\n .post-info-license {\n font-size: 0.8em;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n }\n\n .post-info-md {\n font-size: 0.8rem;\n width: fit-content;\n\n @include link(false, false);\n\n >span:not(:first-child)::before {\n content: '|';\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n }\n\n .post-info-share {\n a * {\n vertical-align: text-bottom;\n }\n }\n }\n }\n\n .post-info-more {\n padding: 0.3rem 0 1rem;\n display: flex;\n justify-content: space-between;\n font-size: 0.9rem;\n }\n\n .post-tags {\n max-width: 65%;\n\n * {\n display: inline;\n }\n }\n\n .post-nav {\n &::before,\n &::after {\n content: ' ';\n display: table;\n }\n\n & a.prev,\n & a.next {\n font-size: 1rem;\n font-weight: 600;\n @include transition(all 0.3s ease-out);\n }\n\n & a.prev {\n float: left;\n }\n\n & a.prev:hover {\n @include transform(translateX(-4px));\n }\n\n & a.next {\n float: right;\n }\n\n & a.next:hover {\n @include transform(translateX(4px));\n }\n }\n}\n", - "#comments {\n padding: 8rem 0 2rem;\n}\n", + ".mermaid {\n text-align: center;\n\n svg {\n max-width: 100%;\n height: auto; \n }\n}\n", + ".post-reward {\n padding: 1rem;\n text-align: center;\n margin-bottom: -1rem;\n @extend .print-d-none;\n\n &:has(.reward-ways:empty) {\n display: none;\n }\n\n .comment {\n margin: 0.5rem 0;\n font-weight: 500;\n }\n\n .reward-ways {\n display: none;\n }\n\n .reward-input:checked~.reward-ways {\n display: block;\n padding-top: 20px;\n\n div {\n display: inline-block;\n @include user-select(none);\n \n span {\n display: block;\n }\n \n &:hover span[data-animation] {\n animation: var(--animation-reward, jackInTheBox) 0.8s infinite linear;\n // The animation may affect :hover of img in dark mode\n pointer-events: none;\n }\n \n img {\n display: inline-block;\n margin: 0.8em 2em 0;\n max-width: 100%;\n width: $reward-img-width;\n }\n }\n\n // `fixed` mode only supports desktop\n &[data-mode='fixed'] {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n padding: 1rem;\n background-color: $global-background-color;\n @include z-index(2);\n @include border-radius($global-border-radius);\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.2));\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n @include box-shadow(0 0 1.5rem 0 rgba(255, 255, 255, 0.2));\n }\n }\n }\n\n .reward-button {\n display: inline-block;\n box-sizing: border-box;\n cursor: pointer;\n outline: none;\n color: lighten($reward-color, 5%);\n border: 2px solid lighten($reward-color, 10%);\n border-radius: $global-border-radius;\n padding: 0.6rem 1rem;\n background-color: $global-background-color;\n vertical-align: text-top;\n line-height: 1rem;\n @include transition(all 0.3s ease-out);\n\n &:active,\n &:hover {\n color: #ffffff;\n border-color: $reward-color;\n background-color: $reward-color;\n\n [data-theme='dark'] & {\n color: #ffffff;\n border-color: $reward-color-dark;\n background-color: $reward-color-dark;\n }\n }\n\n [data-theme='dark'] & {\n color: $reward-color;\n border-color: lighten($reward-color, 5%);\n background-color: $global-background-color-dark;\n }\n }\n}\n", + ".post-footer {\n margin: 2rem 0;\n\n &~.post-reward {\n margin-block: -2rem 0;\n }\n\n .post-info {\n border-bottom: 1px solid $global-border-color;\n padding: 0.3rem 0;\n\n [data-theme='dark'] & {\n border-bottom: 1px solid $global-border-color-dark;\n }\n\n .post-info-line {\n display: flex;\n justify-content: space-between;\n\n .post-info-mod {\n font-size: 0.8em;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n }\n\n .post-info-license {\n font-size: 0.8em;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n }\n\n .post-info-md {\n font-size: 0.8rem;\n width: fit-content;\n\n @include link(false, false);\n\n >span:not(:first-child)::before {\n content: '|';\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n }\n\n .post-info-share {\n @extend .print-d-none;\n a * {\n vertical-align: text-bottom;\n }\n }\n }\n }\n\n .post-info-more {\n padding: 0.3rem 0;\n display: flex;\n justify-content: space-between;\n font-size: 0.9rem;\n\n section:last-child {\n @extend .print-d-none;\n }\n }\n\n .post-tags {\n max-width: 65%;\n\n * {\n display: inline;\n }\n\n @include link(true, true);\n\n .post-tag:not(:last-child)::after {\n content: ',';\n margin-right: 0.25rem;\n }\n }\n\n .post-nav {\n display: flex;\n justify-content: space-between;\n gap: 1.5rem;\n padding-block: 0.5rem;\n @extend .print-d-none;\n\n .post-nav-item {\n flex: 1;\n font-size: 1rem;\n font-weight: 600;\n @include transition(all 0.3s ease-out);\n\n &[rel='next'] {\n text-align: right;\n }\n\n &[rel='prev']:hover {\n @include transform(translateX(-4px));\n }\n\n &[rel='next']:hover {\n @include transform(translateX(4px));\n }\n }\n }\n}\n", + ">#comments {\n padding: 2rem 0;\n @extend .print-d-none;\n}\n", ".special {\n .single-title,\n .single-subtitle {\n text-align: right;\n }\n}\n", ".archive {\n .single-title {\n padding: 1rem 0 0.5rem;\n margin: 0;\n font-size: 1.6rem;\n font-weight: bold;\n line-height: 140%;\n text-align: right;\n }\n\n .single-subtitle {\n margin: 0.5rem 0;\n font-size: 1.2rem;\n font-weight: normal;\n line-height: 100%;\n text-align: right;\n }\n\n .group-title {\n font-size: 1.2rem;\n margin-top: 1.5rem;\n margin-bottom: 1rem;\n }\n\n @import '../_partials/_archive/terms';\n @import '../_partials/_archive/tags';\n}\n", - ".categories-card {\n margin: 0 auto;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex-direction: row;\n flex-wrap: wrap;\n line-height: 1.6rem;\n\n .card-item {\n font-size: 0.875rem;\n text-align: left;\n width: 45%;\n display: flex;\n align-items: flex-start;\n min-height: 10rem;\n padding: 0 2%;\n position: relative;\n\n &:nth-child(n+3){\n margin-top: 2rem;\n }\n\n .card-item-wrapper {\n width: 100%;\n overflow: hidden;\n\n .card-item-title {\n font-size: 1.2rem;\n font-weight: bold;\n display: inline-block;\n margin-top: 1rem;\n margin-bottom: 0.75rem;\n }\n\n span {\n float: right;\n padding-right: 1rem;\n }\n }\n }\n}\n\n.archive-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n margin: 0.25rem 0 0.25rem 1.5rem;\n}\n\n.archive-item-link {\n min-width: 10%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover {\n color: $global-link-hover-color;\n background-color: transparent;\n }\n\n [data-theme='dark'] & {\n color: $global-link-color-dark;\n\n &:hover {\n color: $global-link-hover-color-dark;\n }\n }\n}\n\n.archive-item-date {\n text-align: right;\n color: $global-font-secondary-color;\n white-space: nowrap;\n font-variant-numeric: tabular-nums lining-nums;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n}\n\n.more-post {\n text-align: right;\n}\n", - ".tag-cloud-tags {\n margin: 10px 0;\n\n @include link(true, true);\n\n a {\n display: inline-block;\n position: relative;\n margin: 5px 10px;\n @include overflow-wrap(break-word);\n @include transition(all ease-out 0.3s);\n\n &:active,\n &:focus,\n &:hover {\n @include transform(scale(1.2));\n }\n\n sup {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n", - ".home {\n .home-profile {\n @include transform(translateY(16vh));\n padding: 0 0 0.5rem;\n text-align: center;\n\n .home-avatar {\n padding: 0.5rem;\n\n img {\n display: inline-block;\n width: 8rem;\n height: auto;\n margin: 0 auto;\n @include border-radius(100%);\n @include box-shadow(0 0 0 0.3618em rgba(0, 0, 0, 0.05));\n @include transition(all 0.4s ease);\n\n &:hover {\n position: relative;\n @include transform(translateY(-0.75rem));\n }\n }\n }\n\n .home-title {\n font-size: 1.25rem;\n font-weight: bold;\n margin: 0;\n padding: 0.5rem;\n }\n\n .home-subtitle {\n font-size: 1rem;\n font-weight: normal;\n margin: 0;\n padding: 0.5rem;\n }\n\n .links {\n padding: 0.5rem;\n font-size: 1.5rem;\n\n a * {\n vertical-align: text-bottom;\n }\n\n img {\n height: 1.5rem;\n padding: 0 0.25rem;\n }\n }\n\n .home-disclaimer {\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: normal;\n margin: 0;\n padding: 0.5rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n.home.posts {\n .home-profile {\n @include transform(translateY(0));\n padding-top: 2rem;\n }\n\n .home-avatar img {\n width: 6rem;\n }\n\n .summary {\n padding-top: 1rem;\n padding-bottom: 0.8rem;\n color: $global-font-color;\n border-bottom: 1px dashed $global-border-color;\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n border-bottom: 1px dashed $global-border-color-dark;\n }\n\n .featured-image-preview {\n width: 100%;\n padding: 30% 0 0;\n position: relative;\n margin: 0.6rem auto;\n @include transition(transform 0.4s ease);\n\n img {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n @include object-fit(none);\n }\n\n img.lazyloaded {\n @include object-fit(cover);\n }\n\n &:hover {\n @include transform(scale(1.01));\n }\n }\n\n .single-title {\n font-size: 1.25rem;\n line-height: 140%;\n margin: 0.4rem 0;\n }\n\n .content {\n @include box(vertical);\n -webkit-line-clamp: 3;\n margin-top: 0.3rem;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n @include overflow-wrap(break-word);\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n font-size: 1rem;\n line-height: 1.5;\n display: inline;\n\n &::after {\n content: '\\A';\n white-space: pre;\n }\n }\n\n h2 {\n font-size: 1.125rem;\n }\n\n @include link(false, true);\n\n b,\n strong {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n\n .post-footer {\n margin-top: 0.4rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 0.875rem;\n\n @include link(false, false);\n\n .post-tags {\n padding: 0;\n\n @include link(true, true);\n }\n }\n }\n}\n", + ".categories-card,\n.collections-card {\n margin: 0 auto;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex-direction: row;\n flex-wrap: wrap;\n line-height: 1.6rem;\n\n .card-item {\n font-size: 0.875rem;\n text-align: left;\n width: 45%;\n display: flex;\n align-items: flex-start;\n min-height: 10rem;\n padding: 0 2%;\n position: relative;\n\n &:nth-child(n+3){\n margin-top: 2rem;\n }\n\n .card-item-wrapper {\n width: 100%;\n overflow: hidden;\n\n .card-item-title {\n font-size: 1.2rem;\n font-weight: bold;\n display: inline-block;\n margin-top: 1rem;\n margin-bottom: 0.75rem;\n }\n\n span {\n float: right;\n padding-right: 1rem;\n }\n }\n }\n}\n\n.archive-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n margin: 0.25rem 0 0.25rem 1.5rem;\n}\n\n.archive-item-link {\n min-width: 10%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n &:hover {\n color: $global-link-hover-color;\n background-color: transparent;\n }\n\n [data-theme='dark'] & {\n color: $global-link-color-dark;\n\n &:hover {\n color: $global-link-hover-color-dark;\n }\n }\n}\n\n.archive-item-date {\n text-align: right;\n color: $global-font-secondary-color;\n white-space: nowrap;\n font-variant-numeric: tabular-nums lining-nums;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n}\n\n.more-post {\n text-align: right;\n}\n", + ".tag-cloud-tags {\n margin: 10px 0;\n\n @include link(true, true);\n\n a {\n display: inline-block;\n position: relative;\n margin: 5px 10px;\n @include overflow-wrap(break-word);\n @include transition(all ease-out 0.3s);\n\n &:active,\n &:focus,\n &:hover {\n @include transform(scale(1.2));\n\n sup {\n color: $global-font-color;\n @include transition(all ease-out 0.3s);\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n }\n }\n }\n\n sup {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n@for $grade from 0 through 10 {\n $tag-cloud-color: mix($tag-cloud-end, $tag-cloud-start, $grade * 10);\n $tag-cloud-color-dark: mix($tag-cloud-end-dark, $tag-cloud-start-dark, $grade * 10);\n\n .tag-cloud-#{$grade} {\n color: $tag-cloud-color!important;\n font-size: var(--tag-font);\n margin: 10px!important;\n\n &:active,\n &:focus,\n &:hover {\n color: $global-link-hover-color!important;\n\n [data-theme='dark'] & {\n color: $global-link-hover-color-dark;\n }\n\n sup {\n opacity: 1;\n }\n }\n\n [data-theme='dark'] & {\n color: $tag-cloud-color-dark!important;\n }\n\n sup {\n opacity: 0;\n }\n }\n}\n", + ".home {\n .home-profile {\n text-align: center;\n\n .home-avatar {\n padding: 0.5rem;\n\n img {\n display: inline-block;\n width: 8rem;\n height: auto;\n margin: 0 auto;\n @include border-radius(100%);\n @include box-shadow(0 0 0 0.3618em rgba(0, 0, 0, 0.05));\n @include transition(all 0.4s ease);\n\n [data-theme='dark'] & {\n @include box-shadow(0 0 0 0.3618em rgba(255, 255, 255, 0.05));\n }\n\n &:hover {\n position: relative;\n @include transform(translateY(-0.75rem));\n }\n }\n }\n\n .home-title {\n font-size: 1.25rem;\n font-weight: bold;\n margin: 0;\n\n &:not(:empty) {\n padding: 0.5rem;\n }\n }\n\n .home-subtitle {\n font-size: 1rem;\n font-weight: normal;\n margin: 0;\n padding: 0.5rem;\n }\n\n .links {\n padding: 0.5rem;\n font-size: 1.5rem;\n\n a * {\n vertical-align: text-bottom;\n }\n\n img {\n height: 1.5rem;\n padding: 0 0.25rem;\n }\n }\n\n .home-disclaimer {\n font-size: 1rem;\n line-height: 1.5rem;\n font-weight: normal;\n margin: 0;\n padding: 0.5rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n}\n\n.home.posts {\n .home-profile {\n padding: 2rem 0;\n }\n\n .home-avatar img {\n width: 6rem;\n }\n\n .summary {\n padding-top: 1rem;\n padding-bottom: 0.8rem;\n color: $global-font-color;\n border-bottom: 1px dashed $global-border-color;\n\n &:first-of-type {\n padding-top: 0;\n }\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n border-bottom: 1px dashed $global-border-color-dark;\n }\n\n .featured-image-preview {\n width: 100%;\n padding: 30% 0 0;\n position: relative;\n margin: 0.6rem auto;\n @include transition(transform 0.4s ease);\n\n img {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n @include object-fit(cover);\n }\n\n &:hover {\n @include transform(scale(1.01));\n }\n }\n\n .single-title {\n font-size: 1.25rem;\n line-height: 140%;\n margin: 0.4rem 0;\n }\n\n .content {\n @include box(vertical);\n -webkit-line-clamp: 3;\n margin-top: 0.3rem;\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n @include overflow-wrap(break-word);\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n\n h2,\n h3,\n h4,\n h5,\n h6,\n p {\n font-size: 1rem;\n line-height: 1.5;\n display: inline;\n\n &::after {\n content: '\\A';\n white-space: pre;\n }\n }\n\n h2 {\n font-size: 1.125rem;\n }\n\n @include link(false, true);\n\n b,\n strong {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n }\n\n .post-footer {\n margin-top: 0.4rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: 0.875rem;\n\n @include link(false, false);\n\n .post-tags {\n padding: 0;\n\n @include link(true, true);\n \n .post-tag:not(:last-child)::after {\n content: ',';\n margin-right: 0.25rem;\n }\n }\n }\n }\n}\n", "#content-404 {\n font-size: 1.8rem;\n line-height: 3rem;\n @include transform(translateY(30vh));\n text-align: center;\n}\n", "#content-offline {\n @include transform(translateY(30vh));\n text-align: center;\n\n .offline-title {\n font-size: 3.6rem;\n }\n .offline-subtitle {\n margin: 0.4rem 0;\n font-size: 1rem;\n font-weight: normal;\n font-style: italic;\n line-height: 100%;\n color: #57606a;\n }\n .error-text {\n font-size: 1.2rem;\n }\n}\n", - "/**\n * @Description: Style of layout named 'friends'.\n * @Author: Lruihao \n * @Updated: 2022/3/11 21:36\n */\n\n.friend-links {\n margin-top: 1rem;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n flex-wrap: wrap;\n}\n@media (max-width: 576px) {\n .friend-links {\n justify-content: space-around;\n }\n}\n.friend-link {\n width: 150px;\n height: 200px;\n font-size: 1rem;\n text-align: center;\n background: rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n box-shadow: 3px 3px 5px #aaa;\n @include border-radius($global-border-radius);\n border: none;\n transition-duration: 0.3s;\n margin-bottom: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.friend-link:hover {\n background: #fff;\n transform: scale(1.03);\n box-shadow: 0 0 3px #aaa;\n}\n.friend-avatar {\n object-fit: cover;\n object-position: center;\n width: 100% !important;\n height: 150px !important;\n @include border-radius($global-border-radius);\n margin: 0;\n padding: 0;\n}\n.friend-nickname {\n display: block;\n position: relative;\n color: #2bbc8a;\n font-weight: bold;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 18px;\n margin-bottom: 1rem;\n}\n.friend-nickname:hover {\n color: #d480aa;\n}\n", - "header {\n width: 100%;\n z-index: 150;\n background-color: $header-background-color;\n @include transition(box-shadow 0.3s ease);\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n }\n\n &:hover {\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));\n }\n}\n\n.header-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n}\n\n.header-title {\n font-family: $header-title-font-family;\n font-weight: bold;\n margin-right: 0.5rem;\n min-width: 10%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n @include flex(10);\n\n .logo {\n min-height: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n }\n\n .header-title-text {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n\n .header-subtitle {\n margin-left: 0.25rem;\n font-size: 0.6em;\n }\n}\n\n.menu {\n margin: 0;\n padding: 0;\n\n .menu-item {\n list-style: none;\n\n & .dropdown-icon {\n margin-left: 0.25rem;\n font-size: .875em;\n color: $global-font-color;\n\n [data-theme='dark'] & {\n color: $global-font-color-dark;\n }\n\n &.open::before {\n content: \"\\f078\";\n }\n }\n\n &.active {\n >.menu-link,\n >.nested-item>.menu-link {\n font-weight: bold;\n color: $menu-active-color;\n\n [data-theme='dark'] & {\n color: $menu-active-color-dark;\n }\n }\n }\n\n &.language,\n &.theme-switch {\n cursor: pointer;\n }\n }\n}\n\n.search {\n position: relative;\n\n input {\n color: transparent;\n box-sizing: border-box;\n height: 2.5rem;\n width: 1.25rem;\n @include border-radius(0.5rem);\n border: none;\n outline: none;\n background-color: transparent;\n vertical-align: baseline !important;\n @include transition(width 0.3s ease);\n }\n\n @include placeholder(transparent);\n\n .search-button {\n margin: 0;\n position: absolute;\n left: auto;\n right: 1rem;\n }\n\n .search-toggle {\n left: 0.5rem;\n right: auto;\n\n #header-desktop.open & {\n left: 1rem;\n }\n }\n\n .search-loading {\n display: none;\n }\n\n .search-clear {\n display: none;\n }\n\n .open &,\n &.mobile {\n input {\n color: $global-font-color;\n background-color: $search-background-color;\n padding: 0 2rem 0 2rem;\n }\n\n [data-theme='dark'] & {\n input {\n color: $global-font-color-dark;\n background-color: $search-background-color-dark;\n }\n\n @include placeholder($global-font-secondary-color-dark);\n }\n\n @include placeholder($global-font-secondary-color);\n\n .search-button {\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .search-clear:hover {\n color: #ff6b6b;\n }\n\n .search-toggle:hover {\n cursor: default;\n }\n }\n}\n\n.theme-switch {\n i {\n @include transform(rotate(225deg));\n @include transition(transform 0.4s ease);\n }\n\n &:hover i {\n @include transform(rotate(45deg));\n }\n}\n\n#header-desktop {\n display: block;\n position: sticky;\n top: 0;\n height: $header-height;\n line-height: $header-height;\n box-sizing: border-box;\n\n [data-header-desktop='normal'] & {\n position: static;\n }\n\n nav {\n overflow: hidden;\n white-space: nowrap;\n }\n\n .header-wrapper {\n // use css native function to calculate max value\n padding: 0 2rem 0 MAX(10vh, $header-height);\n height: 100%;\n\n &[data-github-corner='right'] {\n padding-right: $header-height;\n }\n\n .header-title {\n font-size: $header-title-font-size;\n height: 100%;\n }\n\n .menu {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n float: right;\n\n >.menu-item:hover {\n & .sub-menu {\n display: block;\n }\n }\n\n .menu-item {\n padding: 0 0.5rem;\n\n &.delimiter {\n width: 0;\n margin: 0.125rem 0.25rem;\n padding: 0;\n border-left: 1px dashed lighten($global-font-secondary-color, 20%);\n\n [data-theme='dark'] & {\n border-left-color: darken($global-font-secondary-color-dark, 20%);\n }\n }\n\n &.language {\n margin-right: 0;\n }\n }\n\n .sub-menu {\n z-index: 160;\n position: absolute;\n margin: 0;\n padding: 0.25rem 0;\n display: none;\n top: calc(#{$header-height} - 0.75rem);\n border-radius: $global-border-radius;\n border: 1px solid $global-border-color;\n background-color: $header-background-color;\n @include transition(box-shadow 0.3s ease);\n\n [data-theme='dark'] & {\n background-color: $header-background-color-dark;\n border-color: $global-border-color-dark;\n }\n\n @include box-shadow(0 0 1.5rem 0 rgba(0, 0, 0, 0.1));\n\n .menu-item {\n height: $header-height*0.5;\n line-height: $header-height*0.5;\n max-width: 15rem;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n }\n }\n }\n\n &.open .header-wrapper .menu .menu-item.search {\n input {\n width: 24rem;\n }\n }\n}\n\n#header-mobile {\n display: none;\n position: sticky;\n top: 0;\n min-height: $header-height;\n line-height: $header-height;\n\n [data-header-mobile='normal'] & {\n position: static;\n }\n\n .header-container {\n padding: 0;\n margin: 0;\n\n .header-wrapper {\n padding: 0 1rem;\n font-size: 1.125rem;\n @include transition(margin-top 0.3s ease);\n\n .header-title {\n font-size: $header-title-font-size;\n max-width: 80%;\n }\n\n .menu-toggle {\n line-height: 4rem;\n cursor: pointer;\n @include transition(width 0.3s ease);\n\n span {\n display: block;\n background: $global-font-color;\n width: 1.5rem;\n height: 2px;\n @include border-radius(3px);\n @include transition(all 0.3s ease-in-out);\n\n [data-theme='dark'] & {\n background: $global-font-color-dark;\n }\n }\n\n span:nth-child(1) {\n margin-bottom: 0.5rem;\n }\n\n span:nth-child(3) {\n margin-top: 0.5rem;\n }\n\n &.active {\n span:nth-child(1) {\n @include transform(rotate(45deg) translate(0.4rem, 0.5rem));\n }\n\n span:nth-child(2) {\n opacity: 0;\n }\n\n span:nth-child(3) {\n @include transform(rotate(-45deg) translate(0.4rem, -0.5rem));\n }\n }\n }\n }\n\n .menu {\n background: $header-background-color;\n border-top: 2px solid $global-border-color;\n display: none;\n padding: 0.5rem 0 0;\n @include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));\n\n .search-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n padding: ($header-height - 2.5rem) / 2 1rem;\n line-height: 2.5rem;\n }\n\n .search {\n flex-grow: 10;\n\n .algolia-autocomplete,\n input {\n width: 100%;\n }\n }\n\n .search-loading,\n .search-clear {\n right: 0.5rem;\n }\n\n .search-button {\n top: 0;\n }\n\n .search-cancel {\n display: none;\n margin-left: 0.75rem;\n }\n\n .menu-item {\n display: block;\n position: relative;\n line-height: 2.5rem;\n padding: 0 1rem;\n\n &:hover {\n background-color: lighten($global-font-secondary-color, 24%);\n\n [data-theme='dark'] & {\n background-color: darken($global-font-secondary-color-dark, 24%);\n }\n }\n\n .menu-link {\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n @include flex(4);\n }\n\n & .nested-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n\n .menu-link {\n max-width: 80%;\n }\n }\n \n &.theme-switch,\n &.language {\n text-align: center;\n }\n\n .language-select {\n position: absolute;\n opacity: 0;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n }\n }\n\n .sub-menu {\n padding-left: 0;\n display: none;\n\n &.open {\n display: block;\n }\n\n .menu-item:hover {\n background-color: lighten($global-font-secondary-color, 20%);\n\n [data-theme='dark'] & {\n background-color: darken($global-font-secondary-color-dark, 20%);\n }\n }\n }\n\n &.active {\n display: block;\n }\n\n [data-theme='dark'] & {\n background: $header-background-color-dark;\n border-top-color: $global-border-color-dark;\n }\n }\n }\n\n &.open {\n .header-wrapper {\n margin-top: -$header-height;\n }\n\n .menu {\n padding-top: 0;\n border-top: none;\n\n .menu-item {\n display: none;\n }\n\n .search-cancel {\n display: inline;\n }\n }\n }\n}\n\n.search-dropdown {\n position: fixed;\n z-index: 200;\n top: $header-height;\n @include box-shadow(0 0.125rem 0.25rem rgba(0, 0, 0, 0.1));\n\n &.desktop {\n right: 2rem;\n width: 30rem;\n }\n\n &.mobile {\n right: 0;\n width: 100%;\n }\n\n .dropdown-menu {\n right: 0 !important;\n background-color: $global-background-color;\n\n [data-theme='dark'] & {\n background-color: $global-background-color-dark;\n }\n\n .suggestions {\n overflow-y: auto;\n max-height: calc(100vh - #{$header-height});\n\n .suggestion {\n padding: 0.75rem 1rem;\n\n .suggestion-title {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 1rem;\n font-weight: bold;\n max-width: 75%;\n }\n\n .suggestion-date {\n font-size: 0.875rem;\n float: right;\n text-align: right;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n .suggestion-context {\n line-height: 1.25rem;\n @include box(vertical);\n -webkit-line-clamp: 2;\n overflow: hidden;\n text-overflow: ellipsis;\n @include overflow-wrap(break-word);\n color: $global-font-secondary-color;\n\n [data-theme='dark'] & {\n color: $global-font-secondary-color-dark;\n }\n }\n\n em {\n font-style: normal;\n background-color: $selection-color;\n\n [data-theme='dark'] & {\n background-color: $selection-color-dark;\n }\n }\n\n &.cursor {\n background: darken($code-background-color, 5%);\n\n [data-theme='dark'] & {\n background: lighten($code-background-color-dark, 5%);\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n }\n }\n\n .search-empty {\n padding: 1rem;\n text-align: center;\n\n .search-query {\n font-weight: bold;\n\n [data-theme='dark'] & {\n color: #ddd;\n }\n }\n }\n\n .search-footer {\n padding: 0.5rem 1rem;\n float: right;\n font-size: 0.8rem;\n color: $global-font-secondary-color;\n\n [data-theme='dark'] {\n color: $global-font-secondary-color-dark;\n }\n\n @include link(false, false);\n\n a {\n font-size: 1rem;\n }\n }\n }\n}\n", - "footer {\n height: auto;\n width: 100%;\n text-align: center;\n line-height: 1.25rem;\n padding: 1rem 0;\n\n .footer-container {\n font-size: 0.875rem;\n\n .footer-line {\n width: 100%;\n\n .footer-divider:not(:first-child)::before {\n content: '|';\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n\n .fixit-icon {\n top: 0.25em;\n }\n\n .animate-icon {\n color: #dc143c;\n animation: icon-animate 1.33s ease-in-out infinite;\n }\n\n .run-times {\n font-variant-numeric: tabular-nums lining-nums;\n }\n }\n }\n\n @include blur;\n}\n\n@keyframes icon-animate {\n 0%,\n 100% {\n transform: scale(1);\n }\n\n 10%,\n 30% {\n transform: scale(0.9);\n }\n\n 20%,\n 40%,\n 60%,\n 80% {\n transform: scale(1.1);\n }\n\n 50%,\n 70% {\n transform: scale(1.1);\n }\n}\n", - ".pagination {\n display: flex;\n flex-direction: row;\n justify-content: center;\n flex-wrap: wrap;\n list-style: none;\n white-space: nowrap;\n width: 100%;\n padding: 1rem 0;\n\n a {\n font-size: 0.8rem;\n color: $pagination-link-color;\n letter-spacing: 0.1rem;\n font-weight: 700;\n padding: 5px 5px;\n text-decoration: none;\n @include transition(0.3s);\n\n [data-theme='dark'] & {\n color: $pagination-link-color-dark;\n }\n }\n\n li {\n padding: 5px;\n margin: 0 10px;\n box-sizing: border-box;\n position: relative;\n display: inline;\n\n &.disabled {\n display: none;\n }\n\n &:hover a {\n color: $pagination-link-hover-color;\n }\n\n [data-theme='dark'] &:hover a {\n color: $pagination-link-hover-color-dark;\n }\n\n &::before,\n &::after {\n position: absolute;\n content: '';\n width: 0;\n height: 3px;\n background: $pagination-link-hover-color;\n @include transition(0.3s);\n bottom: 0px;\n }\n\n [data-theme='dark'] &::before,\n [data-theme='dark'] &::after {\n background: $pagination-link-hover-color-dark;\n }\n\n &::before {\n left: 50%;\n }\n\n &::after {\n right: 50%;\n }\n\n &:hover {\n &::before,\n &::after {\n width: 50%;\n }\n }\n\n &.active {\n a {\n color: $pagination-link-hover-color;\n }\n\n [data-theme='dark'] & a {\n color: $pagination-link-hover-color-dark;\n }\n\n &::before,\n &::after {\n width: 50%;\n }\n }\n }\n}\n", - "@media only screen and (min-width: 1441px) {\n .page {\n width: 60%;\n\n [data-page-style='wide'] & {\n width: 64%;\n }\n\n [data-page-style='narrow'] & {\n max-width: 800px;\n }\n }\n\n aside {\n width: 20%;\n\n [data-page-style='wide'] & {\n width: 18%;\n }\n\n [data-page-style='narrow'] & {\n width: calc(50% - 400px);\n }\n }\n}\n\n@media only screen and (max-width: 1440px) {\n .page {\n width: 56%;\n\n [data-page-style='wide'] & {\n width: 60%;\n }\n }\n\n aside {\n width: 22%;\n\n [data-page-style='wide'] & {\n width: 20%;\n }\n }\n}\n\n@media only screen and (max-width: 1200px) {\n .page {\n width: 52%;\n\n [data-page-style='wide'] & {\n width: 56%;\n }\n }\n\n aside {\n width: 24%;\n\n [data-page-style='wide'] & {\n width: 22%;\n }\n }\n\n #header-desktop .header-wrapper {\n padding-right: 1rem;\n }\n\n .search-dropdown.desktop {\n right: 1rem;\n }\n}\n\n@media only screen and (max-width: 960px) {\n aside {\n display: none !important;\n }\n\n #toc-static {\n display: block;\n }\n\n .page {\n width: 80% !important;\n }\n\n #header-desktop .header-wrapper {\n padding-left: 1rem;\n }\n}\n\n@media only screen and (max-width: 680px) {\n #header-desktop {\n display: none;\n }\n\n #header-mobile,\n .d-none-desktop {\n display: block;\n }\n\n .d-none-mobile {\n display: none !important;\n }\n\n .page {\n width: 100% !important;\n\n .content {\n [id] {\n [data-header-mobile='normal'] & {\n scroll-margin-top: 0;\n }\n }\n }\n\n .categories-card {\n .card-item {\n width: 100%;\n }\n }\n }\n\n footer {\n .footer-container {\n font-size: 0.618rem;\n }\n }\n \n .pagination .page-item {\n margin: 0 5px;\n }\n}\n\n@media only print {\n @page {\n size: A4 portrait;\n margin: 1.27cm;\n }\n\n .page {\n width: 100% !important;\n padding-top: 0 !important;\n\n .single-title,\n .single-subtitle,\n .post-meta {\n text-align: center;\n }\n\n h1:not(.single-title),\n .page-break-before {\n page-break-before: always;\n }\n\n .page-break-after {\n page-break-after: always;\n }\n }\n\n .print-d-none,\n header,\n footer .footer-line:not(.powered):not(.copyright),\n #toc-auto,\n .comment-visitors,\n .comment-count,\n .code-header>.ellipses,\n .code-header>.edit,\n .code-header>.copy,\n .post-info-share,\n .post-info-more section:last-child,\n .post-nav,\n .fixed-buttons,\n #comments,\n .github-corner {\n display: none !important;\n }\n}\n", - "// ==============================\n// Custom style\n// ่‡ชๅฎšไน‰ๆ ทๅผ\n// ==============================\n\n.home {\n .home-profile {\n @include transform(translateY( 16vh));\n padding: 0 0 .5rem;\n text-align: center;\n \n .home-avatar {\n padding: .5rem;\n \n img {\n display: inline-block;\n width: 8rem;\n height: auto;\n margin: 0 auto;\n @include border-radius(0%);\n @include box-shadow(0 0 0 0);\n @include transition(all 0.4s ease);\n \n &:hover {\n position: relative;\n @include transform(translateY(-.25rem));\n }\n }\n }\n }\n} " + "/**\n * @Description: Style of layout named 'friends'.\n * @Author: Lruihao \n * @Updated: 2022/3/11 21:36\n */\n\n.friend-links {\n margin-top: 1rem;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n flex-wrap: wrap;\n}\n@media (max-width: 576px) {\n .friend-links {\n justify-content: space-around;\n }\n}\n.friend-link {\n width: 150px;\n height: 200px;\n font-size: 1rem;\n text-align: center;\n background: rgba(255, 255, 255, 0.3);\n box-sizing: border-box;\n box-shadow: 3px 3px 5px #aaa;\n @include border-radius($global-border-radius);\n border: none;\n transition-duration: 0.3s;\n margin-bottom: 1rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.friend-link:hover {\n background: #fff;\n @include transform(scale(1.03));\n box-shadow: 0 0 3px #aaa;\n}\n.friend-avatar {\n object-fit: cover;\n object-position: center;\n width: 100% !important;\n height: 150px !important;\n @include border-radius($global-border-radius);\n margin: 0;\n padding: 0;\n}\n.friend-nickname {\n display: block;\n position: relative;\n color: #2bbc8a;\n font-weight: bold;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 18px;\n margin-bottom: 1rem;\n}\n.friend-nickname:hover {\n color: #d480aa;\n}\n", + "@media only screen and (min-width: 1441px) {\n %page-style {\n width: 60%;\n\n [data-page-style='wide'] & {\n width: 64%;\n }\n\n [data-page-style='narrow'] & {\n max-width: 800px;\n }\n }\n}\n\n@media only screen and (max-width: 1440px) {\n %page-style {\n width: 56%;\n\n [data-page-style='wide'] & {\n width: 60%;\n }\n }\n}\n\n@media only screen and (max-width: 1200px) {\n %page-style {\n width: 52%;\n\n [data-page-style='wide'] & {\n width: 56%;\n }\n }\n\n #header-desktop .header-wrapper {\n padding-right: 1rem;\n }\n\n .search-dropdown.desktop {\n right: 1rem;\n }\n}\n\n@media only screen and (max-width: 960px) {\n %page-style {\n width: 80% !important;\n }\n \n aside {\n display: none !important;\n }\n\n #toc-static {\n display: block;\n }\n\n #header-desktop .header-wrapper {\n padding-left: 1rem;\n }\n}\n\n\n@media only screen and (min-width: 681px) {\n .breadcrumb-container.sticky {\n body:not([data-header-desktop='sticky']) & {\n top: 0;\n }\n // adjust the scroll margin top of the content anchors on the page\n body:not([data-header-desktop='auto']) &+.container .content [id] {\n scroll-margin-top: calc(var(--#{$prefix}scroll-mt) + var(--#{$prefix}breadcrumb-height));\n }\n }\n\n [data-header-desktop='normal'] .page .content [id] {\n --#{$prefix}scroll-mt: #{$global-scroll-margin-top};\n }\n}\n\n@media only screen and (max-width: 680px) {\n #header-desktop {\n display: none;\n }\n\n #header-mobile,\n .d-none-desktop {\n display: block;\n }\n\n .d-none-mobile {\n display: none !important;\n }\n\n .breadcrumb-container.sticky {\n body:not([data-header-mobile='sticky']) & {\n top: 0;\n }\n // adjust the scroll margin top of the content anchors on the page\n body:not([data-header-mobile='auto']) &+.container .content [id] {\n scroll-margin-top: calc(var(--#{$prefix}scroll-mt) + var(--#{$prefix}breadcrumb-height));\n }\n }\n\n [data-header-mobile='normal'] .page .content [id] {\n --#{$prefix}scroll-mt: #{$global-scroll-margin-top};\n }\n \n %page-style {\n width: 100% !important;\n }\n\n .page {\n .categories-card,\n .collections-card {\n .card-item {\n width: 100%;\n }\n }\n }\n\n footer {\n .footer-container {\n font-size: 0.618rem;\n }\n }\n\n .pagination .page-item {\n margin: 0 5px;\n }\n}\n\n@media only print {\n @page {\n size: A4 portrait;\n margin: 1.27cm;\n }\n\n .page {\n width: 100% !important;\n padding-top: 0 !important;\n\n &.single {\n .single-title,\n .single-subtitle,\n .post-meta {\n text-align: center;\n }\n }\n\n h1:not(.single-title),\n .page-break-before {\n page-break-before: always;\n }\n\n .page-break-after {\n page-break-after: always;\n }\n }\n\n .print-d-none {\n display: none !important;\n }\n}\n", + "// ==============================\n// Custom style\n// ่‡ชๅฎšไน‰ๆ ทๅผ\n// ==============================\n\n.home .home-profile .home-avatar img {\n\n border-radius: 0;\n box-shadow: none;\n \n}" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/de/404.html b/de/404.html index d81b7a4d7..e1473e642 100644 --- a/de/404.html +++ b/de/404.html @@ -1,229 +1,8 @@ - - - - - - - - 404 Seite nicht gefunden - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - -
- -
- -
-

-

Leider konnte die von Ihnen angeforderte Seite nicht aufgerufen werden.  - -

-
-
0% -
-
- +404 Seite nicht gefunden - mailcow: dockerized - Blog +

Leider konnte die von Ihnen angeforderte Seite nicht aufgerufen werden.  +

0%
\ No newline at end of file diff --git a/de/categories/beta/index.html b/de/categories/beta/index.html index 75de54b94..f1fe26d32 100644 --- a/de/categories/beta/index.html +++ b/de/categories/beta/index.html @@ -1,223 +1,8 @@ - - - - - - - - Beta - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Beta - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/beta/index.xml b/de/categories/beta/index.xml index 13efab9df..26878f3d3 100644 --- a/de/categories/beta/index.xml +++ b/de/categories/beta/index.xml @@ -1,4 +1,4 @@ -Beta on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/beta/Recent content in Beta on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +Beta - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/beta/Beta - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/nightly-tests-bs5/<div class="featured-image"><img loading="eager" src="/images/nightly_thumb.png" alt="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" title="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" referrerpolicy="no-referrer"/></div>Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit! \ No newline at end of file diff --git a/de/categories/beta/page/1/index.html b/de/categories/beta/page/1/index.html index 27c4442bb..e3dfd970d 100644 --- a/de/categories/beta/page/1/index.html +++ b/de/categories/beta/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/beta/ - - - - - - +https://mailcow.email/de/categories/beta/ + \ No newline at end of file diff --git a/de/categories/cve/index.html b/de/categories/cve/index.html new file mode 100644 index 000000000..67c19f6ad --- /dev/null +++ b/de/categories/cve/index.html @@ -0,0 +1,8 @@ +CVE - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/cve/index.xml b/de/categories/cve/index.xml index 091373421..8fac7cb35 100644 --- a/de/categories/cve/index.xml +++ b/de/categories/cve/index.xml @@ -1,3 +1,3 @@ -CVE on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/cve/Recent content in CVE on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p> \ No newline at end of file +CVE - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/cve/CVE - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/cve-2023-34108/Moohoo zusammen!

+

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

+

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

]]>
\ No newline at end of file diff --git a/de/categories/cve/page/1/index.html b/de/categories/cve/page/1/index.html new file mode 100644 index 000000000..bffbe44fa --- /dev/null +++ b/de/categories/cve/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/cve/ + \ No newline at end of file diff --git a/de/categories/dokumentation/index.html b/de/categories/dokumentation/index.html index 7220664de..f9faeb652 100644 --- a/de/categories/dokumentation/index.html +++ b/de/categories/dokumentation/index.html @@ -1,221 +1,8 @@ - - - - - - - - Dokumentation - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Dokumentation - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/dokumentation/index.xml b/de/categories/dokumentation/index.xml index c6ef08f1e..2ca4f960b 100644 --- a/de/categories/dokumentation/index.xml +++ b/de/categories/dokumentation/index.xml @@ -1,4 +1,4 @@ -Dokumentation on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/dokumentation/Recent content in Dokumentation on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) +Dokumentation - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/dokumentation/Dokumentation - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100Autorhttps://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) Wir haben eine aufregende Neuigkeit mit euch zu teilen! Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! diff --git a/de/categories/dokumentation/page/1/index.html b/de/categories/dokumentation/page/1/index.html index 50c4058de..a4b37de86 100644 --- a/de/categories/dokumentation/page/1/index.html +++ b/de/categories/dokumentation/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/dokumentation/ - - - - - - +https://mailcow.email/de/categories/dokumentation/ + \ No newline at end of file diff --git a/de/categories/guides/index.html b/de/categories/guides/index.html new file mode 100644 index 000000000..b8bba656b --- /dev/null +++ b/de/categories/guides/index.html @@ -0,0 +1,8 @@ +Guides - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/guides/index.xml b/de/categories/guides/index.xml index 8a7e92a6f..aedac5097 100644 --- a/de/categories/guides/index.xml +++ b/de/categories/guides/index.xml @@ -1 +1 @@ -Guides on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/guides/Recent content in Guides on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Guides - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/guides/Guides - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Autorhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux" referrerpolicy="no-referrer"/></div>Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux \ No newline at end of file diff --git a/de/categories/guides/page/1/index.html b/de/categories/guides/page/1/index.html new file mode 100644 index 000000000..be5cd56d1 --- /dev/null +++ b/de/categories/guides/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/guides/ + \ No newline at end of file diff --git a/de/categories/hinweis/index.html b/de/categories/hinweis/index.html new file mode 100644 index 000000000..c04ffbebf --- /dev/null +++ b/de/categories/hinweis/index.html @@ -0,0 +1,8 @@ +Hinweis - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/hinweis/index.xml b/de/categories/hinweis/index.xml index 9e4aec535..0833dc3f9 100644 --- a/de/categories/hinweis/index.xml +++ b/de/categories/hinweis/index.xml @@ -1,3 +1,3 @@ -Hinweis on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/hinweis/Recent content in Hinweis on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo zusammen!</strong></p> -<p>Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.</p> -<p>Dieser Blogpost hier dient als Information fรผr interessierte.</p> \ No newline at end of file +Hinweis - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/hinweis/Hinweis - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200Autorhttps://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Moohoo zusammen!

+

Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.

+

Dieser Blogpost hier dient als Information fรผr interessierte.

]]>
\ No newline at end of file diff --git a/de/categories/hinweis/page/1/index.html b/de/categories/hinweis/page/1/index.html new file mode 100644 index 000000000..15100fa7f --- /dev/null +++ b/de/categories/hinweis/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/hinweis/ + \ No newline at end of file diff --git a/de/categories/hotfix/index.html b/de/categories/hotfix/index.html index 2f07387d1..2007706f7 100644 --- a/de/categories/hotfix/index.html +++ b/de/categories/hotfix/index.html @@ -1,226 +1,13 @@ - - - - - - - - Hotfix - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Hotfix - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/hotfix/index.xml b/de/categories/hotfix/index.xml index 370780614..13998d1af 100644 --- a/de/categories/hotfix/index.xml +++ b/de/categories/hotfix/index.xml @@ -1,17 +1,17 @@ -Hotfix on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/hotfix/Recent content in Hotfix on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, +Hotfix - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/hotfix/Hotfix - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/cve-2023-34108/Moohoo zusammen!

+

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

+

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-11a/Moohoo zusammen!

+

Aus gegebenem Anlass (dem 2022-11a 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten 2022-11a 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).

+
+

Wir haben bereits 2022-11b released!

+
]]>
โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-10a/Moohoo zusammen!

+

Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.

+

Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!

]]>
โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. +Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100Autorhttps://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. Bitte Updated eure mailcow so schnell es geht via dem update.
\ No newline at end of file diff --git a/de/categories/hotfix/page/1/index.html b/de/categories/hotfix/page/1/index.html index 66afdf328..9286829f8 100644 --- a/de/categories/hotfix/page/1/index.html +++ b/de/categories/hotfix/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/hotfix/ - - - - - - +https://mailcow.email/de/categories/hotfix/ + \ No newline at end of file diff --git a/de/categories/index.html b/de/categories/index.html index 9b30a26ad..95ca9f761 100644 --- a/de/categories/index.html +++ b/de/categories/index.html @@ -1,305 +1,7 @@ - - - - - - - - Alle Kategorien - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
0% -
-
- +Alle Kategorien - mailcow: dockerized - Blog +

Alle Kategorien 14

0%
\ No newline at end of file diff --git a/de/categories/index.xml b/de/categories/index.xml index 43909ca2a..bbf9b1f5c 100644 --- a/de/categories/index.xml +++ b/de/categories/index.xml @@ -1 +1 @@ -Categories on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/Recent content in Categories on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200Updateshttps://mailcow.email/de/categories/updates/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/updates/Newshttps://mailcow.email/de/categories/news/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/news/Wie schaut's aus?https://mailcow.email/de/categories/wie-schauts-aus/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/wie-schauts-aus/Hinweishttps://mailcow.email/de/categories/hinweis/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/hinweis/Statushttps://mailcow.email/de/categories/status/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/status/CVEhttps://mailcow.email/de/categories/cve/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/cve/Hotfixhttps://mailcow.email/de/categories/hotfix/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/hotfix/Sicherheitshinweisehttps://mailcow.email/de/categories/sicherheitshinweise/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/sicherheitshinweise/Guideshttps://mailcow.email/de/categories/guides/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/categories/guides/Sicherheithttps://mailcow.email/de/categories/sicherheit/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/sicherheit/Betahttps://mailcow.email/de/categories/beta/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/beta/Nightlyhttps://mailcow.email/de/categories/nightly/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/categories/nightly/Dokumentationhttps://mailcow.email/de/categories/dokumentation/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/categories/dokumentation/Social Mediahttps://mailcow.email/de/categories/social-media/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/categories/social-media/ \ No newline at end of file +Categories - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/Categories - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200Updateshttps://mailcow.email/de/categories/updates/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/categories/updates/Newshttps://mailcow.email/de/categories/news/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/categories/news/Wie schaut's aus?https://mailcow.email/de/categories/wie-schauts-aus/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/categories/wie-schauts-aus/Hinweishttps://mailcow.email/de/categories/hinweis/Fri, 28 Jul 2023 16:00:10 +0200Autorhttps://mailcow.email/de/categories/hinweis/Statushttps://mailcow.email/de/categories/status/Fri, 28 Jul 2023 16:00:10 +0200Autorhttps://mailcow.email/de/categories/status/CVEhttps://mailcow.email/de/categories/cve/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/categories/cve/Hotfixhttps://mailcow.email/de/categories/hotfix/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/categories/hotfix/Sicherheitshinweisehttps://mailcow.email/de/categories/sicherheitshinweise/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/categories/sicherheitshinweise/Guideshttps://mailcow.email/de/categories/guides/Fri, 04 Nov 2022 10:00:00 +0100Autorhttps://mailcow.email/de/categories/guides/Sicherheithttps://mailcow.email/de/categories/sicherheit/Fri, 30 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/categories/sicherheit/ \ No newline at end of file diff --git a/de/categories/news/index.html b/de/categories/news/index.html new file mode 100644 index 000000000..a1c1e6d0f --- /dev/null +++ b/de/categories/news/index.html @@ -0,0 +1,14 @@ +News - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/news/index.xml b/de/categories/news/index.xml index 6e4016f40..513f33853 100644 --- a/de/categories/news/index.xml +++ b/de/categories/news/index.xml @@ -1,20 +1,20 @@ -News on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/news/Recent content in News on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-delay/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.</p> -<p>Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt&hellip;</p>๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +News - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/news/News - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-delay/Moohoo zusammen!

+

Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.

+

Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt…

]]>
๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. -Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-open-beta/<p><strong>Moohoo zusammen!</strong></p> -<p>Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:</p> -<p>mailcow&rsquo;s ARM64 Unterstรผtzung kann jetzt im Nightly als <strong>BETA</strong> getestet werden!</p>๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-open-beta/Moohoo zusammen!

+

Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:

+

mailcow’s ARM64 Unterstรผtzung kann jetzt im Nightly als BETA getestet werden!

]]>
๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: -Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:</p> -<p><strong>mailcow bekommt eine ARM64 Unterstรผtzung</strong></p>๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/ldap-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.</p> -<p>Heute dรผrfen wir es endlich in die Welt hinauslassen!</p>๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/letters-mystery/Moohoo zusammen! +Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-announcement/๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommt

Moohoo zusammen!

+

Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:

+

mailcow bekommt eine ARM64 Unterstรผtzung

]]>
๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/ldap-announcement/Moohoo zusammen!

+

Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.

+

Heute dรผrfen wir es endlich in die Welt hinauslassen!

]]>
๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/letters-mystery/๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]Moohoo zusammen! Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. -Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt &ldquo;NUR&rdquo; Bugfixes etc. kommen. -Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:
\ No newline at end of file +Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt “NUR” Bugfixes etc. kommen. +Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:]]>
\ No newline at end of file diff --git a/de/categories/news/page/1/index.html b/de/categories/news/page/1/index.html new file mode 100644 index 000000000..0fec2222d --- /dev/null +++ b/de/categories/news/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/news/ + \ No newline at end of file diff --git a/de/categories/nightly/index.html b/de/categories/nightly/index.html index 831d2938f..084ad65a8 100644 --- a/de/categories/nightly/index.html +++ b/de/categories/nightly/index.html @@ -1,223 +1,8 @@ - - - - - - - - Nightly - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Nightly - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/nightly/index.xml b/de/categories/nightly/index.xml index fe47d0da8..3e94bd33c 100644 --- a/de/categories/nightly/index.xml +++ b/de/categories/nightly/index.xml @@ -1,4 +1,4 @@ -Nightly on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/nightly/Recent content in Nightly on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +Nightly - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/nightly/Nightly - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/nightly-tests-bs5/<div class="featured-image"><img loading="eager" src="/images/nightly_thumb.png" alt="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" title="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" referrerpolicy="no-referrer"/></div>Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit! \ No newline at end of file diff --git a/de/categories/nightly/page/1/index.html b/de/categories/nightly/page/1/index.html index ca35f30ef..7f5ac8216 100644 --- a/de/categories/nightly/page/1/index.html +++ b/de/categories/nightly/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/nightly/ - - - - - - +https://mailcow.email/de/categories/nightly/ + \ No newline at end of file diff --git a/de/categories/sicherheit/index.html b/de/categories/sicherheit/index.html index 299d2499e..492c53230 100644 --- a/de/categories/sicherheit/index.html +++ b/de/categories/sicherheit/index.html @@ -1,224 +1,10 @@ - - - - - - - - Sicherheit - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Sicherheit - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/sicherheit/index.xml b/de/categories/sicherheit/index.xml index 27d4efe14..58d5d2f2e 100644 --- a/de/categories/sicherheit/index.xml +++ b/de/categories/sicherheit/index.xml @@ -1,12 +1,12 @@ -Sicherheit on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/sicherheit/Recent content in Sicherheit on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 30 Sep 2022 10:30:10 +0200๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, +Sicherheit - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/sicherheit/Sicherheit - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 30 Sep 2022 10:30:10 +0200๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-09/ + 2022-09a (Release: 30.09.2022)

ร„nderungen:

+
    +
  • Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit CVE-2022-39261.
    +Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete
  • +
]]>
โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. +Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100Autorhttps://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.
\ No newline at end of file diff --git a/de/categories/sicherheit/page/1/index.html b/de/categories/sicherheit/page/1/index.html index 05c6fa90a..feb8fe2e1 100644 --- a/de/categories/sicherheit/page/1/index.html +++ b/de/categories/sicherheit/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/sicherheit/ - - - - - - +https://mailcow.email/de/categories/sicherheit/ + \ No newline at end of file diff --git a/de/categories/sicherheitshinweise/index.html b/de/categories/sicherheitshinweise/index.html new file mode 100644 index 000000000..bc1f32a21 --- /dev/null +++ b/de/categories/sicherheitshinweise/index.html @@ -0,0 +1,8 @@ +Sicherheitshinweise - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/sicherheitshinweise/index.xml b/de/categories/sicherheitshinweise/index.xml index e4431664d..b0aef2994 100644 --- a/de/categories/sicherheitshinweise/index.xml +++ b/de/categories/sicherheitshinweise/index.xml @@ -1,3 +1,3 @@ -Sicherheitshinweise on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/sicherheitshinweise/Recent content in Sicherheitshinweise on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p> \ No newline at end of file +Sicherheitshinweise - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/sicherheitshinweise/Sicherheitshinweise - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/cve-2023-34108/Moohoo zusammen!

+

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

+

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

]]>
\ No newline at end of file diff --git a/de/categories/sicherheitshinweise/page/1/index.html b/de/categories/sicherheitshinweise/page/1/index.html new file mode 100644 index 000000000..8a82f4c95 --- /dev/null +++ b/de/categories/sicherheitshinweise/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/sicherheitshinweise/ + \ No newline at end of file diff --git a/de/categories/social-media/index.html b/de/categories/social-media/index.html index c39427b52..2d3271770 100644 --- a/de/categories/social-media/index.html +++ b/de/categories/social-media/index.html @@ -1,223 +1,8 @@ - - - - - - - - Social Media - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Social Media - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/social-media/index.xml b/de/categories/social-media/index.xml index 87d680a4d..0c3d86e94 100644 --- a/de/categories/social-media/index.xml +++ b/de/categories/social-media/index.xml @@ -1,4 +1,4 @@ -Social Media on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/social-media/Recent content in Social Media on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 24 Jan 2022 12:33:09 +0100Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-twitter/Moohoo allerseits! +Social Media - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/social-media/Social Media - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 24 Jan 2022 12:33:09 +0100Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100Autorhttps://mailcow.email/de/posts/2022/mailcow-twitter/<div class="featured-image"><img loading="eager" src="/images/twitter_image.png" alt="Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!" title="Ankรผndigung fรผr die mailcow auf Twitter" referrerpolicy="no-referrer"/></div>Moohoo allerseits! Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. diff --git a/de/categories/social-media/page/1/index.html b/de/categories/social-media/page/1/index.html index 27e835459..cc8d5cd67 100644 --- a/de/categories/social-media/page/1/index.html +++ b/de/categories/social-media/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/social-media/ - - - - - - +https://mailcow.email/de/categories/social-media/ + \ No newline at end of file diff --git a/de/categories/status/index.html b/de/categories/status/index.html new file mode 100644 index 000000000..50a7699b4 --- /dev/null +++ b/de/categories/status/index.html @@ -0,0 +1,8 @@ +Status - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/status/index.xml b/de/categories/status/index.xml index a77937e4d..90d2e917c 100644 --- a/de/categories/status/index.xml +++ b/de/categories/status/index.xml @@ -1,3 +1,3 @@ -Status on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/status/Recent content in Status on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo zusammen!</strong></p> -<p>Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.</p> -<p>Dieser Blogpost hier dient als Information fรผr interessierte.</p> \ No newline at end of file +Status - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/status/Status - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200Autorhttps://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Moohoo zusammen!

+

Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.

+

Dieser Blogpost hier dient als Information fรผr interessierte.

]]>
\ No newline at end of file diff --git a/de/categories/status/page/1/index.html b/de/categories/status/page/1/index.html new file mode 100644 index 000000000..3f7bee8ec --- /dev/null +++ b/de/categories/status/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/status/ + \ No newline at end of file diff --git a/de/categories/updates/index.html b/de/categories/updates/index.html index 7d4538de0..511b38c63 100644 --- a/de/categories/updates/index.html +++ b/de/categories/updates/index.html @@ -1,262 +1,26 @@ - - - - - - - - Updates - Kategorie - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
0% -
-
- +Updates - Kategorie - mailcow: dockerized - Blog +

Updates 29

2023

2022

0%
\ No newline at end of file diff --git a/de/categories/updates/index.xml b/de/categories/updates/index.xml index 8ffb36b0b..c7883f526 100644 --- a/de/categories/updates/index.xml +++ b/de/categories/updates/index.xml @@ -1,138 +1,70 @@ -Updates on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/updates/Recent content in Updates on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-12/<h2 id="2023-12a-release-am-29122023">2023-12a (Release am 29.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-am-19122023">2023-12 (Release am 19.12.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. -Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen <code>WATCHDOG_NOTIFY_WEBHOOK</code> und <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in der <code>mailcow.conf</code> entsprechend konfiguriert werden.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-11/<h2 id="2023-11a-release-am-07122023">2023-11a (Release am 07.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-am-21112023">2023-11 (Release am 21.11.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.</p> -<p>Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.</p>๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-10/<h2 id="2023-10a-verรถffentlicht-am-12-oktober-2023">2023-10a (Verรถffentlicht am 12. Oktober 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!</li> -<li>Wir haben die Neustart-Aktion aus dem Abschnitt <code>depends_on</code> (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-verรถffentlicht-am-12-oktober-2023">2023-10 (Verรถffentlicht am 12. Oktober 2023)</h2> -<p><strong><del>Moo</del>Boo hoo zusammen!</strong></p> -<p>Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.</p> -<p>Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat &ldquo;erworben&rdquo; werden und ist nicht in diesem Update enthalten), was den Stack betrifft.</p> -<p>Dieses Mal ziemlich umfangreich!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +Updates - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/updates/Updates - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-12/ + 2023-12a (Release am 29.12.2023)

+ Changelog

+
+

+ 2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

+

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-11/ + 2023-11a (Release am 07.12.2023)

+ Changelog

+
+

+ 2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

+

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

+

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

]]>
๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-10/ + 2023-10a (Verรถffentlicht am 12. Oktober 2023)

+ Changelog

    +
  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • +
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)
  • +
+
+

+ 2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

+

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

+

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

+

Dieses Mal ziemlich umfangreich!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-04/Update 2023-04a Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. +Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-04/<div class="featured-image"><img loading="eager" src="/images/2023/April/netfilter_incremental_de.png" alt="๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A" title="๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A" referrerpolicy="no-referrer"/></div>Update 2023-04aWir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. -Update 2023-04 Moohoo zusammen! +Update 2023-04Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. Legen wir los: -SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-01/Einleitung Moohoo zusammen! +SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-01/EinleitungMoohoo zusammen! Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. -Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-12/Vorwort Moohoo zusammen! -Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! -Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. -Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! -Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! -Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. -Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! -Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! -Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? -Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. -Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! -Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. -Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) -Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! -Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) -Wir haben eine aufregende Neuigkeit mit euch zu teilen! -Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! -Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! -So prรคsentieren wir euch ab heute: -รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert) Hell-/Dunkelmodus Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten) Alles in allem eine Neuauflage der bestehenden Dokumentation.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! -Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. -Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. -Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! -Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) -Dann wollen wir mal loslegen, ja? -Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. -AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. -Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.
\ No newline at end of file +Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:
\ No newline at end of file diff --git a/de/categories/updates/page/1/index.html b/de/categories/updates/page/1/index.html index 9eafcfcb9..0f3724b50 100644 --- a/de/categories/updates/page/1/index.html +++ b/de/categories/updates/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/categories/updates/ - - - - - - +https://mailcow.email/de/categories/updates/ + \ No newline at end of file diff --git a/de/categories/updates/page/2/index.html b/de/categories/updates/page/2/index.html new file mode 100644 index 000000000..4009fbf09 --- /dev/null +++ b/de/categories/updates/page/2/index.html @@ -0,0 +1,16 @@ +Updates - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/wie-schauts-aus/index.html b/de/categories/wie-schauts-aus/index.html new file mode 100644 index 000000000..625a6276b --- /dev/null +++ b/de/categories/wie-schauts-aus/index.html @@ -0,0 +1,8 @@ +Wie schaut's aus? - Kategorie - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/categories/wie-schauts-aus/index.xml b/de/categories/wie-schauts-aus/index.xml index 1ccda8042..deda120df 100644 --- a/de/categories/wie-schauts-aus/index.xml +++ b/de/categories/wie-schauts-aus/index.xml @@ -1,4 +1,4 @@ -Wie schaut's aus? on mailcow: dockerized - Bloghttps://mailcow.email/de/categories/wie-schauts-aus/Recent content in Wie schaut's aus? on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +Wie schaut's aus? - Kategorie - mailcow: dockerized - Bloghttps://mailcow.email/de/categories/wie-schauts-aus/Wie schaut's aus? - Kategorie | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: diff --git a/de/categories/wie-schauts-aus/page/1/index.html b/de/categories/wie-schauts-aus/page/1/index.html new file mode 100644 index 000000000..9b2593183 --- /dev/null +++ b/de/categories/wie-schauts-aus/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/categories/wie-schauts-aus/ + \ No newline at end of file diff --git a/de/imprint/index.html b/de/imprint/index.html index 2eb4db72f..d971943a9 100644 --- a/de/imprint/index.html +++ b/de/imprint/index.html @@ -1,13 +1,5 @@ - - - - - - - - Impressum - mailcow: dockerized - Blog - -Impressum - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
-

Impressum

Angaben gemรครŸ ยง 5 TMG:

-

The Infrastructure Company GmbH
-Parkstrasse 42
-47877 Willich

-

Telefon: 02154-9304 600
-info@tinc.gmbh
-www.tinc.gmbh
-Geschรคftsfรผhrer: Martin Vogt
-Registereintrag: Eintragung im Handelsregister
-Registergericht: Amtsgericht Krefeld
-Registernummer: HRB 15904
-USt-IdNr.: DE308854956

-
0% -
-
- +USt-IdNr.: DE308854956">

Impressum

Angaben gemรครŸ ยง 5 TMG:

The Infrastructure Company GmbH
Parkstrasse 42
47877 Willich

Telefon: 02154-9304 600
info@tinc.gmbh
www.tinc.gmbh
Geschรคftsfรผhrer: Martin Vogt
Registereintrag: Eintragung im Handelsregister
Registergericht: Amtsgericht Krefeld
Registernummer: HRB 15904
USt-IdNr.: DE308854956

0%
\ No newline at end of file diff --git a/de/index.html b/de/index.html index 0ee4e5fdc..414fdd606 100644 --- a/de/index.html +++ b/de/index.html @@ -1,383 +1,43 @@ - - - - - - - - - - - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
Moohoo

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

- -

- ๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungen -

Moohoo zusammen! -Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! -Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. -Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja… wie dem auch sei, dieser Fehler sollte nun behoben worden sein.
-
-

- Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5 -

Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! -Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. -Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. -Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!
-
-

- ๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungen -

Moohoo zusammen! -Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! -Ja… was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? -Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. -Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.
-
-

- โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungen -

Moohoo allerseits! -Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. -Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) -Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.
-
-

- Willkommen auf der neuen mailcow Blogseite! -

Einen wunderschรถnen Guten Tag wรผnschen wir euch! -Herzlich willkommen auf der neuen Blogseite. -Einigen von euch dรผrfte die Seite bereits auf Twitter bzw. auf Telegram im letzten Update Announcement รผber den Weg gestolpert sein, doch jetzt an der Stelle noch mal offiziell! -Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.
-
-

- โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungen -

Moohoo zusammen! -Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.
-
-

- ๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungen -

Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.
-
-

- โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธ -

Hallo zusammen, -wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). -Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. -Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d
-
-

- ๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungen -

2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.
-
-
  • - - 1 - -
  • - - 2 - -
  • - - 3 - -
0% -
-
- +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpoint

2023-12a (Release am 29.12.2023)

Changelog


2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixes

2023-11a (Release am 07.12.2023)

Changelog


2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision A

2023-10a (Verรถffentlicht am 12. Oktober 2023)

Changelog

  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)

2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

Dieses Mal ziemlich umfangreich!

๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)

2023-09Moohoo zusammen! +Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. +Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. +Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.

๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authentication

Moohoo - Gute Nachricht, Freunde! +Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. +Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. +Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. +Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.

๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixes

2023-08 (Release vom 03.08.2023)Moohoo zusammen! +Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. +Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. +Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. +Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.

๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvements

2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Changelog dns_blocklists.cf isn’t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.

๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integration

Moohoo zusammen! +รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. +Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut’s aus? nennen. +Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: +Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.
0%
\ No newline at end of file diff --git a/de/index.xml b/de/index.xml index 1cb8360f9..d3fcd076a 100644 --- a/de/index.xml +++ b/de/index.xml @@ -1,210 +1,52 @@ -mailcow: dockerized - Bloghttps://mailcow.email/de/Recent content on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-12/<h2 id="2023-12a-release-am-29122023">2023-12a (Release am 29.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-am-19122023">2023-12 (Release am 19.12.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. -Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen <code>WATCHDOG_NOTIFY_WEBHOOK</code> und <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in der <code>mailcow.conf</code> entsprechend konfiguriert werden.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-11/<h2 id="2023-11a-release-am-07122023">2023-11a (Release am 07.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-am-21112023">2023-11 (Release am 21.11.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.</p> -<p>Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-delay/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.</p> -<p>Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt&hellip;</p>๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-10/<h2 id="2023-10a-verรถffentlicht-am-12-oktober-2023">2023-10a (Verรถffentlicht am 12. Oktober 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!</li> -<li>Wir haben die Neustart-Aktion aus dem Abschnitt <code>depends_on</code> (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-verรถffentlicht-am-12-oktober-2023">2023-10 (Verรถffentlicht am 12. Oktober 2023)</h2> -<p><strong><del>Moo</del>Boo hoo zusammen!</strong></p> -<p>Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.</p> -<p>Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat &ldquo;erworben&rdquo; werden und ist nicht in diesem Update enthalten), was den Stack betrifft.</p> -<p>Dieses Mal ziemlich umfangreich!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +mailcow: dockerized - Bloghttps://mailcow.email/de/Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’• | Offizieller BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-12/ + 2023-12a (Release am 29.12.2023)

+ Changelog

+
+

+ 2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

+

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-11/ + 2023-11a (Release am 07.12.2023)

+ Changelog

+
+

+ 2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

+

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

+

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-delay/Moohoo zusammen!

+

Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.

+

Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt…

]]>
๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-10/ + 2023-10a (Verรถffentlicht am 12. Oktober 2023)

+ Changelog

    +
  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • +
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)
  • +
+
+

+ 2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

+

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

+

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

+

Dieses Mal ziemlich umfangreich!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! -Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. -Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. -Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. -Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-open-beta/<p><strong>Moohoo zusammen!</strong></p> -<p>Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:</p> -<p>mailcow&rsquo;s ARM64 Unterstรผtzung kann jetzt im Nightly als <strong>BETA</strong> getestet werden!</p>๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! -Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. -Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. -Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. -Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! -รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. -Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. -Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: -Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo zusammen!</strong></p> -<p>Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.</p> -<p>Dieser Blogpost hier dient als Information fรผr interessierte.</p>โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! -Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. -Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:</p> -<p><strong>mailcow bekommt eine ARM64 Unterstรผtzung</strong></p>๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-04/Update 2023-04a Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. -Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. -Update 2023-04 Moohoo zusammen! -Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. -Legen wir los: -SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/ldap-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.</p> -<p>Heute dรผrfen wir es endlich in die Welt hinauslassen!</p>๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/letters-mystery/Moohoo zusammen! -Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. -Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt &ldquo;NUR&rdquo; Bugfixes etc. kommen. -Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-01/Einleitung Moohoo zusammen! -Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! -Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) -Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. -Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-12/Vorwort Moohoo zusammen! -Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! -Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. -Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-feat-alpine/โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>Unsere neuen Demos sind da!https://mailcow.email/de/posts/2022/our-new-demos/Sat, 24 Sep 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/our-new-demos/<p>Einen wunderschรถnen Guten Tag wรผnschen wir euch!</p> -<p>Endlich ist es so weit: Die neuen Demos sind da!</p>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! -Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! -Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. -Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! -Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. -Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. -Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! -Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! -Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? -Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. -Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! -Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. -Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) -Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.Willkommen auf der neuen mailcow Blogseite!https://mailcow.email/de/posts/2022/welcome-new-blog/Fri, 15 Jul 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/welcome-new-blog/Einen wunderschรถnen Guten Tag wรผnschen wir euch! -Herzlich willkommen auf der neuen Blogseite. -Einigen von euch dรผrfte die Seite bereits auf Twitter bzw. auf Telegram im letzten Update Announcement รผber den Weg gestolpert sein, doch jetzt an der Stelle noch mal offiziell! -Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! -Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, -wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). -Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. -Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. -So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. -Bitte Updated eure mailcow so schnell es geht via dem update.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT)https://mailcow.email/de/posts/2022/de-youtube-raspberrypicloud/Wed, 02 Mar 2022 11:57:52 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/de-youtube-raspberrypicloud/Tach zusammen! -Mal kein Update Log sondern eine Empfehlung unsererseits an alle, die neu in die mailcow Welt einsteigen oder ihr Wissen auffrischen wollen. -Solltet ihr eines der Sachen mit Ja beantwortet haben wird die folgende Video Reihe fรผr euch interessant sein: -Schaut generell einfach mal rein, wenn ihr mรถgt und lasst ein bisschen Liebe da, als dank der Vorstellung unseres mailcow Projektes. -Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt!Datenschutzhttps://mailcow.email/de/policy/Wed, 16 Feb 2022 11:44:35 +0100info@servercow.de (Moohoo)https://mailcow.email/de/policy/Vertragsanlage gemรครŸ Auftragsverarbeitung nach Datenschutz-Grundverordnung (EU-DSGVO) In Ihrem Servercow-Profil kann ein Vertrag jederzeit durch Sie erstellt, gelรถscht und verรคndert werden. Bei Fragen stehen wir Ihnen selbstverstรคndlich zur Verfรผgung. -Hinweise zur Datenvorhaltung auf dieser Website Zugriffe auf diese Website werden รผber einen Tag gespeichert, um bรถsartige Aufrufe zu filtern und entsprechende IP-Adressen zu blockieren. Weiterhin dient der zurรผckgegebene Status-Code dem internen Monitoring. Zum Protokoll gehรถrt die IP-Adresse des Besuchers, die Uhrzeit des Aufrufes, der Request sowie der zurรผckgegebene HTTP-Status: 1.Impressumhttps://mailcow.email/de/imprint/Wed, 16 Feb 2022 11:36:02 +0100info@servercow.de (Moohoo)https://mailcow.email/de/imprint/Angaben gemรครŸ ยง 5 TMG: The Infrastructure Company GmbH -Parkstrasse 42 -47877 Willich -Telefon: 02154-9304 600 -info@tinc.gmbh -www.tinc.gmbh -Geschรคftsfรผhrer: Martin Vogt -Registereintrag: Eintragung im Handelsregister -Registergericht: Amtsgericht Krefeld -Registernummer: HRB 15904 -USt-IdNr.: DE308854956๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) -Wir haben eine aufregende Neuigkeit mit euch zu teilen! -Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! -Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! -So prรคsentieren wir euch ab heute: -รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert) Hell-/Dunkelmodus Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten) Alles in allem eine Neuauflage der bestehenden Dokumentation.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-twitter/Moohoo allerseits! -Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! -Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. -Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. -Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten. -Bleibt gesund!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! -Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. -Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. -Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. -Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! -Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! -Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) -Dann wollen wir mal loslegen, ja? -Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. -AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. -Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/de/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moore_october21/Mรคdchen, Jungs und mailcows, -Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress. -Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! -Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. -AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. -Zeit fรผr ein Update! -AndrรฉWo hause ich eine mailcow?https://mailcow.email/de/posts/2021/mailcow_housing_external/Thu, 29 Jul 2021 13:03:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mailcow_housing_external/Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. -Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers. -Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar. -Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung. -Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.Heise, c't 10/2021 - mailcowhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Sat, 24 Apr 2021 10:20:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/heise_ct_10-2021/Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) -Es war auch fรผr uns eine รœberraschung! -https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html -Ich wรผnsche euch ein schรถnes Wochenende. -Andrรฉ
\ No newline at end of file +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.
\ No newline at end of file diff --git a/de/page/1/index.html b/de/page/1/index.html index 73c955827..5c3a36084 100644 --- a/de/page/1/index.html +++ b/de/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/ - - - - - - +https://mailcow.email/de/ + \ No newline at end of file diff --git a/de/page/2/index.html b/de/page/2/index.html index fb6e53174..41d7a51a0 100644 --- a/de/page/2/index.html +++ b/de/page/2/index.html @@ -1,368 +1,42 @@ - - - - - - - - - - - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
Moohoo

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

-

- โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธ -

Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. -So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. -Bitte Updated eure mailcow so schnell es geht via dem update.
-
-

- ๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungen -

Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.
-
-

- ๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungen -

Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: “Kleinvieh macht auch Mist”. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.
-
-

- ๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungen -

Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!
-
-

- Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT) -

Tach zusammen! -Mal kein Update Log sondern eine Empfehlung unsererseits an alle, die neu in die mailcow Welt einsteigen oder ihr Wissen auffrischen wollen. -Solltet ihr eines der Sachen mit Ja beantwortet haben wird die folgende Video Reihe fรผr euch interessant sein: -Schaut generell einfach mal rein, wenn ihr mรถgt und lasst ein bisschen Liebe da, als dank der Vorstellung unseres mailcow Projektes. -Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt!
-
-

- ๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungen -

Moohoo alle! It’s Friday then Then Saturday, Sunday (what?) -Wir haben eine aufregende Neuigkeit mit euch zu teilen! -Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! -Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! -So prรคsentieren wir euch ab heute: -รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert) Hell-/Dunkelmodus Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten) Alles in allem eine Neuauflage der bestehenden Dokumentation.
-
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungen -

Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.
-
-

- Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter! -

Moohoo allerseits! -Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! -Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. -Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. -Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten. -Bleibt gesund!
-
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungen -

Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! -Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. -Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. -Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.
-
-

- โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธ -

Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. -Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! -Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.
-
-
  • - - 1 - -
  • - - 2 - -
  • - - 3 - -
0% -
-
- +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธ

Moohoo zusammen!

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)

Moohoo zusammen!

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Update

Moohoo zusammen! +Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. +Los geht’s: +Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.

๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A

Update 2023-04aWir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. +Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. +Update 2023-04Moohoo zusammen! +Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. +Legen wir los: +SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).

๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]

Moohoo zusammen! +Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. +Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt “NUR” Bugfixes etc. kommen. +Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:

๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionen

EinleitungMoohoo zusammen! +Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! +Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) +Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. +Da haben wir uns gedacht: “Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?” und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:

๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)

VorwortMoohoo zusammen! +Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! +Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. +Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.
0%
\ No newline at end of file diff --git a/de/page/3/index.html b/de/page/3/index.html index 56db9f2ed..1815a88dd 100644 --- a/de/page/3/index.html +++ b/de/page/3/index.html @@ -1,315 +1,40 @@ - - - - - - - - - - - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
Moohoo

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

-

- ๐Ÿ„ Moovember 2021 - ร„nderungen -

Moohoo allerseits! -Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) -Dann wollen wir mal loslegen, ja? -Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.
-
-

- ๐Ÿ„ Mooctober 2021 - Die Feldsam Edition -

Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. -AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. -Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von “up -d”.
-
-

- more, moore, moooore -

Mรคdchen, Jungs und mailcows, -Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress. -Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!
-
-

- mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werden -

Hallo! -Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. -AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. -Zeit fรผr ein Update! -Andrรฉ
-
-

- Wo hause ich eine mailcow? -

Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. -Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers. -Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar. -Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung. -Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.
-
-

- Heise, c't 10/2021 - mailcow -

Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) -Es war auch fรผr uns eine รœberraschung! -https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html -Ich wรผnsche euch ein schรถnes Wochenende. -Andrรฉ
-
-
  • - - 1 - -
  • - - 2 - -
  • - - 3 - -
0% -
-
- +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธ

Moohoo zusammen!

Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.

Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!

๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Update

Moohoo zusammen!

Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.

๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungen

2022-09a (Release: 30.09.2022)

ร„nderungen:

  • Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit CVE-2022-39261.
    Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete

Unsere neuen Demos sind da!

Einen wunderschรถnen Guten Tag wรผnschen wir euch!

Endlich ist es so weit: Die neuen Demos sind da!

๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungen

Moohoo zusammen! +Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! +Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. +Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. +Ja… wie dem auch sei, dieser Fehler sollte nun behoben worden sein.

Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5

Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. +Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. +Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!

๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungen

Moohoo zusammen! +Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! +Ja… was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? +Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. +Fangen wir erst mal recht sachte an: +Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.

โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungen

Moohoo allerseits! +Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. +Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) +Noch einmal zusammen gefasst, was sich รคndert: +Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.
0%
\ No newline at end of file diff --git a/de/page/4/index.html b/de/page/4/index.html new file mode 100644 index 000000000..f73a63332 --- /dev/null +++ b/de/page/4/index.html @@ -0,0 +1,59 @@ +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

Willkommen auf der neuen mailcow Blogseite!

Einen wunderschรถnen Guten Tag wรผnschen wir euch! +Herzlich willkommen auf der neuen Blogseite. +Einigen von euch dรผrfte die Seite bereits auf Twitter bzw. auf Telegram im letzten Update Announcement รผber den Weg gestolpert sein, doch jetzt an der Stelle noch mal offiziell! +Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.

โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungen

Moohoo zusammen! +Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: +2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.

๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungen

Moohoo zusammen! +Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: +Docker Compose v2 Unterstรผtzung!!! +Doch fangen wir erstmal mit dem kleinkram an: +Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.

โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธ

Hallo zusammen, +wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). +Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. +Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. +Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d

๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungen

2022-05cWir sind es wieder (nochmal)! +Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. +Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. +Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c +Bleibt gesund +Niklas +2022-05bWir sind es wieder! +Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. +Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.

โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธ

Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. +So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. +Bitte Updated eure mailcow so schnell es geht via dem update.

๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungen

Moohoo zusammen! +Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. +Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: +Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.

๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungen

Moohoo allerseits! +Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. +Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: “Kleinvieh macht auch Mist”. +Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.

๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungen

Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. +๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! +Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!

Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT)

Tach zusammen! +Mal kein Update Log sondern eine Empfehlung unsererseits an alle, die neu in die mailcow Welt einsteigen oder ihr Wissen auffrischen wollen. +Solltet ihr eines der Sachen mit Ja beantwortet haben wird die folgende Video Reihe fรผr euch interessant sein: +Schaut generell einfach mal rein, wenn ihr mรถgt und lasst ein bisschen Liebe da, als dank der Vorstellung unseres mailcow Projektes. +Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt!
0%
\ No newline at end of file diff --git a/de/page/5/index.html b/de/page/5/index.html new file mode 100644 index 000000000..d9020f3f4 --- /dev/null +++ b/de/page/5/index.html @@ -0,0 +1,59 @@ +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungen

Moohoo alle! It’s Friday then Then Saturday, Sunday (what?) +Wir haben eine aufregende Neuigkeit mit euch zu teilen! +Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! +Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! +So prรคsentieren wir euch ab heute: +รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert) Hell-/Dunkelmodus Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten) Alles in allem eine Neuauflage der bestehenden Dokumentation.

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungen

Moohoo an alle. +Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. +Das hat sich geรคndert: +Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.

Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!

Moohoo allerseits! +Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! +Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. +Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. +Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten. +Bleibt gesund!

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungen

Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! +Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. +Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. +Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.

โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธ

Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. +Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! +Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.

๐Ÿ„ Moovember 2021 - ร„nderungen

Moohoo allerseits! +Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) +Dann wollen wir mal loslegen, ja? +Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. +Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste):30.

๐Ÿ„ Mooctober 2021 - Die Feldsam Edition

Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. +AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. +Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. +Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von “up -d”.

more, moore, moooore

Mรคdchen, Jungs und mailcows, +Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress. +Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!

mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werden

Hallo! +Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. +AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. +Zeit fรผr ein Update! +Andrรฉ

Wo hause ich eine mailcow?

Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. +Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers. +Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar. +Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung. +Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.
0%
\ No newline at end of file diff --git a/de/page/6/index.html b/de/page/6/index.html new file mode 100644 index 000000000..ddae5a427 --- /dev/null +++ b/de/page/6/index.html @@ -0,0 +1,19 @@ +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

Der E-Mail Server mit dem 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

Neuigkeiten und Infos

Heise, c't 10/2021 - mailcow

Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) +Es war auch fรผr uns eine รœberraschung! +https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html +Ich wรผnsche euch ein schรถnes Wochenende. +Andrรฉ
0%
\ No newline at end of file diff --git a/de/policy/index.html b/de/policy/index.html index 9783db091..dd9551ff6 100644 --- a/de/policy/index.html +++ b/de/policy/index.html @@ -1,349 +1,36 @@ - - - - - - - - Datenschutz - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
-

Datenschutz

Vertragsanlage gemรครŸ Auftragsverarbeitung nach Datenschutz-Grundverordnung (EU-DSGVO) +Datenschutz - mailcow: dockerized - Blog +

Datenschutz

Vertragsanlage gemรครŸ Auftragsverarbeitung nach Datenschutz-Grundverordnung (EU-DSGVO) In Ihrem Servercow-Profil kann ein Vertrag jederzeit durch Sie erstellt, gelรถscht und verรคndert werden. -Bei Fragen stehen wir Ihnen selbstverstรคndlich zur Verfรผgung.

-

Hinweise zur Datenvorhaltung auf dieser Website +Bei Fragen stehen wir Ihnen selbstverstรคndlich zur Verfรผgung.

Hinweise zur Datenvorhaltung auf dieser Website Zugriffe auf diese Website werden รผber einen Tag gespeichert, um bรถsartige Aufrufe zu filtern und entsprechende IP-Adressen zu blockieren. Weiterhin dient der zurรผckgegebene Status-Code dem internen Monitoring. Zum Protokoll gehรถrt die IP-Adresse des Besuchers, die Uhrzeit des Aufrufes, der Request sowie der zurรผckgegebene HTTP-Status: -1.2.3.4 - - [25/Mar/2018:12:02:21 +0200] "GET / HTTP/1.1" 200

-

ยง 1 Allgemeines

-

Ihre personenbezogenen Daten (z.B. Anrede, Name, Anschrift, E-Mail-Adresse, Telefonnummer, Bankverbindung, Kreditkartennummer) werden von uns nur gemรครŸ den Bestimmungen des deutschen Datenschutzrechts und des Datenschutzrechts der Europรคischen Union (EU) verarbeitet. Die nachfolgenden Vorschriften informieren Sie รผber Art, Umfang und Zweck der Erhebung, Verarbeitung und Nutzung personenbezogener Daten. Diese Datenschutzerklรคrung bezieht sich nur auf unsere Websites. Falls Sie รผber Links auf unseren Seiten auf andere Seiten weitergeleitet werden, informieren Sie sich bitte dort รผber den jeweiligen Umgang mit Ihren Daten.

-

ยง 2 Informationen รผber Cookies

-
    -
  • (1) Zur Optimierung unseres Internetauftritts setzen wir Cookies ein. Es handelt sich dabei um kleine Textdateien, die vorรผbergehend im Arbeitsspeicher Ihres Computers gespeichert werden. Diese Cookies werden nach dem SchlieรŸen des Browsers wieder gelรถscht, ausgenommen sind Langzeit-Cookies zum Login am Kundencenter.
  • -
  • (2) Das Speichern von Cookies kรถnnen Sie verhindern, indem Sie in Ihren Browser-Einstellungen “Cookies blockieren” wรคhlen. Dies kann aber eine Funktionseinschrรคnkung unserer Angebote zur Folge haben.
  • -
-

ยง 3 Rechte der betroffenen Person

-

Werden personenbezogene Daten von Ihnen verarbeitet, sind Sie Betroffener i.S.d. DSGVO und es stehen Ihnen folgende Rechte gegenรผber dem Verantwortlichen zu:

-
1. Auskunftsrecht
-

Sie kรถnnen von dem Verantwortlichen eine Bestรคtigung darรผber verlangen, ob personenbezogene Daten, die Sie betreffen, von uns verarbeitet werden. -Liegt eine solche Verarbeitung vor, kรถnnen Sie von dem Verantwortlichen รผber folgende Informationen Auskunft verlangen:

-
    -
  • (1) die Zwecke, zu denen die personenbezogenen Daten verarbeitet werden;
  • -
  • (2) die Kategorien von personenbezogenen Daten, welche verarbeitet werden;
  • -
  • (3) die Empfรคnger bzw. die Kategorien von Empfรคngern, gegenรผber denen die Sie betreffenden personenbezogenen Daten offengelegt wurden oder noch offengelegt werden;
  • -
  • (4) die geplante Dauer der Speicherung der Sie betreffenden personenbezogenen Daten oder, falls konkrete Angaben hierzu nicht mรถglich sind, Kriterien fรผr die Festlegung der Speicherdauer;
  • -
  • (5) das Bestehen eines Rechts auf Berichtigung oder Lรถschung der Sie betreffenden personenbezogenen Daten, eines Rechts auf Einschrรคnkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung;
  • -
  • (6) das Bestehen eines Beschwerderechts bei einer Aufsichtsbehรถrde;
  • -
  • (7) alle verfรผgbaren Informationen รผber die Herkunft der Daten, wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden;
  • -
  • (8) das Bestehen einer automatisierten Entscheidungsfindung einschlieรŸlich Profiling gemรครŸ Art. 22 Abs. 1 und 4 DSGVO und โ€“ zumindest in diesen Fรคllen โ€“ aussagekrรคftige Informationen รผber die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung fรผr die betroffene Person. -Ihnen steht das Recht zu, Auskunft darรผber zu verlangen, ob die Sie betreffenden personenbezogenen Daten in ein Drittland oder an eine internationale Organisation รผbermittelt werden. In diesem Zusammenhang kรถnnen Sie verlangen, รผber die geeigneten Garantien gem. Art. 46 DSGVO im Zusammenhang mit der รœbermittlung unterrichtet zu werden.
  • -
-
2. Recht auf Berichtigung
-

Sie haben ein Recht auf Berichtigung und/oder Vervollstรคndigung gegenรผber dem Verantwortlichen, sofern die verarbeiteten personenbezogenen Daten, die Sie betreffen, unrichtig oder unvollstรคndig sind. Der Verantwortliche hat die Berichtigung unverzรผglich vorzunehmen.

-
3. Recht auf Einschrรคnkung der Verarbeitung
-

Unter den folgenden Voraussetzungen kรถnnen Sie die Einschrรคnkung der Verarbeitung der Sie betreffenden personenbezogenen Daten verlangen:

-
    -
  • (1) wenn Sie die Richtigkeit der Sie betreffenden personenbezogenen fรผr eine Dauer bestreiten, die es dem Verantwortlichen ermรถglicht, die Richtigkeit der personenbezogenen Daten zu รผberprรผfen;
  • -
  • (2) die Verarbeitung unrechtmรครŸig ist und Sie die Lรถschung der personenbezogenen Daten ablehnen und stattdessen die Einschrรคnkung der Nutzung der personenbezogenen Daten verlangen;
  • -
  • (3) der Verantwortliche die personenbezogenen Daten fรผr die Zwecke der Verarbeitung nicht lรคnger benรถtigt, Sie diese jedoch zur Geltendmachung, Ausรผbung oder Verteidigung von Rechtsansprรผchen benรถtigen, oder
  • -
  • (4) wenn Sie Widerspruch gegen die Verarbeitung gemรครŸ Art. 21 Abs. 1 DSGVO eingelegt haben und noch nicht feststeht, ob die berechtigten Grรผnde des Verantwortlichen gegenรผber Ihren Grรผnden รผberwiegen. +1.2.3.4 - - [25/Mar/2018:12:02:21 +0200] "GET / HTTP/1.1" 200

    ยง 1 Allgemeines

    Ihre personenbezogenen Daten (z.B. Anrede, Name, Anschrift, E-Mail-Adresse, Telefonnummer, Bankverbindung, Kreditkartennummer) werden von uns nur gemรครŸ den Bestimmungen des deutschen Datenschutzrechts und des Datenschutzrechts der Europรคischen Union (EU) verarbeitet. Die nachfolgenden Vorschriften informieren Sie รผber Art, Umfang und Zweck der Erhebung, Verarbeitung und Nutzung personenbezogener Daten. Diese Datenschutzerklรคrung bezieht sich nur auf unsere Websites. Falls Sie รผber Links auf unseren Seiten auf andere Seiten weitergeleitet werden, informieren Sie sich bitte dort รผber den jeweiligen Umgang mit Ihren Daten.

    ยง 2 Informationen รผber Cookies

    • (1) Zur Optimierung unseres Internetauftritts setzen wir Cookies ein. Es handelt sich dabei um kleine Textdateien, die vorรผbergehend im Arbeitsspeicher Ihres Computers gespeichert werden. Diese Cookies werden nach dem SchlieรŸen des Browsers wieder gelรถscht, ausgenommen sind Langzeit-Cookies zum Login am Kundencenter.
    • (2) Das Speichern von Cookies kรถnnen Sie verhindern, indem Sie in Ihren Browser-Einstellungen “Cookies blockieren” wรคhlen. Dies kann aber eine Funktionseinschrรคnkung unserer Angebote zur Folge haben.

    ยง 3 Rechte der betroffenen Person

    Werden personenbezogene Daten von Ihnen verarbeitet, sind Sie Betroffener i.S.d. DSGVO und es stehen Ihnen folgende Rechte gegenรผber dem Verantwortlichen zu:

    1. Auskunftsrecht

    Sie kรถnnen von dem Verantwortlichen eine Bestรคtigung darรผber verlangen, ob personenbezogene Daten, die Sie betreffen, von uns verarbeitet werden. +Liegt eine solche Verarbeitung vor, kรถnnen Sie von dem Verantwortlichen รผber folgende Informationen Auskunft verlangen:

    • (1) die Zwecke, zu denen die personenbezogenen Daten verarbeitet werden;
    • (2) die Kategorien von personenbezogenen Daten, welche verarbeitet werden;
    • (3) die Empfรคnger bzw. die Kategorien von Empfรคngern, gegenรผber denen die Sie betreffenden personenbezogenen Daten offengelegt wurden oder noch offengelegt werden;
    • (4) die geplante Dauer der Speicherung der Sie betreffenden personenbezogenen Daten oder, falls konkrete Angaben hierzu nicht mรถglich sind, Kriterien fรผr die Festlegung der Speicherdauer;
    • (5) das Bestehen eines Rechts auf Berichtigung oder Lรถschung der Sie betreffenden personenbezogenen Daten, eines Rechts auf Einschrรคnkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung;
    • (6) das Bestehen eines Beschwerderechts bei einer Aufsichtsbehรถrde;
    • (7) alle verfรผgbaren Informationen รผber die Herkunft der Daten, wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden;
    • (8) das Bestehen einer automatisierten Entscheidungsfindung einschlieรŸlich Profiling gemรครŸ Art. 22 Abs. 1 und 4 DSGVO und โ€“ zumindest in diesen Fรคllen โ€“ aussagekrรคftige Informationen รผber die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung fรผr die betroffene Person. +Ihnen steht das Recht zu, Auskunft darรผber zu verlangen, ob die Sie betreffenden personenbezogenen Daten in ein Drittland oder an eine internationale Organisation รผbermittelt werden. In diesem Zusammenhang kรถnnen Sie verlangen, รผber die geeigneten Garantien gem. Art. 46 DSGVO im Zusammenhang mit der รœbermittlung unterrichtet zu werden.
    2. Recht auf Berichtigung

    Sie haben ein Recht auf Berichtigung und/oder Vervollstรคndigung gegenรผber dem Verantwortlichen, sofern die verarbeiteten personenbezogenen Daten, die Sie betreffen, unrichtig oder unvollstรคndig sind. Der Verantwortliche hat die Berichtigung unverzรผglich vorzunehmen.

    3. Recht auf Einschrรคnkung der Verarbeitung

    Unter den folgenden Voraussetzungen kรถnnen Sie die Einschrรคnkung der Verarbeitung der Sie betreffenden personenbezogenen Daten verlangen:

    • (1) wenn Sie die Richtigkeit der Sie betreffenden personenbezogenen fรผr eine Dauer bestreiten, die es dem Verantwortlichen ermรถglicht, die Richtigkeit der personenbezogenen Daten zu รผberprรผfen;
    • (2) die Verarbeitung unrechtmรครŸig ist und Sie die Lรถschung der personenbezogenen Daten ablehnen und stattdessen die Einschrรคnkung der Nutzung der personenbezogenen Daten verlangen;
    • (3) der Verantwortliche die personenbezogenen Daten fรผr die Zwecke der Verarbeitung nicht lรคnger benรถtigt, Sie diese jedoch zur Geltendmachung, Ausรผbung oder Verteidigung von Rechtsansprรผchen benรถtigen, oder
    • (4) wenn Sie Widerspruch gegen die Verarbeitung gemรครŸ Art. 21 Abs. 1 DSGVO eingelegt haben und noch nicht feststeht, ob die berechtigten Grรผnde des Verantwortlichen gegenรผber Ihren Grรผnden รผberwiegen. Wurde die Verarbeitung der Sie betreffenden personenbezogenen Daten eingeschrรคnkt, dรผrfen diese Daten โ€“ von ihrer Speicherung abgesehen โ€“ nur mit Ihrer Einwilligung oder zur Geltendmachung, Ausรผbung oder Verteidigung von Rechtsansprรผchen oder zum Schutz der Rechte einer anderen natรผrlichen oder juristischen Person oder aus Grรผnden eines wichtigen รถffentlichen Interesses der Union oder eines Mitgliedstaats verarbeitet werden. -Wurde die Einschrรคnkung der Verarbeitung nach den oben genannten Voraussetzungen eingeschrรคnkt, werden Sie von dem Verantwortlichen unterrichtet bevor die Einschrรคnkung aufgehoben wird.
    • -
    -
    4. Recht auf Lรถschung
    -

    a) Lรถschungspflicht -Sie kรถnnen von dem Verantwortlichen verlangen, dass die Sie betreffenden personenbezogenen Daten unverzรผglich gelรถscht werden, und der Verantwortliche ist verpflichtet, diese Daten unverzรผglich zu lรถschen, sofern einer der folgenden Grรผnde zutrifft:

    -
      -
    • (1) Die Sie betreffenden personenbezogenen Daten sind fรผr die Zwecke, fรผr die sie erhoben oder auf sonstige Weise verarbeitet wurden, nicht mehr notwendig.
    • -
    • (2) Sie widerrufen Ihre Einwilligung, auf die sich die Verarbeitung gem. Art. 6 Abs. 1 lit. a oder Art. 9 Abs. 2 lit. a DSGVO stรผtzte, und es fehlt an einer anderweitigen Rechtsgrundlage fรผr die Verarbeitung.
    • -
    • (3) Sie legen gem. Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein und es liegen keine vorrangigen berechtigten Grรผnde fรผr die Verarbeitung vor, oder Sie legen gem. Art. 21 Abs. 2 DSGVO Widerspruch gegen die Verarbeitung ein.
    • -
    • (4) Die Sie betreffenden personenbezogenen Daten wurden unrechtmรครŸig verarbeitet.
    • -
    • (5) Die Lรถschung der Sie betreffenden personenbezogenen Daten ist zur Erfรผllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem der Verantwortliche unterliegt.
    • -
    • (6) Die Sie betreffenden personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemรครŸ Art. 8 Abs. 1 DSGVO erhoben. +Wurde die Einschrรคnkung der Verarbeitung nach den oben genannten Voraussetzungen eingeschrรคnkt, werden Sie von dem Verantwortlichen unterrichtet bevor die Einschrรคnkung aufgehoben wird.
    4. Recht auf Lรถschung

    a) Lรถschungspflicht +Sie kรถnnen von dem Verantwortlichen verlangen, dass die Sie betreffenden personenbezogenen Daten unverzรผglich gelรถscht werden, und der Verantwortliche ist verpflichtet, diese Daten unverzรผglich zu lรถschen, sofern einer der folgenden Grรผnde zutrifft:

    • (1) Die Sie betreffenden personenbezogenen Daten sind fรผr die Zwecke, fรผr die sie erhoben oder auf sonstige Weise verarbeitet wurden, nicht mehr notwendig.
    • (2) Sie widerrufen Ihre Einwilligung, auf die sich die Verarbeitung gem. Art. 6 Abs. 1 lit. a oder Art. 9 Abs. 2 lit. a DSGVO stรผtzte, und es fehlt an einer anderweitigen Rechtsgrundlage fรผr die Verarbeitung.
    • (3) Sie legen gem. Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein und es liegen keine vorrangigen berechtigten Grรผnde fรผr die Verarbeitung vor, oder Sie legen gem. Art. 21 Abs. 2 DSGVO Widerspruch gegen die Verarbeitung ein.
    • (4) Die Sie betreffenden personenbezogenen Daten wurden unrechtmรครŸig verarbeitet.
    • (5) Die Lรถschung der Sie betreffenden personenbezogenen Daten ist zur Erfรผllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem der Verantwortliche unterliegt.
    • (6) Die Sie betreffenden personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemรครŸ Art. 8 Abs. 1 DSGVO erhoben. b) Information an Dritte Hat der Verantwortliche die Sie betreffenden personenbezogenen Daten รถffentlich gemacht und ist er gem. Art. 17 Abs. 1 DSGVO zu deren Lรถschung verpflichtet, so trifft er unter Berรผcksichtigung der verfรผgbaren Technologie und der Implementierungskosten angemessene MaรŸnahmen, auch technischer Art, um fรผr die Datenverarbeitung Verantwortliche, die die personenbezogenen Daten verarbeiten, darรผber zu informieren, dass Sie als betroffene Person von ihnen die Lรถschung aller Links zu diesen personenbezogenen Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt haben. c) Ausnahmen -Das Recht auf Lรถschung besteht nicht, soweit die Verarbeitung erforderlich ist
    • -
    • (1) zur Ausรผbung des Rechts auf freie MeinungsรคuรŸerung und Information;
    • -
    • (2) zur Erfรผllung einer rechtlichen Verpflichtung, die die Verarbeitung nach dem Recht der Union oder der Mitgliedstaaten, dem der Verantwortliche unterliegt, erfordert, oder zur Wahrnehmung einer Aufgabe, die im รถffentlichen Interesse liegt oder in Ausรผbung รถffentlicher Gewalt erfolgt, die dem Verantwortlichen รผbertragen wurde;
    • -
    • (3) aus Grรผnden des รถffentlichen Interesses im Bereich der รถffentlichen Gesundheit gemรครŸ Art. 9 Abs. 2 lit. h und i sowie Art. 9 Abs. 3 DSGVO;
    • -
    • (4) fรผr im รถffentlichen Interesse liegende Archivzwecke, wissenschaftliche oder historische Forschungszwecke oder fรผr statistische Zwecke gem. Art. 89 Abs. 1 DSGVO, soweit das unter Abschnitt a) genannte Recht voraussichtlich die Verwirklichung der Ziele dieser Verarbeitung unmรถglich macht oder ernsthaft beeintrรคchtigt, oder
    • -
    • (5) zur Geltendmachung, Ausรผbung oder Verteidigung von Rechtsansprรผchen.
    • -
    -
    5. Recht auf Unterrichtung
    -

    Haben Sie das Recht auf Berichtigung, Lรถschung oder Einschrรคnkung der Verarbeitung gegenรผber dem Verantwortlichen geltend gemacht, ist dieser verpflichtet, allen Empfรคngern, denen die Sie betreffenden personenbezogenen Daten offengelegt wurden, diese Berichtigung oder Lรถschung der Daten oder Einschrรคnkung der Verarbeitung mitzuteilen, es sei denn, dies erweist sich als unmรถglich oder ist mit einem unverhรคltnismรครŸigen Aufwand verbunden. -Ihnen steht gegenรผber dem Verantwortlichen das Recht zu, รผber diese Empfรคnger unterrichtet zu werden.

    -
    6. Recht auf Datenรผbertragbarkeit
    -

    Sie haben das Recht, die Sie betreffenden personenbezogenen Daten, die Sie dem Verantwortlichen bereitgestellt haben, in einem strukturierten, gรคngigen und maschinenlesbaren Format zu erhalten. AuรŸerdem haben Sie das Recht diese Daten einem anderen Verantwortlichen ohne Behinderung durch den Verantwortlichen, dem die personenbezogenen Daten bereitgestellt wurden, zu รผbermitteln, sofern

    -
      -
    • (1) die Verarbeitung auf einer Einwilligung gem. Art. 6 Abs. 1 lit. a DSGVO oder Art. 9 Abs. 2 lit. a DSGVO oder auf einem Vertrag gem. Art. 6 Abs. 1 lit. b DSGVO beruht und
    • -
    • (2) die Verarbeitung mithilfe automatisierter Verfahren erfolgt. +Das Recht auf Lรถschung besteht nicht, soweit die Verarbeitung erforderlich ist
    • (1) zur Ausรผbung des Rechts auf freie MeinungsรคuรŸerung und Information;
    • (2) zur Erfรผllung einer rechtlichen Verpflichtung, die die Verarbeitung nach dem Recht der Union oder der Mitgliedstaaten, dem der Verantwortliche unterliegt, erfordert, oder zur Wahrnehmung einer Aufgabe, die im รถffentlichen Interesse liegt oder in Ausรผbung รถffentlicher Gewalt erfolgt, die dem Verantwortlichen รผbertragen wurde;
    • (3) aus Grรผnden des รถffentlichen Interesses im Bereich der รถffentlichen Gesundheit gemรครŸ Art. 9 Abs. 2 lit. h und i sowie Art. 9 Abs. 3 DSGVO;
    • (4) fรผr im รถffentlichen Interesse liegende Archivzwecke, wissenschaftliche oder historische Forschungszwecke oder fรผr statistische Zwecke gem. Art. 89 Abs. 1 DSGVO, soweit das unter Abschnitt a) genannte Recht voraussichtlich die Verwirklichung der Ziele dieser Verarbeitung unmรถglich macht oder ernsthaft beeintrรคchtigt, oder
    • (5) zur Geltendmachung, Ausรผbung oder Verteidigung von Rechtsansprรผchen.
    5. Recht auf Unterrichtung

    Haben Sie das Recht auf Berichtigung, Lรถschung oder Einschrรคnkung der Verarbeitung gegenรผber dem Verantwortlichen geltend gemacht, ist dieser verpflichtet, allen Empfรคngern, denen die Sie betreffenden personenbezogenen Daten offengelegt wurden, diese Berichtigung oder Lรถschung der Daten oder Einschrรคnkung der Verarbeitung mitzuteilen, es sei denn, dies erweist sich als unmรถglich oder ist mit einem unverhรคltnismรครŸigen Aufwand verbunden. +Ihnen steht gegenรผber dem Verantwortlichen das Recht zu, รผber diese Empfรคnger unterrichtet zu werden.

    6. Recht auf Datenรผbertragbarkeit

    Sie haben das Recht, die Sie betreffenden personenbezogenen Daten, die Sie dem Verantwortlichen bereitgestellt haben, in einem strukturierten, gรคngigen und maschinenlesbaren Format zu erhalten. AuรŸerdem haben Sie das Recht diese Daten einem anderen Verantwortlichen ohne Behinderung durch den Verantwortlichen, dem die personenbezogenen Daten bereitgestellt wurden, zu รผbermitteln, sofern

    • (1) die Verarbeitung auf einer Einwilligung gem. Art. 6 Abs. 1 lit. a DSGVO oder Art. 9 Abs. 2 lit. a DSGVO oder auf einem Vertrag gem. Art. 6 Abs. 1 lit. b DSGVO beruht und
    • (2) die Verarbeitung mithilfe automatisierter Verfahren erfolgt. In Ausรผbung dieses Rechts haben Sie ferner das Recht, zu erwirken, dass die Sie betreffenden personenbezogenen Daten direkt von einem Verantwortlichen einem anderen Verantwortlichen รผbermittelt werden, soweit dies technisch machbar ist. Freiheiten und Rechte anderer Personen dรผrfen hierdurch nicht beeintrรคchtigt werden. -Das Recht auf Datenรผbertragbarkeit gilt nicht fรผr eine Verarbeitung personenbezogener Daten, die fรผr die Wahrnehmung einer Aufgabe erforderlich ist, die im รถffentlichen Interesse liegt oder in Ausรผbung รถffentlicher Gewalt erfolgt, die dem Verantwortlichen รผbertragen wurde.
    • -
    -
    7. Widerspruchsrecht
    -

    Sie haben das Recht, aus Grรผnden, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies gilt auch fรผr ein auf diese Bestimmungen gestรผtztes Profiling. +Das Recht auf Datenรผbertragbarkeit gilt nicht fรผr eine Verarbeitung personenbezogener Daten, die fรผr die Wahrnehmung einer Aufgabe erforderlich ist, die im รถffentlichen Interesse liegt oder in Ausรผbung รถffentlicher Gewalt erfolgt, die dem Verantwortlichen รผbertragen wurde.

7. Widerspruchsrecht

Sie haben das Recht, aus Grรผnden, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen; dies gilt auch fรผr ein auf diese Bestimmungen gestรผtztes Profiling. Der Verantwortliche verarbeitet die Sie betreffenden personenbezogenen Daten nicht mehr, es sei denn, er kann zwingende schutzwรผrdige Grรผnde fรผr die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten รผberwiegen, oder die Verarbeitung dient der Geltendmachung, Ausรผbung oder Verteidigung von Rechtsansprรผchen. Werden die Sie betreffenden personenbezogenen Daten verarbeitet, um Direktwerbung zu betreiben, haben Sie das Recht, jederzeit Widerspruch gegen die Verarbeitung der Sie betreffenden personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen; dies gilt auch fรผr das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht. Widersprechen Sie der Verarbeitung fรผr Zwecke der Direktwerbung, so werden die Sie betreffenden personenbezogenen Daten nicht mehr fรผr diese Zwecke verarbeitet. -Sie haben die Mรถglichkeit, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft โ€“ ungeachtet der Richtlinie 2002/58/EG โ€“ Ihr Widerspruchsrecht mittels automatisierter Verfahren auszuรผben, bei denen technische Spezifikationen verwendet werden.

-
8. Recht auf Widerruf der datenschutzrechtlichen Einwilligungserklรคrung
-

Sie haben das Recht, Ihre datenschutzrechtliche Einwilligungserklรคrung jederzeit zu widerrufen. Durch den Widerruf der Einwilligung wird die RechtmรครŸigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berรผhrt.

-
9. Automatisierte Entscheidung im Einzelfall einschlieรŸlich Profiling
-

Sie haben das Recht, nicht einer ausschlieรŸlich auf einer automatisierten Verarbeitung โ€“ einschlieรŸlich Profiling โ€“ beruhenden Entscheidung unterworfen zu werden, die Ihnen gegenรผber rechtliche Wirkung entfaltet oder Sie in รคhnlicher Weise erheblich beeintrรคchtigt. Dies gilt nicht, wenn die Entscheidung

-
    -
  • (1) fรผr den Abschluss oder die Erfรผllung eines Vertrags zwischen Ihnen und dem Verantwortlichen erforderlich ist,
  • -
  • (2) aufgrund von Rechtsvorschriften der Union oder der Mitgliedstaaten, denen der Verantwortliche unterliegt, zulรคssig ist und diese Rechtsvorschriften angemessene MaรŸnahmen zur Wahrung Ihrer Rechte und Freiheiten sowie Ihrer berechtigten Interessen enthalten oder
  • -
  • (3) mit Ihrer ausdrรผcklichen Einwilligung erfolgt. +Sie haben die Mรถglichkeit, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft โ€“ ungeachtet der Richtlinie 2002/58/EG โ€“ Ihr Widerspruchsrecht mittels automatisierter Verfahren auszuรผben, bei denen technische Spezifikationen verwendet werden.

    8. Recht auf Widerruf der datenschutzrechtlichen Einwilligungserklรคrung

    Sie haben das Recht, Ihre datenschutzrechtliche Einwilligungserklรคrung jederzeit zu widerrufen. Durch den Widerruf der Einwilligung wird die RechtmรครŸigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berรผhrt.

    9. Automatisierte Entscheidung im Einzelfall einschlieรŸlich Profiling

    Sie haben das Recht, nicht einer ausschlieรŸlich auf einer automatisierten Verarbeitung โ€“ einschlieรŸlich Profiling โ€“ beruhenden Entscheidung unterworfen zu werden, die Ihnen gegenรผber rechtliche Wirkung entfaltet oder Sie in รคhnlicher Weise erheblich beeintrรคchtigt. Dies gilt nicht, wenn die Entscheidung

    • (1) fรผr den Abschluss oder die Erfรผllung eines Vertrags zwischen Ihnen und dem Verantwortlichen erforderlich ist,
    • (2) aufgrund von Rechtsvorschriften der Union oder der Mitgliedstaaten, denen der Verantwortliche unterliegt, zulรคssig ist und diese Rechtsvorschriften angemessene MaรŸnahmen zur Wahrung Ihrer Rechte und Freiheiten sowie Ihrer berechtigten Interessen enthalten oder
    • (3) mit Ihrer ausdrรผcklichen Einwilligung erfolgt. Allerdings dรผrfen diese Entscheidungen nicht auf besonderen Kategorien personenbezogener Daten nach Art. 9 Abs. 1 DSGVO beruhen, sofern nicht Art. 9 Abs. 2 lit. a oder g gilt und angemessene MaรŸnahmen zum Schutz der Rechte und Freiheiten sowie Ihrer berechtigten Interessen getroffen wurden. -Hinsichtlich der in (1) und (3) genannten Fรคlle trifft der Verantwortliche angemessene MaรŸnahmen, um die Rechte und Freiheiten sowie Ihre berechtigten Interessen zu wahren, wozu mindestens das Recht auf Erwirkung des Eingreifens einer Person seitens des Verantwortlichen, auf Darlegung des eigenen Standpunkts und auf Anfechtung der Entscheidung gehรถrt.
    • -
    -
    10. Recht auf Beschwerde bei einer Aufsichtsbehรถrde
    -

    Unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs steht Ihnen das Recht auf Beschwerde bei einer Aufsichtsbehรถrde, insbesondere in dem Mitgliedstaat ihres Aufenthaltsorts, ihres Arbeitsplatzes oder des Orts des mutmaรŸlichen VerstoรŸes, zu, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen die DSGVO verstรถรŸt. -Die Aufsichtsbehรถrde, bei der die Beschwerde eingereicht wurde, unterrichtet den Beschwerdefรผhrer รผber den Stand und die Ergebnisse der Beschwerde einschlieรŸlich der Mรถglichkeit eines gerichtlichen Rechtsbehelfs nach Art. 78 DSGVO.

    -
    11. Kontaktformular
    -

    Die Daten des Kontaktformulars werden verschlรผsselt รผber die internen Mail-Systeme an info@servercow.de รผbermittelt. Wenn Sie uns per Kontaktformular Anfragen senden, werden Ihre dort eingegebenen Daten mitsamt Ihren Kontaktdaten fรผr die Bearbeitung der Anfrage bei uns verarbeitet und gespeichert. Diese Daten geben wir nicht ohne Ihre Einwilligung an Dritte weiter. Die Anfragen, inklusive der darin enthaltenen personenbezogenen Daten, werden regelmรครŸig gelรถscht, solange die Anfrage ohne weitere Geschรคftsbeziehung verblieb.

    -
    12. SAL-gebundene รœberprรผfungen (Checks)
    -

    (12) Bei der Ausfรผhrung eines Checks durch “watchdog-mailcow” in Verbindung mit einer SAL werden keine Daten รผber den sich verbindenden Server oder den Betreiber gespeichert oder anderweitig aufbereitet oder ausgewertet.

    -

    Verantwortlicher fรผr die Datenverarbeitung ist der Geschรคftsbetreiber.

    -
0% -
-
- +Hinsichtlich der in (1) und (3) genannten Fรคlle trifft der Verantwortliche angemessene MaรŸnahmen, um die Rechte und Freiheiten sowie Ihre berechtigten Interessen zu wahren, wozu mindestens das Recht auf Erwirkung des Eingreifens einer Person seitens des Verantwortlichen, auf Darlegung des eigenen Standpunkts und auf Anfechtung der Entscheidung gehรถrt.
10. Recht auf Beschwerde bei einer Aufsichtsbehรถrde

Unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs steht Ihnen das Recht auf Beschwerde bei einer Aufsichtsbehรถrde, insbesondere in dem Mitgliedstaat ihres Aufenthaltsorts, ihres Arbeitsplatzes oder des Orts des mutmaรŸlichen VerstoรŸes, zu, wenn Sie der Ansicht sind, dass die Verarbeitung der Sie betreffenden personenbezogenen Daten gegen die DSGVO verstรถรŸt. +Die Aufsichtsbehรถrde, bei der die Beschwerde eingereicht wurde, unterrichtet den Beschwerdefรผhrer รผber den Stand und die Ergebnisse der Beschwerde einschlieรŸlich der Mรถglichkeit eines gerichtlichen Rechtsbehelfs nach Art. 78 DSGVO.

11. Kontaktformular

Die Daten des Kontaktformulars werden verschlรผsselt รผber die internen Mail-Systeme an info@servercow.de รผbermittelt. Wenn Sie uns per Kontaktformular Anfragen senden, werden Ihre dort eingegebenen Daten mitsamt Ihren Kontaktdaten fรผr die Bearbeitung der Anfrage bei uns verarbeitet und gespeichert. Diese Daten geben wir nicht ohne Ihre Einwilligung an Dritte weiter. Die Anfragen, inklusive der darin enthaltenen personenbezogenen Daten, werden regelmรครŸig gelรถscht, solange die Anfrage ohne weitere Geschรคftsbeziehung verblieb.

12. SAL-gebundene รœberprรผfungen (Checks)

(12) Bei der Ausfรผhrung eines Checks durch “watchdog-mailcow” in Verbindung mit einer SAL werden keine Daten รผber den sich verbindenden Server oder den Betreiber gespeichert oder anderweitig aufbereitet oder ausgewertet.

Verantwortlicher fรผr die Datenverarbeitung ist der Geschรคftsbetreiber.

0%
\ No newline at end of file diff --git a/de/posts/2021/heise_ct_10-2021/index.html b/de/posts/2021/heise_ct_10-2021/index.html index defbde0b9..91c895ea9 100644 --- a/de/posts/2021/heise_ct_10-2021/index.html +++ b/de/posts/2021/heise_ct_10-2021/index.html @@ -1,303 +1,24 @@ - - - - - - - - Heise, c't 10/2021 - mailcow - mailcow: dockerized - Blog - -Heise, c't 10/2021 - mailcow - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
- - -
-
- - - -
-

- Heise, c't 10/2021 - mailcow -

Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :)

-

Es war auch fรผr uns eine รœberraschung!

-

https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html

-

Ich wรผnsche euch ein schรถnes Wochenende.

-

Andrรฉ

-
-
0% -
-
- +Andrรฉ">
0%
\ No newline at end of file diff --git a/de/posts/2021/log4j-dec2021/index.html b/de/posts/2021/log4j-dec2021/index.html index 6365cbfd2..183129959 100644 --- a/de/posts/2021/log4j-dec2021/index.html +++ b/de/posts/2021/log4j-dec2021/index.html @@ -1,300 +1,17 @@ - - - - - - - - โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธ - mailcow: dockerized - Blog - -โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธ - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธ -

Moohoo an alle!
-Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist.

-

Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich!

-

Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.

-

Um es zu aktivieren, aktualisiert bitte eure mailcow mit dem update.sh Skript

-

Bleibt alle gesund!

-

Niklas, Servercow Team

-
-
0% -
-
- +Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.">

โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธ

Moohoo an alle!
Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist.

Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich!

Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.

Um es zu aktivieren, aktualisiert bitte eure mailcow mit dem update.sh Skript

Bleibt alle gesund!

Niklas, Servercow Team

0%
\ No newline at end of file diff --git a/de/posts/2021/mailcow_housing_external/index.html b/de/posts/2021/mailcow_housing_external/index.html index b93366741..7bcdaeee0 100644 --- a/de/posts/2021/mailcow_housing_external/index.html +++ b/de/posts/2021/mailcow_housing_external/index.html @@ -1,303 +1,25 @@ - - - - - - - - Wo hause ich eine mailcow? - mailcow: dockerized - Blog - -Wo hause ich eine mailcow? - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
- - -
-
- - - -
-

- Wo hause ich eine mailcow? -

Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen.

-

Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers.

-

Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar.

-

Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung.

-

Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg. ;-)

-
-
0% -
-
- +Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.">

Wo hause ich eine mailcow?

Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen.

Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers.

Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar.

Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung.

Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg. ;-)

0%
\ No newline at end of file diff --git a/de/posts/2021/mooctober2021/index.html b/de/posts/2021/mooctober2021/index.html index 6e120c849..ff0a09fd4 100644 --- a/de/posts/2021/mooctober2021/index.html +++ b/de/posts/2021/mooctober2021/index.html @@ -1,290 +1,9 @@ - - - - - - - - ๐Ÿ„ Mooctober 2021 - Die Feldsam Edition - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ„ Mooctober 2021 - Die Feldsam Edition -

Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen.

-

AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor.

-

Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen.

-

Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von “up -d”.

-

Wir empfehlen, dieses Skript alle X Minuten oder Stunden laufen zu lassen und Schnappschรผsse auf dem entfernten Standort fรผr eine einfache Versionierung zu erstellen.

-
-
0% -
-
- +๐Ÿ„ Mooctober 2021 - Die Feldsam Edition - mailcow: dockerized - Blog +

๐Ÿ„ Mooctober 2021 - Die Feldsam Edition

Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen.

AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor.

Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen.

Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von “up -d”.

Wir empfehlen, dieses Skript alle X Minuten oder Stunden laufen zu lassen und Schnappschรผsse auf dem entfernten Standort fรผr eine einfache Versionierung zu erstellen.

0%
\ No newline at end of file diff --git a/de/posts/2021/moore_october21/index.html b/de/posts/2021/moore_october21/index.html index ed822d827..ff1ef394e 100644 --- a/de/posts/2021/moore_october21/index.html +++ b/de/posts/2021/moore_october21/index.html @@ -1,297 +1,17 @@ - - - - - - - - more, moore, moooore - mailcow: dockerized - Blog - -more, moore, moooore - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- more, moore, moooore -

Mรคdchen, Jungs und mailcows,

-

Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress.

-

Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt! Es gibt auch Plรคne fรผr einen mailcow.shop.

-

Kristian Feldsam hat bereits mit der Migration der UI auf BS5 begonnen, das ist ein weiterer groรŸer Schritt nach vorne fรผr uns. Vielen Dank an euch!

-

Andrรฉ

-
-
0% -
-
- +Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!">

more, moore, moooore

Mรคdchen, Jungs und mailcows,

Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress.

Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt! Es gibt auch Plรคne fรผr einen mailcow.shop.

Kristian Feldsam hat bereits mit der Migration der UI auf BS5 begonnen, das ist ein weiterer groรŸer Schritt nach vorne fรผr uns. Vielen Dank an euch!

Andrรฉ

0%
\ No newline at end of file diff --git a/de/posts/2021/moovember2021/index.html b/de/posts/2021/moovember2021/index.html index 5aaca4069..b9be5a475 100644 --- a/de/posts/2021/moovember2021/index.html +++ b/de/posts/2021/moovember2021/index.html @@ -1,381 +1,11 @@ - - - - - - - - ๐Ÿ„ Moovember 2021 - ร„nderungen - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ„ Moovember 2021 - ร„nderungen -

Moohoo allerseits!

-

Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :)

-

Dann wollen wir mal loslegen, ja?

-
-

Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack:

-
    -
  • SOGo Aktualisierung auf 5.3.0
  • -
  • Dovecot Aktualisierung auf 2.3.17
  • -
  • ClamAV Aktualisierung auf 0.103.4
  • -
  • [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile
  • -
-

Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten.

-
-

Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste):

-

30. November 2021:

-
    -
  • [SOGo] Update Image (Docker Image fรผr mailcow Stack)
  • -
-

29. November 2021:

-
    -
  • รœbersetzungs-Update von Weblate (Pull request: #4351)
  • -
-

28. November 2021:

-
    -
  • [web] Fix mehrere raw html flags in twig (Pull request: #4325)
  • -
  • [web] Repariertes html in Alerts
  • -
  • [README] Getrennte Build-Badges
  • -
  • Aktualisierung der รœbersetzungen von Weblate (Pull requests: #4347 & #4346)
  • -
-

27. November 2021:

-
    -
  • รœbersetzungs-Update von Weblate (Pull request: #4345)
  • -
  • [README] Build + Translation Badge hinzugefรผgt
  • -
  • [Web] Aktualisierte lang.de.json (Pull request: #4344)
  • -
  • [CI] Tests auf dem Staging-Zweig laufen lassen
  • -
  • API] Aktualisierte Dokumente fรผr die Transportroute
  • -
  • [Web] Aktualisierte lang.de.json (Pull request: #4343)
  • -
-

26. November 2021:

-
    -
  • [Web] Fix lang strings
  • -
  • [Web] ร„ndern Sie lang strings inding in 0
  • -
  • [Web] XMPP-Referenzen aus langfiles lรถschen (#4338)
  • -
-

22. November 2021:

-
    -
  • SOGo auf 5.3.0 aktualisieren (Pull request: #4330)
  • -
-

18. November 2021:

-
    -
  • [MariaDB] Weitere Erhรถhung der Verbindungen
  • -
  • Rspamd] CAB an archive_extensions zurรผckgeben
  • -
  • [Rspamd] CAB-Score-Erkennung anpassen
  • -
-

15. November 2021:

-
    -
  • [Config] Fix link, behebt (Issue: #4322)
  • -
-

14. November 2021:

-
    -
  • [ClamAV] Spiegel fรผr Dockerfile รคndern
  • -
  • [Dovecot] v2.3.17
  • -
  • [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile (Pull request: #4316)
  • -
-

12. November 2021:

-
    -
  • Fehlenden API-Endpunkt zu openapi.yaml hinzufรผgen (Pull request: #4320)
  • -
-

11. November 2021:

-
    -
  • [ClamAV] Update auf 0.103.4 (Pull request: #4314)
  • -
-
-

Da dies unser letzter Changelog fรผr 2021 ist, wรผnscht euch das gesamte tinc (The Infrastructure Company) Team ๐ŸŽ„ Frohe Weihnachten ๐ŸŽ und ein ๐ŸŽ† Glรผckliches Neues Jahr 2022 ๐Ÿฅ‚.

-

Mรถge das nรคchste Jahr mit euch sein! -*** รœbersetzt mit www.DeepL.com/Translator (kostenlose Version) ***

-
-
0% -
-
- +๐Ÿ„ Moovember 2021 - ร„nderungen - mailcow: dockerized - Blog +

๐Ÿ„ Moovember 2021 - ร„nderungen

Moohoo allerseits!

Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :)

Dann wollen wir mal loslegen, ja?


Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack:

  • SOGo Aktualisierung auf 5.3.0
  • Dovecot Aktualisierung auf 2.3.17
  • ClamAV Aktualisierung auf 0.103.4
  • [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile

Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten.


Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste):

30. November 2021:

  • [SOGo] Update Image (Docker Image fรผr mailcow Stack)

29. November 2021:

  • รœbersetzungs-Update von Weblate (Pull request: #4351)

28. November 2021:

  • [web] Fix mehrere raw html flags in twig (Pull request: #4325)
  • [web] Repariertes html in Alerts
  • [README] Getrennte Build-Badges
  • Aktualisierung der รœbersetzungen von Weblate (Pull requests: #4347 & #4346)

27. November 2021:

  • รœbersetzungs-Update von Weblate (Pull request: #4345)
  • [README] Build + Translation Badge hinzugefรผgt
  • [Web] Aktualisierte lang.de.json (Pull request: #4344)
  • [CI] Tests auf dem Staging-Zweig laufen lassen
  • API] Aktualisierte Dokumente fรผr die Transportroute
  • [Web] Aktualisierte lang.de.json (Pull request: #4343)

26. November 2021:

  • [Web] Fix lang strings
  • [Web] ร„ndern Sie lang strings inding in 0
  • [Web] XMPP-Referenzen aus langfiles lรถschen (#4338)

22. November 2021:

  • SOGo auf 5.3.0 aktualisieren (Pull request: #4330)

18. November 2021:

  • [MariaDB] Weitere Erhรถhung der Verbindungen
  • Rspamd] CAB an archive_extensions zurรผckgeben
  • [Rspamd] CAB-Score-Erkennung anpassen

15. November 2021:

  • [Config] Fix link, behebt (Issue: #4322)

14. November 2021:

  • [ClamAV] Spiegel fรผr Dockerfile รคndern
  • [Dovecot] v2.3.17
  • [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile (Pull request: #4316)

12. November 2021:

  • Fehlenden API-Endpunkt zu openapi.yaml hinzufรผgen (Pull request: #4320)

11. November 2021:

  • [ClamAV] Update auf 0.103.4 (Pull request: #4314)

Da dies unser letzter Changelog fรผr 2021 ist, wรผnscht euch das gesamte tinc (The Infrastructure Company) Team ๐ŸŽ„ Frohe Weihnachten ๐ŸŽ und ein ๐ŸŽ† Glรผckliches Neues Jahr 2022 ๐Ÿฅ‚.

Mรถge das nรคchste Jahr mit euch sein! +*** รœbersetzt mit www.DeepL.com/Translator (kostenlose Version) ***

0%
\ No newline at end of file diff --git a/de/posts/2021/rspamd_memleak_sep2021/index.html b/de/posts/2021/rspamd_memleak_sep2021/index.html index 43c70fc7c..a4af3aaee 100644 --- a/de/posts/2021/rspamd_memleak_sep2021/index.html +++ b/de/posts/2021/rspamd_memleak_sep2021/index.html @@ -1,305 +1,25 @@ - - - - - - - - mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werden - mailcow: dockerized - Blog - -mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werden - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werden -

Hallo!

-

Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde.

-

AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert.

-

Zeit fรผr ein Update!

-

Andrรฉ

-
-
0% -
-
- +Andrรฉ">

mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werden

Hallo!

Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde.

AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert.

Zeit fรผr ein Update!

Andrรฉ

0%
\ No newline at end of file diff --git a/de/posts/2022/2022-04-info/index.html b/de/posts/2022/2022-04-info/index.html index fc4366f60..497b57487 100644 --- a/de/posts/2022/2022-04-info/index.html +++ b/de/posts/2022/2022-04-info/index.html @@ -1,297 +1,17 @@ - - - - - - - - โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธ - mailcow: dockerized - Blog - -โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธ - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธ -

Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login.

-

So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst.

-

Bitte Updated eure mailcow so schnell es geht via dem update.sh Skript um SOGo wieder wie gewohnt nutzen zu kรถnnen.

-

Wir entschuldigen uns fรผr diesen Fehler.

-
-
0% -
-
- +Bitte Updated eure mailcow so schnell es geht via dem update.">

โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธ

Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login.

So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst.

Bitte Updated eure mailcow so schnell es geht via dem update.sh Skript um SOGo wieder wie gewohnt nutzen zu kรถnnen.

Wir entschuldigen uns fรผr diesen Fehler.

0%
\ No newline at end of file diff --git a/de/posts/2022/de-youtube-raspberrypicloud/index.html b/de/posts/2022/de-youtube-raspberrypicloud/index.html index 280e03415..b9fa62d1d 100644 --- a/de/posts/2022/de-youtube-raspberrypicloud/index.html +++ b/de/posts/2022/de-youtube-raspberrypicloud/index.html @@ -1,314 +1,26 @@ - - - - - - - - Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT) - mailcow: dockerized - Blog - -Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT) - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
- - -
-
- - - -
-

- Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT) -

Tach zusammen!

-

Mal kein Update Log sondern eine Empfehlung unsererseits an alle, die neu in die mailcow Welt einsteigen oder ihr Wissen auffrischen wollen.

-

Solltet ihr eines der Sachen mit Ja beantwortet haben wird die folgende Video Reihe fรผr euch interessant sein:

- -
- -
- -

Schaut generell einfach mal rein, wenn ihr mรถgt und lasst ein bisschen Liebe da, als dank der Vorstellung unseres mailcow Projektes.

-

Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt! -(Ist ja aktuell schwer mรถglich wegen Corona, aber trรคumen darf man ja wohl ๐Ÿฅฐ)

-

Hinweis: Eure Cookies bezรผglich Youtube werden nur dann gespeichert, wenn Ihr das Video hier anschaut, der Youtube Player ist im Datenschutzmodus eingebunden.

-
-
0% -
-
- +Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt!">

Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT)

Tach zusammen!

Mal kein Update Log sondern eine Empfehlung unsererseits an alle, die neu in die mailcow Welt einsteigen oder ihr Wissen auffrischen wollen.

Solltet ihr eines der Sachen mit Ja beantwortet haben wird die folgende Video Reihe fรผr euch interessant sein:

Schaut generell einfach mal rein, wenn ihr mรถgt und lasst ein bisschen Liebe da, als dank der Vorstellung unseres mailcow Projektes.

Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt! +(Ist ja aktuell schwer mรถglich wegen Corona, aber trรคumen darf man ja wohl ๐Ÿฅฐ)

Hinweis: Eure Cookies bezรผglich Youtube werden nur dann gespeichert, wenn Ihr das Video hier anschaut, der Youtube Player ist im Datenschutzmodus eingebunden.

0%
\ No newline at end of file diff --git a/de/posts/2022/docs-update-2.0/index.html b/de/posts/2022/docs-update-2.0/index.html index 52e0fbb02..04ff11403 100644 --- a/de/posts/2022/docs-update-2.0/index.html +++ b/de/posts/2022/docs-update-2.0/index.html @@ -1,303 +1,9 @@ - - - - - - - - ๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungen - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungen -

Moohoo alle!
-It’s Friday then Then Saturday, Sunday (what?)

-

Wir haben eine aufregende Neuigkeit mit euch zu teilen!

-

Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0!

-

Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan!

-

So prรคsentieren wir euch ab heute:

-
    -
  • รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert)
  • -
  • Hell-/Dunkelmodus
  • -
  • Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten)
  • -
-

Alles in allem eine Neuauflage der bestehenden Dokumentation.

-
-

Mit der Mรถglichkeit, die gesamten Dokumentseiten zu รผbersetzen, bieten wir der Community die Mรถglichkeit, die Doku in ihre Sprache zu รผbersetzen.

-

Nรคhere Informationen findet ihr auf der Dokumentationsseite.

-

Aufgrund der strukturellen ร„nderungen haben wir den bisherigen Master-Zweig auf GitHub in legacy-1.0 Zweig umbenannt und alle PRs (die noch im alten Format existieren) geschlossen.

-

Wenn ihr weiterhin eure ร„nderungen in die Dokumentation einfรผgen mรถchtet, mรผsstet ihr das neue Dokumentationsschema verwenden.

-

P.S: Wir freuen uns auf euer Feedback, da es durch die Portierung noch einige Fehler geben wird.

-
-
0% -
-
- +๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungen - mailcow: dockerized - Blog +

๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungen

Moohoo alle!
It’s Friday then Then Saturday, Sunday (what?)

Wir haben eine aufregende Neuigkeit mit euch zu teilen!

Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0!

Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan!

So prรคsentieren wir euch ab heute:

  • รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert)
  • Hell-/Dunkelmodus
  • Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten)

Alles in allem eine Neuauflage der bestehenden Dokumentation.


Mit der Mรถglichkeit, die gesamten Dokumentseiten zu รผbersetzen, bieten wir der Community die Mรถglichkeit, die Doku in ihre Sprache zu รผbersetzen.

Nรคhere Informationen findet ihr auf der Dokumentationsseite.

Aufgrund der strukturellen ร„nderungen haben wir den bisherigen Master-Zweig auf GitHub in legacy-1.0 Zweig umbenannt und alle PRs (die noch im alten Format existieren) geschlossen.

Wenn ihr weiterhin eure ร„nderungen in die Dokumentation einfรผgen mรถchtet, mรผsstet ihr das neue Dokumentationsschema verwenden.

P.S: Wir freuen uns auf euer Feedback, da es durch die Portierung noch einige Fehler geben wird.

0%
\ No newline at end of file diff --git a/de/posts/2022/mailcow-feat-alpine/index.html b/de/posts/2022/mailcow-feat-alpine/index.html new file mode 100644 index 000000000..fbacdc710 --- /dev/null +++ b/de/posts/2022/mailcow-feat-alpine/index.html @@ -0,0 +1,24 @@ +[GUIDE] mailcow feat. Alpine Linux = โค๏ธ - mailcow: dockerized - Blog +

[GUIDE] mailcow feat. Alpine Linux = โค๏ธ

Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux

Moohoo zusammen!

Heute einmal kein Updatelog sondern ein Guide!

Und zwar zum Thema: mailcow auf Alpine Linux installieren, denn obwohl die Kompatibilitรคt noch nicht 100% gewรคhrleistet ist klappt mailcow auf Alpine ziemlich gut!

Einleitung

Wenn ihr euch mal mit der Linux Welt beschรคftigt habt werden euch vermutlich die ein oder anderen Betriebssysteme รผber den Weg gelaufen sein und vielleicht schon mal den Namen Alpine Linux gehรถrt haben.

Denn was Alpine Linux im vergleich zu anderen Distributionen ausmacht ist ihr Leichtgewicht. Hast du die anderen Distributionen gerade fett genannt? - NEIN!.

So kommt Alpine in der grundausgabe gerade einmal mit unter 60 Paketen daher wohingegen Debian mit knapp 400 Paketen (ca.) daher kommt.

Auch die generelle Auslastung der Systeme ist mit Alpine im schnitt deutlich geringer. (Kommt auf den Anwendungsfall an)

Doch warum hier dieses Tutorial?

Eine gute Frage! Alpine ist im vergleich zu anderen Distributionen nรคmlich ein wenig anders aufgebaut. Wir werden euch hier in diesem Guide jedoch nur die Steps ab Alpine installation erklรคren und nicht auch, wie ihr Alpine installieren kรถnnt.


apk als Paketmanager (Basics)

Alpine Linux setzt auf apk als Paketmanager, welcher zwar um einiges (und dabei meine ich wirklich einiges) schneller ist jedoch auch vom Handling her etwas weird wirkt, wenn man sich damit noch nicht befasst hat.

So wird beispielsweise mit apk update die aktuellste Paketliste geladen anstatt wie auf Systemen mit apt eben mit apt update.

Auch beim Upgradeprozess der Pakete gibt es einen Unterschied. Dort ist die Syntax dann apk upgrade anstatt apt upgrade.

Neue Pakete werden mit apk add PAKETNAME anstatt apt install PAKETNAME installiert. Das ist drastisch anders, aber man gewรถhnt sich dran.

Letzte Sache: Pakete lรถschen tun wir in Alpine mit apk del PAKETNAME.

Gut, Crash Course รผber apk erledigt. Jetzt kann es losgehen!


Die wichtigsten Pakete (git, Docker, Docker Compose) installieren.

Alles klar, die Basics zu apk kennen wir nun, also legen wir mit der mailcow Installation los.

Zuerst installieren wir die Pakete git, Docker, Docker Compose und nano, wobei letzteres meine prรคferenz fรผr Texteditoren ist und ihr auch was anderes nehmen kรถnnt.

Installiert werden die Pakete wie folgt:

1
+2
+3
+4
+
apk update
+apk upgrade
+
+apk add git docker docker-cli-compose nano

Alright die Pakete sind da. Nun mรผssen wir Docker noch zu den Startprogrammen hinzufรผgen. Dies klappt ein wenig anders als bei Debian oder anderen Linux Betriebssystemen.

Nรคmlich kommt bei Alpine Linux rc als systemctl Ersatz zum Einsatz.

Die Syntax zum hinzufรผgen des Docker Dienstes zum Startup lautet:

1
+2
+3
+
rc-update add docker default # Fรผgt Docker den Startprogrammen hinzu
+
+rc-service docker start # Startet den Docker Daemon

Systempakete von Busybox auf GNU ร„ndern bzw. Installieren

mailcow braucht zwingend einige GNU Tools um auf Alpine lauffรคhig zu sein.

Aber keine Sorge, welche das sind und wie ihr sie bekommt zeige ich euch jetzt.

Kurz was wir brauchen: grep, sed, coreutils, findutils sowie bash und curl fรผrs ausfรผhren der mailcow Skripte.

Diese installieren bzw aktualisieren (denn einige der Pakete sind schon drauf, jedoch eben nur Busybox) wir mit folgenden Befehlen:

1
+
apk add --no-cache --upgrade grep sed coreutils findutils bash curl

Haben wir diese Pakete nun installiert kรถnnen wir mailcow endlich deployen!


mailcow Deployen

Ok, die Installation von mailcow erfolgt hier wie gewohnt.

  1. Sprich erst das Git Repo in /opt Klonen mit:
1
+
git clone https://github.com/mailcow/mailcow-dockerized
  1. Dann die generate_config.sh als root ausfรผhren (./generate_config.sh)
    Achtet auf die umask 0022!!

  2. Euren FQDN (Full Qualified Domain Name) in der generate_config.sh Prompt eingeben und die Zeitzone anpassen (wenn nicht schon korrekt vom Skript erkannt).

  3. Alle Container Images mit docker compose pull herunterladen.

  4. Optional: Eventuelle Resourcenhungrige Komponenten wie SOLR, CLAMAV (bei wenig RAM) deaktivieren in der mailcow.conf.

  5. Die mailcow mit docker compose up -d starten.

  6. Empfohlen, wenn v6 aktiv: Die native Docker IPv6 Konnektivitรคt aktivieren. Dazu das update.sh Skript einmal ausfรผhren und die Frage mit dem nativen IPv6 in Docker bejahen.
    ACHTUNG! Diese Option nur dann aktivieren, wenn ihr IPv6 auch auf eurem System aktiviert habt, da es sonst zu Segmentation Faults mit Alpine Linux kommen kann, sollten kein IPv6 Adresse anliegen!

  7. Empfohlen, wenn kein v6 anliegt: Die Deaktivierung von IPv6 im mailcow Stack (siehe https://docs.mailcow.email/de/post_installation/firststeps-disable_ipv6/)


Epilog

Solltet ihr dieser Anleitung gefolgt sein dรผrfte eure mailcow jetzt erfolgreich auf einem schlanken und sehr schnellen Linux OS laufen. Allerdings solltet ihr diese Installation bzw. die Wartung dieser nicht so auf die leichte Schรผppe nehmen, da sich Alpine anders verhรคlt in bestimmten Punkten.

Auch kann es wรคhrend der Nutzung zu Fehlern kommen, welche noch nicht von uns entdeckt wurden, weswegen wir euch regelmรครŸige Backups empfehlen. (Das klappt รผbrigens auch wie gewohnt mit den Crontab Backups aus unseren Docs)

Entdeckte Fehler in Alpine kรถnnt ihr uns gerne melden. Es kann jedoch sein, dass diese nicht lรถsbar sind aufgrund der anderen Lib Bibliothek musl im Vergleich zu der bekannten Bibliothek glibc. Schaut euch dazu gerne die offizielle Wiki Seite von musl bzw glibc an: https://wiki.musl-libc.org/functional-differences-from-glibc.html


Verwendete Bilder:

0%
\ No newline at end of file diff --git a/de/posts/2022/mailcow-twitter/index.html b/de/posts/2022/mailcow-twitter/index.html index a67705575..3c8669011 100644 --- a/de/posts/2022/mailcow-twitter/index.html +++ b/de/posts/2022/mailcow-twitter/index.html @@ -1,299 +1,9 @@ - - - - - - - - Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter! - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter! -

Moohoo allerseits!

-

Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter!

-

Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen.

-

Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email.

-

Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten.

-

Bleibt gesund!
-Niklas

-
-
0% -
-
- +Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter! - mailcow: dockerized - Blog +

Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!

Moohoo allerseits!

Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter!

Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen.

Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email.

Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten.

Bleibt gesund!
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/nightly-tests-bs5/index.html b/de/posts/2022/nightly-tests-bs5/index.html index ba56e26ac..726c7fc0a 100644 --- a/de/posts/2022/nightly-tests-bs5/index.html +++ b/de/posts/2022/nightly-tests-bs5/index.html @@ -1,316 +1,22 @@ - - - - - - - - Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5 - mailcow: dockerized - Blog - -Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5 - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5 -

Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI!

-

Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen.

-

Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern.

-

Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!

-

Wir sammeln Feedback dazu auf der GitHub Seite von mailcow: -https://github.com/mailcow/mailcow-dockerized/discussions/4734. -
Antwortet dort nur bitte auf Englisch, auch wenn wir hier und auf Telegram Deutsch sprechen.

-

Durch euer Feedback kรถnnen wir die mailcow UI (MUH-I) so gut es geht optimieren, damit sich alte als auch neue User schnell zurechtfinden.

-

Also. Bock drauf? Gut! Dann nichts wie los auf die Nightly Builds. Eine Anleitung dazu findet ihr hier.

-

Wir danken euch fรผr euer zahlreiches Feedback oder generell fรผrs Testen โค๏ธ

-

Euer mailcow Team
-Niklas

-
-
0% -
-
- +Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!">

Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5

Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI!

Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen.

Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern.

Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!

Wir sammeln Feedback dazu auf der GitHub Seite von mailcow: +https://github.com/mailcow/mailcow-dockerized/discussions/4734.
Antwortet dort nur bitte auf Englisch, auch wenn wir hier und auf Telegram Deutsch sprechen.

Durch euer Feedback kรถnnen wir die mailcow UI (MUH-I) so gut es geht optimieren, damit sich alte als auch neue User schnell zurechtfinden.

Also. Bock drauf? Gut! Dann nichts wie los auf die Nightly Builds. Eine Anleitung dazu findet ihr hier.

Wir danken euch fรผr euer zahlreiches Feedback oder generell fรผrs Testen โค๏ธ

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/our-new-demos/index.html b/de/posts/2022/our-new-demos/index.html index 854e73913..8870b84ce 100644 --- a/de/posts/2022/our-new-demos/index.html +++ b/de/posts/2022/our-new-demos/index.html @@ -1,312 +1,13 @@ - - - - - - - - Unsere neuen Demos sind da! - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- Unsere neuen Demos sind da! -

Einen wunderschรถnen Guten Tag wรผnschen wir euch!

-

Endlich ist es so weit: Die neuen Demos sind da!

-

Was bedeutet das jetzt?

-

Nun, einige von euch wollen eventuell die neusten Features aus unseren Nightly Builds testen bzw. (insbesondere bezogen auf das neue UI Update) uns Feedback hinterlassen, haben aber eventuell nicht die Mรถglichkeit oder wollen nicht (kann ja auch sein), eine eigene Testinstanz zu deployen.

-

Und genau da kommt die Nightly Demo zum Einsatz! Diese ist nรคmlich jetzt brandneu und umfasst immer die neusten ร„nderungen aus den Nightly Builds direkt von GitHub bezogen, wie ihr stabiles Pendant, die Stable Demo.

-

Erreichen kรถnnt ihr die Demos unter:

- -

Die Logins sind wie gewohnt:

-
    -
  • Administrator: admin / moohoo
  • -
  • Domรคnen-Administrator: department / moohoo
  • -
  • Mailbox: demo@440044.xyz / moohoo
  • -
-

Frohes Testen und rumspielen mit den neuen Nightly Features (oder den Stabilen) wรผnschen wir euch!

-

Euer mailcow Team
-– Niklas

-
0% -
-
- +Unsere neuen Demos sind da! - mailcow: dockerized - Blog +

Unsere neuen Demos sind da!

Einen wunderschรถnen Guten Tag wรผnschen wir euch!

Endlich ist es so weit: Die neuen Demos sind da!

Was bedeutet das jetzt?

Nun, einige von euch wollen eventuell die neusten Features aus unseren Nightly Builds testen bzw. (insbesondere bezogen auf das neue UI Update) uns Feedback hinterlassen, haben aber eventuell nicht die Mรถglichkeit oder wollen nicht (kann ja auch sein), eine eigene Testinstanz zu deployen.

Und genau da kommt die Nightly Demo zum Einsatz! Diese ist nรคmlich jetzt brandneu und umfasst immer die neusten ร„nderungen aus den Nightly Builds direkt von GitHub bezogen, wie ihr stabiles Pendant, die Stable Demo.

Erreichen kรถnnt ihr die Demos unter:

Die Logins sind wie gewohnt:

  • Administrator: admin / moohoo
  • Domรคnen-Administrator: department / moohoo
  • Mailbox: demo@440044.xyz / moohoo

Frohes Testen und rumspielen mit den neuen Nightly Features (oder den Stabilen) wรผnschen wir euch!

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-01/index.html b/de/posts/2022/release-2022-01/index.html index 984d928bd..29a0ade61 100644 --- a/de/posts/2022/release-2022-01/index.html +++ b/de/posts/2022/release-2022-01/index.html @@ -1,331 +1,11 @@ - - - - - - - - ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungen - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungen -

-
- Inhalt - -
- -

Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software!

-

Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr.

-

Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ.

-

Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.B. mit dem ausgegrauten Speichern-Button in den Weiterleitungen oder der Olefy-Ping-Fix, der einen Konsolen-Spam behebt) sollten eigentlich schon behoben sein… Wir versprechen an dieser Stelle Besserung!

-

Ihr denkt wahrscheinlich schon: “Kรผrzer bitte?”… ist schon gut! Hier sind die ร„nderungen (in Kurzform!)

-
-

Sehr wichtige ร„nderungen:

-

Mit dem Update im Januar 2022 wird die bisher verwendete U2F API (fรผr die 2-Faktor-Authentifizierung) durch die neuere WebAuthn API ersetzt.

-

Was bedeutet das fรผr Euch? -Nun, wenn ihr bereits einen FIDO2-Sicherheitsschlรผssel als 2FA รผber U2F registriert habt und das Update anwendet, werdet Ihr mit einer Meldung begrรผรŸt, die besagt, dass der FIDO2-Schlรผssel noch รผber U2F lรคuft und daher als 2FA aus dem Konto entfernt wird. Aber keine Sorge! Sobald Ihr wieder in der Admin Oberlรคche seit, kรถnnt Ihr denselben Schlรผssel einfach erneut registrieren, aber diesmal als WebAuthn (nicht U2F).

-

Der Vorgang ist derselbe, sogar die Position der Schaltflรคche zum Starten der Registrierung ist die gleiche, so dass Ihr in der Lage sein solltet, den Schlรผssel ohne Probleme einrichten und verwenden zu kรถnnen.

-

Vielen Dank an @FreddleSpl0it fรผr die Implementierung!

-

In unserer Dokumentation finden Sie genauere Informationen dazu

-

Wichtige ร„nderungen:

-
    -
  • Sogo wurde auf Version 5.5.0 aktualisiert. Juhu, endlich keine ausgegrauten Schaltflรคchen mehr in den Untermenรผs!
  • -
  • Der log4j-Fix (in Solr) wurde nochmals verbessert. Auf Anraten des Bundesamtes fรผr Sicherheit in der Informationstechnik haben wir die betroffene log4j-Klasse entfernt. Der Solr-Container war zu keinem Zeitpunkt aus dem Internet erreichbar.
  • -
  • Auf Anraten des Bundesamtes fรผr Sicherheit in der Informationstechnik haben wir ClamAV auf 0.103.5 aktualisiert, da es anfรคllig fรผr einen Denial of Service Angriff war.
  • -
  • Im Olefy-Container ist der lรคstige Ping-Fehler (Spam von Olefy in der Konsole) nun endlich behoben! Danke an @16bitsysop fรผr den Fix! –> Fehlerbehebung #4401
  • -
  • Durch das Update auf Alpine 3.15 oder hรถher hat der acme-Container den SSL-Ordner geรคndert (Auch schon sporadisch bei acme-mailcow 1:79), dies wurde von @mkuron behoben. Vielen Dank dafรผr. –> Behebung des Problems #4392
  • -
  • Wir haben die Fehler in Bezug auf GeoIP und netfilter behoben (oder besser gesagt @marcvorwerk) –> Fehlerbehebung #2668
  • -
-
-

Es gab noch viel mehr! Aber das wรผrde hier den Rahmen sprengen, werft einfach einen Blick auf den Release, dann seht ihr das ganze AusmaรŸ.

-

Nochmals vielen Dank an alle Mitwirkenden und Spender.

-

Im Namen des Servercow/mailcow/tinc-Teams wรผnschen wir Ihnen (wo auch immer Ihr seit) einen angenehmen Morgen, Mittag oder Abend und bleibt gesund!

-
-
0% -
-
- +๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungen - mailcow: dockerized - Blog +

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungen

Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software!

Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr.

Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ.

Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.B. mit dem ausgegrauten Speichern-Button in den Weiterleitungen oder der Olefy-Ping-Fix, der einen Konsolen-Spam behebt) sollten eigentlich schon behoben sein… Wir versprechen an dieser Stelle Besserung!

Ihr denkt wahrscheinlich schon: “Kรผrzer bitte?”… ist schon gut! Hier sind die ร„nderungen (in Kurzform!)


Sehr wichtige ร„nderungen:

Mit dem Update im Januar 2022 wird die bisher verwendete U2F API (fรผr die 2-Faktor-Authentifizierung) durch die neuere WebAuthn API ersetzt.

Was bedeutet das fรผr Euch? +Nun, wenn ihr bereits einen FIDO2-Sicherheitsschlรผssel als 2FA รผber U2F registriert habt und das Update anwendet, werdet Ihr mit einer Meldung begrรผรŸt, die besagt, dass der FIDO2-Schlรผssel noch รผber U2F lรคuft und daher als 2FA aus dem Konto entfernt wird. Aber keine Sorge! Sobald Ihr wieder in der Admin Oberlรคche seit, kรถnnt Ihr denselben Schlรผssel einfach erneut registrieren, aber diesmal als WebAuthn (nicht U2F).

Der Vorgang ist derselbe, sogar die Position der Schaltflรคche zum Starten der Registrierung ist die gleiche, so dass Ihr in der Lage sein solltet, den Schlรผssel ohne Probleme einrichten und verwenden zu kรถnnen.

Vielen Dank an @FreddleSpl0it fรผr die Implementierung!

In unserer Dokumentation finden Sie genauere Informationen dazu

Wichtige ร„nderungen:

  • Sogo wurde auf Version 5.5.0 aktualisiert. Juhu, endlich keine ausgegrauten Schaltflรคchen mehr in den Untermenรผs!
  • Der log4j-Fix (in Solr) wurde nochmals verbessert. Auf Anraten des Bundesamtes fรผr Sicherheit in der Informationstechnik haben wir die betroffene log4j-Klasse entfernt. Der Solr-Container war zu keinem Zeitpunkt aus dem Internet erreichbar.
  • Auf Anraten des Bundesamtes fรผr Sicherheit in der Informationstechnik haben wir ClamAV auf 0.103.5 aktualisiert, da es anfรคllig fรผr einen Denial of Service Angriff war.
  • Im Olefy-Container ist der lรคstige Ping-Fehler (Spam von Olefy in der Konsole) nun endlich behoben! Danke an @16bitsysop fรผr den Fix! –> Fehlerbehebung #4401
  • Durch das Update auf Alpine 3.15 oder hรถher hat der acme-Container den SSL-Ordner geรคndert (Auch schon sporadisch bei acme-mailcow 1:79), dies wurde von @mkuron behoben. Vielen Dank dafรผr. –> Behebung des Problems #4392
  • Wir haben die Fehler in Bezug auf GeoIP und netfilter behoben (oder besser gesagt @marcvorwerk) –> Fehlerbehebung #2668

Es gab noch viel mehr! Aber das wรผrde hier den Rahmen sprengen, werft einfach einen Blick auf den Release, dann seht ihr das ganze AusmaรŸ.

Nochmals vielen Dank an alle Mitwirkenden und Spender.

Im Namen des Servercow/mailcow/tinc-Teams wรผnschen wir Ihnen (wo auch immer Ihr seit) einen angenehmen Morgen, Mittag oder Abend und bleibt gesund!

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-01a/index.html b/de/posts/2022/release-2022-01a/index.html index ebab1dbb1..f967f0277 100644 --- a/de/posts/2022/release-2022-01a/index.html +++ b/de/posts/2022/release-2022-01a/index.html @@ -1,331 +1,22 @@ - - - - - - - - ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungen - mailcow: dockerized - Blog - -๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungen -

-
- Inhalt - -
- -

Moohoo an alle.

-

Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01.

-

Das hat sich geรคndert:

-
-

Ergรคnzungen:

- -
-

ร„nderungen:

- -
-

Korrekturen:

- -
-

Um die neuesten Patches von inverse einzubinden, haben wir den SOGo Container auf den neuesten Nightly Build (2022-02-01) aktualisiert. Es wird das gleiche Tag wie in der vorherigen Version beibehalten.

-
-
0% -
-
- +Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.">

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungen

Moohoo an alle.

Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01.

Das hat sich geรคndert:


Ergรคnzungen:


ร„nderungen:


Korrekturen:


Um die neuesten Patches von inverse einzubinden, haben wir den SOGo Container auf den neuesten Nightly Build (2022-02-01) aktualisiert. Es wird das gleiche Tag wie in der vorherigen Version beibehalten.

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-03/index.html b/de/posts/2022/release-2022-03/index.html index 65097827d..c6f1ea72a 100644 --- a/de/posts/2022/release-2022-03/index.html +++ b/de/posts/2022/release-2022-03/index.html @@ -1,321 +1,18 @@ - - - - - - - - ๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungen - mailcow: dockerized - Blog - -๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungen -

Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns.

-

๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch!

-

Kommen wir nun zum Mรคrz Update unserer mailcow. -Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!).

-

Also, legen wir los!

-
-

Docker Image ร„nderungen:

-
    -
  • Dovecot wurde auf 1.161 geupdated (Imapsync + Dovecot Update)
  • -
  • Olefy wurde auf 1.9 geupdated (Olefy Update)
  • -
  • Rspamd wurde auf 1.80 geupdated (Olefy Update)
  • -
  • ClamAV wurde auf 1.44 geupdated
  • -
-

Wichtige ร„nderungen:

-
    -
  • ClamAV wurde auf Version 0.104.2 geupdated, mit dieser Version sind wir auf lange Sicht abgesichert (Tschรผss 0.103.X). Geรคndert hat sich eigentlich nur der Docker Image Prozess, der Rest lรคuft wie gewohnt. Falls nicht gerne ein Issue รถffnen auf GitHub!
  • -
  • Dovecot wurde auf 2.3.18 geupdated. Dies bringt uns auch nรคher an den Umstieg von Solr auf Xapian, mehr dazu, wenn wir an einem brauchbaren Punkt sind.
  • -
  • Der IMAPSync wurde auf Version 2.178 geupdated (innerhalb von Dovecot).
  • -
  • Oletools wurden auf einen neuen Upstream geรคndert (nutzt nun @decalage2’s repository)
  • -
-

Kleinere ร„nderungen:

-
    -
  • Die geรคnderten Doku Pfade (intern) wurden nicht in der mailcow UI angepasst, so dass ihr eine 404 Seite gesehen habt. Dies wurde behoben.
  • -
  • Der WATCHDOG_NOTIFY_EMAIL String hatte bei einer leeren Variable eine Warnung in der Console (beim starten des Stacks) ausgegeben, diese wurde entfernt, da der String nun (wenn leer) auf NULL gesetzt wird.
  • -
  • Wir haben die nsyslog-ng Version auf 3.28 aktualisiert (behebt eine Warnung in der Konsole direkt nach dem Start von Dovecot)
  • -
-
-

Aktuell war folgendes nie wichtiger: Bleibt gesund und noch viel wichtiger: passt auf euch auf!

-
-
0% -
-
- +Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!">

๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungen

Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns.

๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch!

Kommen wir nun zum Mรคrz Update unserer mailcow. +Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!).

Also, legen wir los!


Docker Image ร„nderungen:

  • Dovecot wurde auf 1.161 geupdated (Imapsync + Dovecot Update)
  • Olefy wurde auf 1.9 geupdated (Olefy Update)
  • Rspamd wurde auf 1.80 geupdated (Olefy Update)
  • ClamAV wurde auf 1.44 geupdated

Wichtige ร„nderungen:

  • ClamAV wurde auf Version 0.104.2 geupdated, mit dieser Version sind wir auf lange Sicht abgesichert (Tschรผss 0.103.X). Geรคndert hat sich eigentlich nur der Docker Image Prozess, der Rest lรคuft wie gewohnt. Falls nicht gerne ein Issue รถffnen auf GitHub!
  • Dovecot wurde auf 2.3.18 geupdated. Dies bringt uns auch nรคher an den Umstieg von Solr auf Xapian, mehr dazu, wenn wir an einem brauchbaren Punkt sind.
  • Der IMAPSync wurde auf Version 2.178 geupdated (innerhalb von Dovecot).
  • Oletools wurden auf einen neuen Upstream geรคndert (nutzt nun @decalage2’s repository)

Kleinere ร„nderungen:

  • Die geรคnderten Doku Pfade (intern) wurden nicht in der mailcow UI angepasst, so dass ihr eine 404 Seite gesehen habt. Dies wurde behoben.
  • Der WATCHDOG_NOTIFY_EMAIL String hatte bei einer leeren Variable eine Warnung in der Console (beim starten des Stacks) ausgegeben, diese wurde entfernt, da der String nun (wenn leer) auf NULL gesetzt wird.
  • Wir haben die nsyslog-ng Version auf 3.28 aktualisiert (behebt eine Warnung in der Konsole direkt nach dem Start von Dovecot)

Aktuell war folgendes nie wichtiger: Bleibt gesund und noch viel wichtiger: passt auf euch auf!

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-03a/index.html b/de/posts/2022/release-2022-03a/index.html index bec3aa1a7..d4361aa20 100644 --- a/de/posts/2022/release-2022-03a/index.html +++ b/de/posts/2022/release-2022-03a/index.html @@ -1,313 +1,22 @@ - - - - - - - - ๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungen - mailcow: dockerized - Blog - -๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungen -

Moohoo allerseits!

-

Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt.

-

Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: “Kleinvieh macht auch Mist”.

-
-
    -
  • Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist!
  • -
  • Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert.
  • -
  • Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.
  • -
  • Wir haben den Fehler behoben, dass der Spam-Alias einer Alias-Domain nicht gelรถscht wurde.
  • -
  • Wir haben Twig + Abhรคngigkeiten auf 3.3.8 aktualisiert, um eine Sicherheitslรผcke bezรผglich Twig zu schlieรŸen.
  • -
-
-

Das war’s dann auch schon. Wir hoffen, Sie sind alle gesund und munter.

-

Wir sehen uns beim nรคchsten Update!

-

Bleibt gesund -Niklas

-
-
0% -
-
- +Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.">

๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungen

Moohoo allerseits!

Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt.

Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: “Kleinvieh macht auch Mist”.


  • Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist!
  • Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert.
  • Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.
  • Wir haben den Fehler behoben, dass der Spam-Alias einer Alias-Domain nicht gelรถscht wurde.
  • Wir haben Twig + Abhรคngigkeiten auf 3.3.8 aktualisiert, um eine Sicherheitslรผcke bezรผglich Twig zu schlieรŸen.

Das war’s dann auch schon. Wir hoffen, Sie sind alle gesund und munter.

Wir sehen uns beim nรคchsten Update!

Bleibt gesund +Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-04/index.html b/de/posts/2022/release-2022-04/index.html index 6293baa0b..581d36b70 100644 --- a/de/posts/2022/release-2022-04/index.html +++ b/de/posts/2022/release-2022-04/index.html @@ -1,344 +1,22 @@ - - - - - - - - ๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungen - mailcow: dockerized - Blog - -๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungen -

-
- Inhalt - -
- -

Moohoo zusammen!

-

Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow.

-

Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind:

-
-

Wichtige ร„nderungen

-
    -
  • -

    Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein.
    Hinweis: Das 5.5.2 update wird (vermutlich) teil des 2022-04a Updates sein, wenn inverse dieses im April verรถffentlicht.

    -
  • -
  • -

    Rspamd wurde auf 3.2.1 aktualisiert. (Detailiertere Patchnotes finden sich hier).

    -
  • -
  • -

    Die mailcow nutzt nun die offiziellen ClamAV Docker Container. Aus diesem Grund gibt es nun ein neues Volume (clamd-db-vol-1) in welchem die Signaturen fรผr ClamAV aufbewahrt werden. Diese ร„nderungen erlauben es uns ClamAV schneller und effizienter nach release in die mailcow zu integrieren. Hinweis: Die ClamAV Version der mailcow ist noch immer 0.104.2. Die neue Version 0.105 wird teil der mailcow sein, sobald diese verรถffentlicht wurde.

    -
  • -
-
-

Kleinere ร„nderungen

-
    -
  • Autodiscover ist nun mit App Passwรถrtern kompatibel.
  • -
  • Die Postmap Access List wurde auf einen neueren Stand gebracht.
  • -
  • Neue Franzรถsische รœbersetzungen.
  • -
-
-

Schaut euch die komplette Liste der ร„nderungen noch einmal bei Github an: Hier klicken

-

Wir hoffen euch geht es gut und ihr seid gesund.

-

Ganz egal wo ihr auch seid: Passt auf euch auf!

-
-
0% -
-
- +Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.">

๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungen

Moohoo zusammen!

Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow.

Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind:


Wichtige ร„nderungen

  • Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein.
    Hinweis: Das 5.5.2 update wird (vermutlich) teil des 2022-04a Updates sein, wenn inverse dieses im April verรถffentlicht.

  • Rspamd wurde auf 3.2.1 aktualisiert. (Detailiertere Patchnotes finden sich hier).

  • Die mailcow nutzt nun die offiziellen ClamAV Docker Container. Aus diesem Grund gibt es nun ein neues Volume (clamd-db-vol-1) in welchem die Signaturen fรผr ClamAV aufbewahrt werden. Diese ร„nderungen erlauben es uns ClamAV schneller und effizienter nach release in die mailcow zu integrieren. Hinweis: Die ClamAV Version der mailcow ist noch immer 0.104.2. Die neue Version 0.105 wird teil der mailcow sein, sobald diese verรถffentlicht wurde.


Kleinere ร„nderungen

  • Autodiscover ist nun mit App Passwรถrtern kompatibel.
  • Die Postmap Access List wurde auf einen neueren Stand gebracht.
  • Neue Franzรถsische รœbersetzungen.

Schaut euch die komplette Liste der ร„nderungen noch einmal bei Github an: Hier klicken

Wir hoffen euch geht es gut und ihr seid gesund.

Ganz egal wo ihr auch seid: Passt auf euch auf!

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-05/index.html b/de/posts/2022/release-2022-05/index.html index 6e546e4d8..d4f7863c7 100644 --- a/de/posts/2022/release-2022-05/index.html +++ b/de/posts/2022/release-2022-05/index.html @@ -1,403 +1,45 @@ - - - - - - - - ๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungen - mailcow: dockerized - Blog - -๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungen -

2022-05c

-

Wir sind es wieder (nochmal)!

-

Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist.

-

Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden.

-

Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: -https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c

-

Bleibt gesund

-

Niklas

-
-

2022-05b

-

Wir sind es wieder!

-

Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert.

-

Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.

-

Dies ist nun behoben.

-

AuรŸerdem haben wir eine kleine ร„nderung an der Benutzeroberflรคche vorgenommen. Wusstet ihr schon, dass es ein kleines Plus-Symbol auf der linken Seite einer Domain/Mailbox gibt? Nein? Keine Sorge, es war ein wenig schwer zu sehen… bis jetzt :)

-

Wie immer gibt es auch zu diesem Update eine eigene Release Seite auf GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05b

-

Das war’s im Grunde… oh nein, warte, eine Sache noch! -Wir haben jetzt die mailcow Version in unser Bug Reporting Formular auf GitHub aufgenommen. Wenn ihr also einen Bug melden wollt, fรผllt bitte auch die Versionszeile im Issue-Formular aus.

-

Das war’s dann auch schon!

-

Nochmals vielen Dank fรผr alle Mitwirkenden und mailcow Nutzer/Admins.

-

Euer mailcow Team

-

Niklas

-
-

2022-05a

-

Hallo nochmal Leute,

-

wir haben gerade den ersten Hotfix fรผr 2022-05 verรถffentlicht.

-

Er behebt einen kritischen UI Bug, der nach dem Update 2022-05 zu einer Unerreichbarkeit der UI fรผhrte.

-

Das Problem war ein fehlender Platzhalter, der dazu fรผhrte, dass ein wichtiger Ordner aus dem Git Repository gelรถscht wurde, der fรผr die Anzeige der UI benรถtigt wird.

-

Wir entschuldigen uns dafรผr.

-

Euer mailcow Team

-

Niklas

-
-

2022-05

-
-

Das neue mailcow update 2022-05 hier ist!
-Yoda, in einem Paralleluniversum

-
-

Wie dem auch sei, haben wir diesen Monat wieder neue Sachen fรผr die mailcow fรผr euch. -Also: Lasst uns loslegen oder?

-

Tags

-

Dank der Hilfe von @FredleSpl0it besitzt die mailcow nun Tags. Tags? Ja Tags! Diese kรถnnen zum Filtern bzw. suchen verwendet werden. Hinzufรผgen kรถnnt ihr diese entweder, indem ihr eine Domain/Mailbox bearbeitet oder eine neue anlegt. In beiden Fรคllen lacht euch der Tags Bereich an.

-
-

SOGo 5.6.0

-

Hab gehรถrt es gibt ne neue SOGo Version? Jep! Und die haben wir auch bereits an Bord. Genauere Infos dazu entnehmt ihr bitte den offiziellen Changelogs von inverse (den SOGo Entwicklern): https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.6.0

-
-

Barrierefreiheit (Bildschirmleser)

-

@mkuron hat die mailcow nun noch ein wenig zugรคnglicher fรผr blinde Menschen gemacht. (Respekt an der Stelle fรผr alle, welche trotz dieser Einschrรคnkung SpaรŸ an der IT Welt haben).

-
-

Update.sh ร„nderung

-

Wir haben einen neuen Parameter fรผr das Update.sh-Skript implementiert, der die Online-Prรผfung zu Beginn des Update-Prozesses รผberspringt. Dies war fรผr einige Leute nicht mรถglich, da alle ICMP-Verbindungen von und zur Mailcow blockiert wurden. Verwendet einfach den Parameter –skip-ping-check, wenn ihr das Update.sh-Skript ausfรผhren (aber nur, wenn ihr wirklich keine ICMP-Verbindungen zu und von eurer mailcow erlaubt).

-
-

Neue API Mรถglichkeiten

-

Wir haben die API erweitert. Jetzt kann man Domains nach Tags suchen. AuรŸerdem wurde eine API-Schnittstelle mit der Versionierung der Mailcow hinzugefรผgt. Fรผr detailliertere API Informationen werft einfach einen Blick auf die extra API Seite eurer mailcow (eure.mailcow.domain/api).

-

Danke an @lars-net und @FredleSpl0it fรผr diese ร„nderungen.

-
-

Fรผr eine detailliertere oder granularere Struktur des Updates, schaut bitte auf die GitHub Seite:

-

Das war’s fรผr diesen Monat.

-

Wir sehen uns im Juni oder frรผher wieder (sollte es kritische Bugs geben…).

-

Bleibt gesund

-

Niklas

-
-
0% -
-
- +Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.">

๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungen

2022-05c

Wir sind es wieder (nochmal)!

Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist.

Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden.

Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c

Bleibt gesund

Niklas


2022-05b

Wir sind es wieder!

Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert.

Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.

Dies ist nun behoben.

AuรŸerdem haben wir eine kleine ร„nderung an der Benutzeroberflรคche vorgenommen. Wusstet ihr schon, dass es ein kleines Plus-Symbol auf der linken Seite einer Domain/Mailbox gibt? Nein? Keine Sorge, es war ein wenig schwer zu sehen… bis jetzt :)

Wie immer gibt es auch zu diesem Update eine eigene Release Seite auf GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05b

Das war’s im Grunde… oh nein, warte, eine Sache noch! +Wir haben jetzt die mailcow Version in unser Bug Reporting Formular auf GitHub aufgenommen. Wenn ihr also einen Bug melden wollt, fรผllt bitte auch die Versionszeile im Issue-Formular aus.

Das war’s dann auch schon!

Nochmals vielen Dank fรผr alle Mitwirkenden und mailcow Nutzer/Admins.

Euer mailcow Team

Niklas


2022-05a

Hallo nochmal Leute,

wir haben gerade den ersten Hotfix fรผr 2022-05 verรถffentlicht.

Er behebt einen kritischen UI Bug, der nach dem Update 2022-05 zu einer Unerreichbarkeit der UI fรผhrte.

Das Problem war ein fehlender Platzhalter, der dazu fรผhrte, dass ein wichtiger Ordner aus dem Git Repository gelรถscht wurde, der fรผr die Anzeige der UI benรถtigt wird.

Wir entschuldigen uns dafรผr.

Euer mailcow Team

Niklas


2022-05

Das neue mailcow update 2022-05 hier ist!
Yoda, in einem Paralleluniversum

Wie dem auch sei, haben wir diesen Monat wieder neue Sachen fรผr die mailcow fรผr euch. +Also: Lasst uns loslegen oder?

Tags

Dank der Hilfe von @FredleSpl0it besitzt die mailcow nun Tags. Tags? Ja Tags! Diese kรถnnen zum Filtern bzw. suchen verwendet werden. Hinzufรผgen kรถnnt ihr diese entweder, indem ihr eine Domain/Mailbox bearbeitet oder eine neue anlegt. In beiden Fรคllen lacht euch der Tags Bereich an.


SOGo 5.6.0

Hab gehรถrt es gibt ne neue SOGo Version? Jep! Und die haben wir auch bereits an Bord. Genauere Infos dazu entnehmt ihr bitte den offiziellen Changelogs von inverse (den SOGo Entwicklern): https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.6.0


Barrierefreiheit (Bildschirmleser)

@mkuron hat die mailcow nun noch ein wenig zugรคnglicher fรผr blinde Menschen gemacht. (Respekt an der Stelle fรผr alle, welche trotz dieser Einschrรคnkung SpaรŸ an der IT Welt haben).


Update.sh ร„nderung

Wir haben einen neuen Parameter fรผr das Update.sh-Skript implementiert, der die Online-Prรผfung zu Beginn des Update-Prozesses รผberspringt. Dies war fรผr einige Leute nicht mรถglich, da alle ICMP-Verbindungen von und zur Mailcow blockiert wurden. Verwendet einfach den Parameter –skip-ping-check, wenn ihr das Update.sh-Skript ausfรผhren (aber nur, wenn ihr wirklich keine ICMP-Verbindungen zu und von eurer mailcow erlaubt).


Neue API Mรถglichkeiten

Wir haben die API erweitert. Jetzt kann man Domains nach Tags suchen. AuรŸerdem wurde eine API-Schnittstelle mit der Versionierung der Mailcow hinzugefรผgt. Fรผr detailliertere API Informationen werft einfach einen Blick auf die extra API Seite eurer mailcow (eure.mailcow.domain/api).

Danke an @lars-net und @FredleSpl0it fรผr diese ร„nderungen.


Fรผr eine detailliertere oder granularere Struktur des Updates, schaut bitte auf die GitHub Seite:

Das war’s fรผr diesen Monat.

Wir sehen uns im Juni oder frรผher wieder (sollte es kritische Bugs geben…).

Bleibt gesund

Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-05d/index.html b/de/posts/2022/release-2022-05d/index.html index b4b94d8cb..16804e2ca 100644 --- a/de/posts/2022/release-2022-05d/index.html +++ b/de/posts/2022/release-2022-05d/index.html @@ -1,309 +1,25 @@ - - - - - - - - โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธ - mailcow: dockerized - Blog - -โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธ - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธ -

Hallo zusammen,

-

wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr).

-

Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API.

-

Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen.

-

Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d

-

Das Update entfernt keine wichtigen Funktionen aus der mailcow bzw. dem IMAPSYNC!

-

Bleibt gesund!

-

Niklas

-
-
0% -
-
- +Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d">

โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธ

Hallo zusammen,

wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr).

Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API.

Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen.

Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d

Das Update entfernt keine wichtigen Funktionen aus der mailcow bzw. dem IMAPSYNC!

Bleibt gesund!

Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-06/index.html b/de/posts/2022/release-2022-06/index.html index 20c011495..b8ac6f447 100644 --- a/de/posts/2022/release-2022-06/index.html +++ b/de/posts/2022/release-2022-06/index.html @@ -1,355 +1,28 @@ - - - - - - - - ๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungen - mailcow: dockerized - Blog - -๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungen -

Moohoo zusammen!

-

Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt:

-

Docker Compose v2 Unterstรผtzung!!!

-

Doch fangen wir erstmal mit dem kleinkram an:

-

Kleinere ร„nderungen

-
    -
  • ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt).
  • -
  • Postfix wurde auf Version 3.5.6 geupdated.
  • -
  • netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated.
  • -
-

GrรถรŸere ร„nderungen

-
    -
  • Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert. Hinweis: Die Spรผrbarkeit der Verbesserungen kann je nach Mailbox/Domain Anzahl variieren.
  • -
  • Die mailcow unterstรผtzt absofort Docker Compose v2! Nรคheres kommt jetzt:
  • -
-

Docker Compose v2 (endlich)

-

Jap, richtig gelesen endlich ist die mailcow auch mit Docker Compose v2 kompatibel! Doch warum jetzt Docker Compose v2? Werden sich sicherlich einige von euch fragen. -Nun die Sache ist ziemlich einfach und schnell erklรคrt: “Docker Compose v1 alt (deprecated), Docker Compose v2 neu (von Docker selbst gepflegt)”.

-

Die Installation von Compose v2 kann anhand der abgeรคnderten Dokumentation (klicke hier) entnommen werden.

-

Docker Compose v1 verliert seinen offiziellen Support seitens Docker im Oktober 2022, die mailcow hingegen unterstรผtzt Compose v1 jedoch noch bis Dezember 2022 (dem 2022-12 Update).

-
-

Deswegen auch Compose v2 Part 1 Update, aber psst

-
-

Ab Dezember ist dann ein Update auf Compose v2 zwingend erforderlich, solltet ihr mailcow weiter nutzen wollen.

-

Sonst noch was? Ach ja! Beim Thema IPv6 gibt es auch eine wichtige ร„nderung, nรคmlich wird ab sofort (bis Dezember) das Webinterface standardmรครŸig nur noch รผber IPv4 erreichbar sein. -Aber keine Sorge, mit Hilfe der Anleitung kรถnnt ihr die Erreichbarkeit wieder herstellen.

-

Warum das so gemacht werden muss und nicht (wie alles andere) Plug and Play mรครŸig weiterhin funktioniert? Nun recht simpel: Die beiden Compose Versionen interpretieren die docker-compose.yml teilweise etwas anders. Eigentlich ist alles beim alten geblieben und das funktioniert auch wunderbar, jedoch mit dem genannten IPv6 Binding gab es leider Probleme diese Option im Dual Support aufrecht zu erhalten. Ab Dezember 2022 wird die IPv6 Konnektivitรคt dann wieder standardmรครŸig aktiviert (wie bisher).

-
-

Wie viel Text wollt ihr schreiben?
-Antwort: Ja

-
-
-

Ok das war es dann aber auch diesmal.

-

Wenn ihr den kompletten Changelog lesen wollt kรถnnt ihr das (wie immer) gerne auf GitHub machen.

-

Bleibt gesund.

-

Euer mailcow Team
-Niklas

-
-
0% -
-
- +Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.">

๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungen

Moohoo zusammen!

Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt:

Docker Compose v2 Unterstรผtzung!!!

Doch fangen wir erstmal mit dem kleinkram an:

Kleinere ร„nderungen

  • ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt).
  • Postfix wurde auf Version 3.5.6 geupdated.
  • netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated.

GrรถรŸere ร„nderungen

  • Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert. Hinweis: Die Spรผrbarkeit der Verbesserungen kann je nach Mailbox/Domain Anzahl variieren.
  • Die mailcow unterstรผtzt absofort Docker Compose v2! Nรคheres kommt jetzt:

Docker Compose v2 (endlich)

Jap, richtig gelesen endlich ist die mailcow auch mit Docker Compose v2 kompatibel! Doch warum jetzt Docker Compose v2? Werden sich sicherlich einige von euch fragen. +Nun die Sache ist ziemlich einfach und schnell erklรคrt: “Docker Compose v1 alt (deprecated), Docker Compose v2 neu (von Docker selbst gepflegt)”.

Die Installation von Compose v2 kann anhand der abgeรคnderten Dokumentation (klicke hier) entnommen werden.

Docker Compose v1 verliert seinen offiziellen Support seitens Docker im Oktober 2022, die mailcow hingegen unterstรผtzt Compose v1 jedoch noch bis Dezember 2022 (dem 2022-12 Update).

Deswegen auch Compose v2 Part 1 Update, aber psst

Ab Dezember ist dann ein Update auf Compose v2 zwingend erforderlich, solltet ihr mailcow weiter nutzen wollen.

Sonst noch was? Ach ja! Beim Thema IPv6 gibt es auch eine wichtige ร„nderung, nรคmlich wird ab sofort (bis Dezember) das Webinterface standardmรครŸig nur noch รผber IPv4 erreichbar sein. +Aber keine Sorge, mit Hilfe der Anleitung kรถnnt ihr die Erreichbarkeit wieder herstellen.

Warum das so gemacht werden muss und nicht (wie alles andere) Plug and Play mรครŸig weiterhin funktioniert? Nun recht simpel: Die beiden Compose Versionen interpretieren die docker-compose.yml teilweise etwas anders. Eigentlich ist alles beim alten geblieben und das funktioniert auch wunderbar, jedoch mit dem genannten IPv6 Binding gab es leider Probleme diese Option im Dual Support aufrecht zu erhalten. Ab Dezember 2022 wird die IPv6 Konnektivitรคt dann wieder standardmรครŸig aktiviert (wie bisher).

Wie viel Text wollt ihr schreiben?
Antwort: Ja


Ok das war es dann aber auch diesmal.

Wenn ihr den kompletten Changelog lesen wollt kรถnnt ihr das (wie immer) gerne auf GitHub machen.

Bleibt gesund.

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-07/index.html b/de/posts/2022/release-2022-07/index.html index c6e525c27..c2d9eeb4d 100644 --- a/de/posts/2022/release-2022-07/index.html +++ b/de/posts/2022/release-2022-07/index.html @@ -1,357 +1,18 @@ - - - - - - - - โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungen - mailcow: dockerized - Blog - -โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungen -

Moohoo zusammen!

-

Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen:

-

2FA ร„nderungen

-
    -
  • Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten).
  • -
  • Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren.
    Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird.
  • -
  • Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.
  • -
-

Das Update wurde von @FreddleSpl0it (Patrick) entwickelt. Danke dafรผr :)

-

Apropos Patrick, er ist seit Anfang Juni offizielles Mitglied der tinc und widmet sich nun intensiver der mailcow Entwicklung und dem ganzen hier drum herum!

-

Also lest ihr eventuell auch bald mal was von Ihm hier auf der Blogseite ๐Ÿ˜Š

-
-

Gut, wo waren wir? Ach genau! Bei den weiteren ร„nderungen neben der neuen 2FA mรถglichkeiten:

-

Docker Image ร„nderungen (mailcow Stack)

-
    -
  • SOGo (nicht unsere Software, wird oft gefragt) wurde auf Version 5.7.0 aktualisiert. In der mailcow wurde dies im Docker Image sogo:1.109 implementiert. Der offizielle Changelog seitens SOGo gibt es hier: https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.7.0. Danke an @MAGICCC fรผrs Updaten.
  • -
  • Im ClamAV Container wurde der Healthcheck so umgebaut, dass dieser nun auch dann healthy ist, wenn ClamAV รผberhaupt nicht genutzt wird. (Ist durch das Wechseln auf die offiziellen Images wohl kaputt gegangen). Dies ist im Image clamav:1.53 enthalten! Danke an @mritzmann fรผrs implementieren.
  • -
  • Dovecot wurde auf 2.3.19.1 geupdated (Changelog). Dies kommt mit dem Docker Image dovecot:1.17 mit.
  • -
-

Diverse ร„nderungen/Fixes

-
    -
  • Das update.sh Skript updated nun nicht mehr ungefragt die installierte docker-compose Version. Dies wurde von einigen Usern angemerkt, danke dafรผr!
  • -
  • Ebenfalls im update.sh Skript kann nun auch nur die docker-compose Version geupdated werden (mit –update-compose). Diese Funktion wurde im cold_standby.sh Skript implementiert, sodass die Zielmaschine neben dem Docker Image Aufrรคumprozess nun auch ein Update von docker-compose bekommt.
  • -
  • Ein Lua Crash mit SOGo wurde in RSPAMD gefixt. Danke an @andryyy
  • -
  • In den SyncJobs wurde die Standardmailbox (welche immer erscheint, bei einem neuen Job) entfernt. So kann das ganze nicht mehr in ein falsches Postfach gehen ausversehen. Danke an @RafaelKr
  • -
  • Es konnte eine Blanke Seite im Browser angezeigt werden, wenn die WebUI mit /user aufgerufen wurde, aber kein Benutzer angemeldet war. Das wurde behoben. Danke an @mhofer117
  • -
-
-

Puh, mir tun die Finger vom schreiben weh ๐Ÿ™ƒ

-

Aber egal, das war es fรผr dieses Mal.

-

Wenn ihr den kompletten Changelog lesen wollt kรถnnt ihr das (wie immer) gerne auf GitHub machen.

-

Nun aber noch ein paar Worte zu den Major Updates 1x im Monat:

-

Der Update Zyklus

-

Bisher war es ja so, dass diese am ersten Dienstag im Monat erscheinen. Wir haben aber festgestellt, dass die Update Qualitรคt und Quantitรคt stagniert und auch die generellen Tests etwas zu kurz kamen. Natรผrlich sind die Updates nicht immer 100% Fehlerfrei und bei einem Open-Source Projekt ist das Feedback der Community ja umso wichtiger, aber wir wollen trotzdem aus eigenem Ermessen sagen kรถnnen: “Jawohl, das Update ist soweit fertig getestet und auf den gรคngigsten Installationsarten funktional.”, was uns eben dazu gefรผhrt hat keinen festen Termin mehr fรผr ein Major Update im Monat nennen zu wollen.

-

Es wird trotzdem monatlich mindestens ein grรถรŸeres Feature Update geben, nur nicht mehr an einem festen Tag wie bisher.

-

Aussicht auf die Zukunft

-

Dennoch, wir planen fรผr das August Update eine neue Art von Updates: die Nightly Updates! Diese erlauben es uns, euch neue Features oder Major ร„nderungen testen zu lassen bevor diese richtig produktiv fรผr alle gehen.

-

Dazu wird es im update.sh Skript die Mรถglichkeit geben zwischen stable und nightly zu wechseln (macht aber vorher immer ein Backup, denn Kein Backup, kein Mitleid!).

-

Als erster groรŸer Nightly Test steht das neue Bootstrap 5 Update an, welches dann voraussichtlich im September 2022 fรผr alle im Stable Build landen soll.

-

Mehr zu den nightly Tests gibt es dann, wenn es soweit ist.

-
-

Gut, genug euer Ohr abgekaut! (Sagt man bei einem Lesetext wirklich Ohr abgekaut oder eher Auge ausgebrannt?)

-

Bleibt jedenfalls gesund und passt auf euch auf!

-

Euer mailcow Team
-Niklas

-
-
0% -
-
- +2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.">

โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungen

Moohoo zusammen!

Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen:

2FA ร„nderungen

  • Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten).
  • Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren.
    Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird.
  • Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.

Das Update wurde von @FreddleSpl0it (Patrick) entwickelt. Danke dafรผr :)

Apropos Patrick, er ist seit Anfang Juni offizielles Mitglied der tinc und widmet sich nun intensiver der mailcow Entwicklung und dem ganzen hier drum herum!

Also lest ihr eventuell auch bald mal was von Ihm hier auf der Blogseite ๐Ÿ˜Š


Gut, wo waren wir? Ach genau! Bei den weiteren ร„nderungen neben der neuen 2FA mรถglichkeiten:

Docker Image ร„nderungen (mailcow Stack)

  • SOGo (nicht unsere Software, wird oft gefragt) wurde auf Version 5.7.0 aktualisiert. In der mailcow wurde dies im Docker Image sogo:1.109 implementiert. Der offizielle Changelog seitens SOGo gibt es hier: https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.7.0. Danke an @MAGICCC fรผrs Updaten.
  • Im ClamAV Container wurde der Healthcheck so umgebaut, dass dieser nun auch dann healthy ist, wenn ClamAV รผberhaupt nicht genutzt wird. (Ist durch das Wechseln auf die offiziellen Images wohl kaputt gegangen). Dies ist im Image clamav:1.53 enthalten! Danke an @mritzmann fรผrs implementieren.
  • Dovecot wurde auf 2.3.19.1 geupdated (Changelog). Dies kommt mit dem Docker Image dovecot:1.17 mit.

Diverse ร„nderungen/Fixes

  • Das update.sh Skript updated nun nicht mehr ungefragt die installierte docker-compose Version. Dies wurde von einigen Usern angemerkt, danke dafรผr!
  • Ebenfalls im update.sh Skript kann nun auch nur die docker-compose Version geupdated werden (mit –update-compose). Diese Funktion wurde im cold_standby.sh Skript implementiert, sodass die Zielmaschine neben dem Docker Image Aufrรคumprozess nun auch ein Update von docker-compose bekommt.
  • Ein Lua Crash mit SOGo wurde in RSPAMD gefixt. Danke an @andryyy
  • In den SyncJobs wurde die Standardmailbox (welche immer erscheint, bei einem neuen Job) entfernt. So kann das ganze nicht mehr in ein falsches Postfach gehen ausversehen. Danke an @RafaelKr
  • Es konnte eine Blanke Seite im Browser angezeigt werden, wenn die WebUI mit /user aufgerufen wurde, aber kein Benutzer angemeldet war. Das wurde behoben. Danke an @mhofer117

Puh, mir tun die Finger vom schreiben weh ๐Ÿ™ƒ

Aber egal, das war es fรผr dieses Mal.

Wenn ihr den kompletten Changelog lesen wollt kรถnnt ihr das (wie immer) gerne auf GitHub machen.

Nun aber noch ein paar Worte zu den Major Updates 1x im Monat:

Der Update Zyklus

Bisher war es ja so, dass diese am ersten Dienstag im Monat erscheinen. Wir haben aber festgestellt, dass die Update Qualitรคt und Quantitรคt stagniert und auch die generellen Tests etwas zu kurz kamen. Natรผrlich sind die Updates nicht immer 100% Fehlerfrei und bei einem Open-Source Projekt ist das Feedback der Community ja umso wichtiger, aber wir wollen trotzdem aus eigenem Ermessen sagen kรถnnen: “Jawohl, das Update ist soweit fertig getestet und auf den gรคngigsten Installationsarten funktional.”, was uns eben dazu gefรผhrt hat keinen festen Termin mehr fรผr ein Major Update im Monat nennen zu wollen.

Es wird trotzdem monatlich mindestens ein grรถรŸeres Feature Update geben, nur nicht mehr an einem festen Tag wie bisher.

Aussicht auf die Zukunft

Dennoch, wir planen fรผr das August Update eine neue Art von Updates: die Nightly Updates! Diese erlauben es uns, euch neue Features oder Major ร„nderungen testen zu lassen bevor diese richtig produktiv fรผr alle gehen.

Dazu wird es im update.sh Skript die Mรถglichkeit geben zwischen stable und nightly zu wechseln (macht aber vorher immer ein Backup, denn Kein Backup, kein Mitleid!).

Als erster groรŸer Nightly Test steht das neue Bootstrap 5 Update an, welches dann voraussichtlich im September 2022 fรผr alle im Stable Build landen soll.

Mehr zu den nightly Tests gibt es dann, wenn es soweit ist.


Gut, genug euer Ohr abgekaut! (Sagt man bei einem Lesetext wirklich Ohr abgekaut oder eher Auge ausgebrannt?)

Bleibt jedenfalls gesund und passt auf euch auf!

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-07a/index.html b/de/posts/2022/release-2022-07a/index.html index 244bc13d7..9ba53ad15 100644 --- a/de/posts/2022/release-2022-07a/index.html +++ b/de/posts/2022/release-2022-07a/index.html @@ -1,317 +1,25 @@ - - - - - - - - โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungen - mailcow: dockerized - Blog - -โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungen -

Moohoo allerseits!

-

Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt.

-

Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update)

-
-

Noch einmal zusammen gefasst, was sich รคndert:

-
    -
  • Das Schemata der Domain Sektion der API wurde angepasst und verbessert.
  • -
  • Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt)
  • -
  • Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits)
  • -
  • ClamAV wurde auf Version 0.105.1 angehoben.
  • -
-
-

Das war’s dann auch schon. Wir hoffen, ihr seit alle gesund und munter.

-

Wir sehen uns beim nรคchsten Update!

-

Bleibt gesund
-Niklas

-
-
0% -
-
- +Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.">

โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungen

Moohoo allerseits!

Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt.

Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update)


Noch einmal zusammen gefasst, was sich รคndert:

  • Das Schemata der Domain Sektion der API wurde angepasst und verbessert.
  • Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt)
  • Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits)
  • ClamAV wurde auf Version 0.105.1 angehoben.

Das war’s dann auch schon. Wir hoffen, ihr seit alle gesund und munter.

Wir sehen uns beim nรคchsten Update!

Bleibt gesund
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-08/index.html b/de/posts/2022/release-2022-08/index.html index 8fc61ea04..af619cdfb 100644 --- a/de/posts/2022/release-2022-08/index.html +++ b/de/posts/2022/release-2022-08/index.html @@ -1,361 +1,30 @@ - - - - - - - - ๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungen - mailcow: dockerized - Blog - -๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungen -

Moohoo zusammen!

-
-

Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!!

-
-

Ja… was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder?

-

Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt.

-

Fangen wir erst mal recht sachte an:

-

Stabile ร„nderungen (stable Branch)

-
    -
  • OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it
  • -
  • SOGo wurde auf 5.7.1 geupdated (Kompletter Changelog hier) erhรคlt im mailcow Stack Container Version: mailcow/sogo:1.110 #4719 von @MAGICCC und @DerLinkman
  • -
  • Das Docker Compose Plugin von Docker wird nun auch unterstรผtzt. Dementspechend wird keine Standalone Version von Docker Compose (docker-compose) mehr vorrausgesetzt. #4725 von @DerLinkman
  • -
  • Der Passwort ร„ndern Knopf (als User angemeldet) in der mailcow UI war verschwunden, wenn man SOGo Deaktiviert hatte. Das wurde gefixt. Commit: 4322c98 von @DerLinkman
  • -
-

Kommen wir nun zum grรถรŸten Teil des Updates: Die Nightly Builds.

-
-

Nightly Builds? Was hat es damit auf sich?

-

Ab dem 2022-08 Update wird es regelmรครŸig neben den Major Updates (wie, dem hier) Nightly Updates zum Testen und Feedback sammeln geben.

-

Dies bringt uns die Mรถglichkeit ein, von einigen Leuten direkten Input zu bekommen und unsere eigenen Tests auf mehrere Szenarien auszuweiten.

-

Doch was springt dabei fรผr euch bei rum, fragt ihr euch?

-

Nun, wir wollen die Nightly Builds in erster Linie dafรผr nutzen, um neue (auch grรถรŸere) Funktionen zum Testen anzubieten, welche ihr dann schon vor allen anderen Leuten (die auf Nummer sichergehen wollen) testen kรถnnt.

-

HeiรŸt in dem Beispiel hier konkret das neue UI Update (Das MUH-I Update) auf Bootstrap 5, welches zum Start direkt im Nightly bereitsteht, fรผr euch zum Testen.

-

Doch zum Bootstrap 5 UI wird es einen separaten Blog Eintrag geben, der eure Mithilfe genauer erlรคutert.

-

Wie bekomme ich denn nun die Nightly Updates?

-

Das ist nicht so schwer.

-

Wir haben in der update.sh zwei neue Parameter hinzugefรผgt --nightly und --stable.

-

Je nachdem, welche Updates ihr gerade bezieht, kรถnnt ihr mit dem Parameter auf den jeweiligen Update Zweig wechseln.

-

Als Beispiel:

-

Ihr seid aktuell (wie รผblich) im stable Branch (master) (Das ist der Standard), dann mรผsst ihr update.sh --nightly ausfรผhren, um auf die Nightly Builds zu wechseln.

-

Wenn ihr von Nightly wieder auf Stable wollt, mรผsst ihr dementsprechend update.sh --stable ausfรผhren.

-

Aber ACHTUNG!!! Sichert eure mailcow komplett, wenn ihr vorhabt, auf Nightly zu wechseln. Wir haften nicht fรผr etwaige Datenkorruptionen/Datenverluste!! Seit also gewarnt.

-

Wir haben auf der Dokumentationsseite einen Best Practice Guide verรถffentlicht, welcher eine gute Mรถglichkeit zum Testen der Nightly Builds aufzeigt.

-

Generell gilt: Die Nightly Builds sind NICHT Ich wiederhole NICHT fรผr den produktiven Einsatz freigegeben! Es kann funktionieren und wenn das so ist, ist das auch super, es kann aber eben auch nicht funktionieren. Nur damit ihr Bescheid wisst.

-
-

Fรผr die nรคchsten Updates wird es neben den Stable Updates News auch noch Nightly Update News geben, welche dann eben die Zusammenfassung der letzten Nightly Builds beherbergt.

-

Solltet ihr noch weitere Informationen zu den Nightly Builds benรถtigen, schaut generell mal in die Dokumentation hinein.

-

Bis dahin. Alles Gute und bleibt gesund.

-

Euer mailcow Team
-Niklas

-
-
0% -
-
- +Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.">

๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungen

Moohoo zusammen!

Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!!

Ja… was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder?

Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt.

Fangen wir erst mal recht sachte an:

Stabile ร„nderungen (stable Branch)

  • OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it
  • SOGo wurde auf 5.7.1 geupdated (Kompletter Changelog hier) erhรคlt im mailcow Stack Container Version: mailcow/sogo:1.110 #4719 von @MAGICCC und @DerLinkman
  • Das Docker Compose Plugin von Docker wird nun auch unterstรผtzt. Dementspechend wird keine Standalone Version von Docker Compose (docker-compose) mehr vorrausgesetzt. #4725 von @DerLinkman
  • Der Passwort ร„ndern Knopf (als User angemeldet) in der mailcow UI war verschwunden, wenn man SOGo Deaktiviert hatte. Das wurde gefixt. Commit: 4322c98 von @DerLinkman

Kommen wir nun zum grรถรŸten Teil des Updates: Die Nightly Builds.


Nightly Builds? Was hat es damit auf sich?

Ab dem 2022-08 Update wird es regelmรครŸig neben den Major Updates (wie, dem hier) Nightly Updates zum Testen und Feedback sammeln geben.

Dies bringt uns die Mรถglichkeit ein, von einigen Leuten direkten Input zu bekommen und unsere eigenen Tests auf mehrere Szenarien auszuweiten.

Doch was springt dabei fรผr euch bei rum, fragt ihr euch?

Nun, wir wollen die Nightly Builds in erster Linie dafรผr nutzen, um neue (auch grรถรŸere) Funktionen zum Testen anzubieten, welche ihr dann schon vor allen anderen Leuten (die auf Nummer sichergehen wollen) testen kรถnnt.

HeiรŸt in dem Beispiel hier konkret das neue UI Update (Das MUH-I Update) auf Bootstrap 5, welches zum Start direkt im Nightly bereitsteht, fรผr euch zum Testen.

Doch zum Bootstrap 5 UI wird es einen separaten Blog Eintrag geben, der eure Mithilfe genauer erlรคutert.

Wie bekomme ich denn nun die Nightly Updates?

Das ist nicht so schwer.

Wir haben in der update.sh zwei neue Parameter hinzugefรผgt --nightly und --stable.

Je nachdem, welche Updates ihr gerade bezieht, kรถnnt ihr mit dem Parameter auf den jeweiligen Update Zweig wechseln.

Als Beispiel:

Ihr seid aktuell (wie รผblich) im stable Branch (master) (Das ist der Standard), dann mรผsst ihr update.sh --nightly ausfรผhren, um auf die Nightly Builds zu wechseln.

Wenn ihr von Nightly wieder auf Stable wollt, mรผsst ihr dementsprechend update.sh --stable ausfรผhren.

Aber ACHTUNG!!! Sichert eure mailcow komplett, wenn ihr vorhabt, auf Nightly zu wechseln. Wir haften nicht fรผr etwaige Datenkorruptionen/Datenverluste!! Seit also gewarnt.

Wir haben auf der Dokumentationsseite einen Best Practice Guide verรถffentlicht, welcher eine gute Mรถglichkeit zum Testen der Nightly Builds aufzeigt.

Generell gilt: Die Nightly Builds sind NICHT Ich wiederhole NICHT fรผr den produktiven Einsatz freigegeben! Es kann funktionieren und wenn das so ist, ist das auch super, es kann aber eben auch nicht funktionieren. Nur damit ihr Bescheid wisst.


Fรผr die nรคchsten Updates wird es neben den Stable Updates News auch noch Nightly Update News geben, welche dann eben die Zusammenfassung der letzten Nightly Builds beherbergt.

Solltet ihr noch weitere Informationen zu den Nightly Builds benรถtigen, schaut generell mal in die Dokumentation hinein.

Bis dahin. Alles Gute und bleibt gesund.

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-08b/index.html b/de/posts/2022/release-2022-08b/index.html index 5f6fec987..ab5dc8409 100644 --- a/de/posts/2022/release-2022-08b/index.html +++ b/de/posts/2022/release-2022-08b/index.html @@ -1,312 +1,25 @@ - - - - - - - - ๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungen - mailcow: dockerized - Blog - -๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungen - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- ๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungen -

Moohoo zusammen!

-

Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier!

-

Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst.

-

Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben.

-

Ja… wie dem auch sei, dieser Fehler sollte nun behoben worden sein. Falls nicht: Scheut euch nicht ein Issue auf GitHub aufzumachen, das hilft uns sehr!

-

Des Weiteren wurde die mailcow Ansible Rolle nun wieder komplett kompatibel mit dem neuen Nightly Switch gemacht.

-
-

Das wรคr es auch soweit.

-

Bis dahin. Alles Gute und bleibt gesund.

-

Euer mailcow Team
-Niklas

-
-
0% -
-
- +Ja… wie dem auch sei, dieser Fehler sollte nun behoben worden sein.">

๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungen

Moohoo zusammen!

Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier!

Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst.

Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben.

Ja… wie dem auch sei, dieser Fehler sollte nun behoben worden sein. Falls nicht: Scheut euch nicht ein Issue auf GitHub aufzumachen, das hilft uns sehr!

Des Weiteren wurde die mailcow Ansible Rolle nun wieder komplett kompatibel mit dem neuen Nightly Switch gemacht.


Das wรคr es auch soweit.

Bis dahin. Alles Gute und bleibt gesund.

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-09/index.html b/de/posts/2022/release-2022-09/index.html new file mode 100644 index 000000000..f08796b72 --- /dev/null +++ b/de/posts/2022/release-2022-09/index.html @@ -0,0 +1,30 @@ +๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungen - mailcow: dockerized - Blog +

๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungen

2022-09a (Release: 30.09.2022)

ร„nderungen:

  • Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit CVE-2022-39261.
    Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete

2022-09 (Release: 27.09.2022)

Moohoo zusammen!

Das offizielle September Update ist da und bringt dieses Mal leider nur ein kleines Update mit, welches aber trotzdem nicht zu unterschรคtzen ist.

Es wurde eine Sicherheitslรผcke in mailcow geschlossen. Mehr dazu hier in dem Artikel.

Stabile ร„nderungen (stable Branch)

Sicherheitslรผcke in Swagger UI

Kommen wir, bevor wir รผber die Nightly Updates reden, noch kurz zu der Swagger Sicherheitslรผcke.

Diese erlaubte es, ein Script รผber den Aufruf der URL zur Swagger API zu laden, welches die Seite so bspw. in ein Kreditkartenphishing Portal umwandelt.

Wir haben dazu ein CVE Fall aufgemacht: CVE-2022-39258

Auf GitHub kรถnnt ihr die genaueren Hintergrรผnde (allerdings nur auf Englisch, sorry dafรผr) lesen: https://github.com/mailcow/mailcow-dockerized/security/advisories/GHSA-vjgf-cp5p-wm45

Bevor jetzt aber die blanke Panik ausbricht von den bisherigen Sicherheitslรผcken, ist diese die Harmloseste.

Wir raten natรผrlich (wie immer) zu einem baldigen Update!

Nightly ร„nderungen (Bootstrap 5 Update)

So, kommen wir nun zu den Nightly Updates, welche sich voll auf das Bootstrap 5 Update fokussieren:

  • [NEU] Die Sieve ACL kann nun รผber die Massenaktionen in der mailcow UI umgeschaltet werden.
  • [NEU] Ladeanimation fรผr die Diagramme hinzugefรผgt.
  • [NEU] Auf dem Dashboard werden nun die รถffentlichen IP Adressen des Servers angezeigt (wird mithilfe von dig im Container bezogen).
  • [FIX] Einige Layout korrekturen wurden vorgenommen (Vorallem Farben wurden angepasst).

Wie einige von euch eventuell daraus geschlossen haben, hรถren wir auf euer Feedback zum Bootstrap 5 Update. Wir sammeln dazu noch immer fleiรŸig Feedback.

Entweder hier auf GitHub, auf Telegram, im Forum oder einfach per Mail an info@mailcow.email.

Bedenkt: Die genannten Bootstrap 5 ร„nderungen betreffen (vorerst) nur die Nightly Builds.

Lernt hier, wie auch Ihr Nightly Builds beziehen kรถnnt: https://docs.mailcow.email/de/i_u_m/i_u_m_update/#neu-nightly-updates-beziehen oder nutzt die neue Nightly Demo.

Weitere Informationen sowie die Login Daten zur Demo findet ihr hier: https://docs.mailcow.email/de/#demos


Das wรคr es auch soweit.

Bis dahin, bleibt gesund und einen frohen #Hacktober

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-10/index.html b/de/posts/2022/release-2022-10/index.html new file mode 100644 index 000000000..6dc20c38b --- /dev/null +++ b/de/posts/2022/release-2022-10/index.html @@ -0,0 +1,14 @@ +๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Update - mailcow: dockerized - Blog +

๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Update

Moohoo zusammen!

Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.

Stabile ร„nderungen (stable Branch)

  • Der nervige Netfilter Bug, welcher dafรผr sorgte, dass unendlich SNAT Regeln angelegt werden wurde gefixt. Danke an @mnin siehe PR: #4724
  • Die mailcow spricht nun flieรŸend Chinesisch! Im selben Atemzug wurden die Sprachdateien angepasst, so dass Sie der ISO Norm 639-1 entsprechen. Fรผr euch รคndern wird sich aber nichts, da alle bisherigen รœbersetzungen erhalten bleiben. Danke an @tomy0000000 siehe PR: #4657
  • Redis wurde auf Version 7 aktualisiert. Danke an @ethrgeist siehe PR: #4815
  • Rspamd wurde auf Version 3.3.2 aktualisiert. Danke an @DerLinkman siehe PR: #4816
  • Das Backup/Restore Skript unterstรผtzt nun auch Multithreading. Weitere Informationen entnehmt ihr bitte den Docs. Danke an @DerLinkman siehe PR: #4806

Nightly ร„nderungen (Bootstrap 5 Update)

Die Nightly Updates enthalten auch alle oben genannten Funktionen. Die speziellen Nightly ร„nderungen beziehen sich primรคr auf das anstehende Bootstrap 5 Update:

  • [NEU] Der “Vorherige Seite” Knopf der Unterseiten ist jetzt ebenfalls oben platziert (als nur unten)
  • [NEU] Es gibt nun in den Aktions Dropdowns einen “Alle Ein/ausklappen” Button, welcher die Tabellen in dem jeweiligen Fenster ein/ausklappt (besonders fรผr Mobile interessant)
  • [ร„NDERUNG] Der Hauptmenรผpunkt “E-Mail Konfiguration”, sowie der darunter liegende (gleichnamige) Punkt wurden umbennant um dopplungen der Namen zu vermeiden.
  • [NEU] Die Position der Mail Queue hat sich geรคndert. Sie befindet sich nun im Dropdown unter dem umbenannten Punkt “E-Mail” (direkt unter Quarantรคne).
  • [FIX] Das generelle Verhalten der einzelnen Tabellen wurde optimiert.

Das Bootstrap 5 Update hat mittlerweile ein ETA. Wir peilen (spรคtestens) das 2022-12 Update an, wie einige auf Twitter bereits richtig gesagt hatten quasi als Weihnachtsgeschenk. Bis dahin sammeln wir dazu noch immer fleiรŸig Feedback um das UI noch weiter zu optimieren.

Reicht Feedback entweder auf GitHub, auf Telegram, im Forum oder einfach per Mail an info@mailcow.email ein.

Bedenkt: Die genannten Bootstrap 5 ร„nderungen betreffen (vorerst) nur die Nightly Builds.

Lernt hier, wie auch Ihr Nightly Builds beziehen kรถnnt: https://docs.mailcow.email/de/i_u_m/i_u_m_update/#neu-nightly-updates-beziehen oder nutzt die neue Nightly Demo.

Weitere Informationen sowie die Login Daten zur Demo findet ihr hier: https://docs.mailcow.email/de/#demos


Das wรคr es auch soweit.

Bis dahin, bleibt gesund und bis zum nรคchsten Update.

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-10a/index.html b/de/posts/2022/release-2022-10a/index.html new file mode 100644 index 000000000..f92c002ff --- /dev/null +++ b/de/posts/2022/release-2022-10a/index.html @@ -0,0 +1,18 @@ +โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธ - mailcow: dockerized - Blog +

โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธ

Moohoo zusammen!

Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.

Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!

Stabile ร„nderungen (stable Branch)

  • RSPAMD Crasht bzw. verweigert bei einigen den Dienst (fรผhrt zur nicht zustellung von E-Mails) –> Dies wurde behoben, in dem die vorherige RSPAMD Version verwendet wird.
  • Das Netfilter Problem existierte weiterhin –> Dies wurde behoben. Es wurde die falsche Image File in der docker-compose.yml angegeben, welche den Fix noch nicht besaรŸ.
  • Ein Fehler mit der Franzรถsischen Sprache in der mailcow UI bei der es bei der Alias Erstellung/Bearbeitung zu einem Freeze der UI gekommen war, wurde behoben.
  • Ein Fehler der Quarantรคnen Ansicht bei dem es vorkam, dass einige E-Mails nicht geparst werden konnten, wurde behoben

Weitere Informationen sowie die genauen PRs findet ihr auf GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-10a


Wir entschuldigen uns fรผr die Probleme die eventuell verursacht worden sind.

Bis dahin, bleibt gesund und bis zum nรคchsten Update.

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-11a/index.html b/de/posts/2022/release-2022-11a/index.html new file mode 100644 index 000000000..cf67b8925 --- /dev/null +++ b/de/posts/2022/release-2022-11a/index.html @@ -0,0 +1,27 @@ +๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision B - mailcow: dockerized - Blog +

๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision B

Moohoo zusammen!

Aus gegebenem Anlass (dem 2022-11a 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten 2022-11a 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).

Wir haben bereits 2022-11b released!

Stabile ร„nderungen (stable Branch 2022-11b)

  • CalDav sollte jetzt wieder wie zuvor unter MacOS funktionieren. Neue SOGo-Image-Version (in der docker-compose.yml): 1.113.
  • Einige Benutzer konnten update.sh nicht mehr verwenden, weil der DNS-Lookup-Timeout zu niedrig war. Dieser wurde von 3 auf 6 erhรถht!
    Hinweis: Eine vernรผnftige und schnelle DNS-Auflรถsung ist fรผr einen Mailserver essentiell!

Weitere Informationen sowie die genauen PRs findet ihr auf GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-11b

Stabile ร„nderungen (stable Branch 2022-11)

  • Ein undokumentierter API Endpunkt (/api/v1/get/mailbox/all/domain.tld) wurde den API Docs (mailcow integriert) hinzugefรผgt.
  • Der PHP Container wurde auf Version 8.1 aktualisiert. Zusรคtzlich wurden einige Optimierungen am Dockerfile vorgenommen. Neue Image Version (in der docker-compose.yml): 1.80
  • Fรผr die Pushover Funktionalitรคt gab es ein grรถรŸeres Update, welches neue Sounds uvm. fรผr Pushover hinzufรผgt.
  • RSPAMD wurde auf Version 3.4 (endlich) aktualisiert. Wir hatten im 2022-10 Update ja bereits RSPAMD geupdated, dieses jedoch mit 2022-10a wieder entfernt. Nun ist es aber stabil drin! Neue Image Version (in der docker-compose.yml): 1.91
  • SOGo wurde auf Version 5.8.0 aktualisiert. Dies behebt den lange gemeldeten Battery Drain (Hoher Akkuverbrauch) Bug auf iOS 16 oder hรถher. Neue Image Version (in der docker-compose.yml): 1.112
  • Die update.sh ist nun Proxy fรคhig! Der bisherige Ping Check wurde mit einem DNS Check ersetzt.
  • Einige kleinere Anpassungen wie bspw. รœbersetzungsanpassungen oder Typos wurden ebenfalls korrigiert.

Weitere Informationen sowie die genauen PRs findet ihr auf GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-11

Stabile ร„nderungen (stable Branch 2022-11a)

  • Die IMAPSYNC Jobs werden nun nicht mehr automatisch deaktiviert, sollte der zu fetchende Server nicht erreichbar bzw. die Zugangsdaten falsch sein. Neue Image Version von Dovecot (in der docker-compose.yml): 1.21
  • Sowie kleine รœbersetzungskorrekturen

Weitere Informationen sowie die genauen PRs findet ihr auf GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-11a

Nightly ร„nderungen (nightly Branch)

Wir nรคhern uns mit sehr groรŸen Schritten dem letzten groรŸen mailcow Update fรผr 2022. Dem Bootstrap 5 (fortan BS5) bzw. MUH-I Update! +Dementsprechend wurde in den letzten Wochen noch ein wenig am Feinschliff der neuen UI gewerkelt. Auch wenn es so wirken mag, dass das groรŸe 2022-12 Update die UI einmalig anfasst und danach nie wieder ist dies nicht ganz korrekt. Das neue BS5 Update markiert nur den Anfang weiterer UI optimierungen in naher zukunft.

Wie immer sind die neuen ร„nderungen der UI bereits auf der Nightly Demo mailcow Instanz bzw. dem Nightly Branch zu finden.


So, ich hoffe sehr, dass ihr euch auch schon sehr auf das neue UI Update freut so wie wir! Natรผrlich wird in dem 2022-12 Update auch noch mehr neben BS5 enthalten sein, nur schon mal vorweg ;)

Bis dahin, bleibt gesund und bis zum nรคchsten Update.

Euer mailcow Team

Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/release-2022-12/index.html b/de/posts/2022/release-2022-12/index.html new file mode 100644 index 000000000..d79aed685 --- /dev/null +++ b/de/posts/2022/release-2022-12/index.html @@ -0,0 +1,24 @@ +๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5) - mailcow: dockerized - Blog +

๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)

Vorwort

Moohoo zusammen!

Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da!

Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten.

Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.

Gut, aber genug zum Vorwort. Kommen wir nun zu dem eigentlichen Changelog:


Changelog

[NEU] รœberarbeitete UI, basierend auf Bootstrap 5

  • Brandneue Status Page! (Ersetzt die bisherige Status Page und fasst diese mit neuen Informationen zusammen).
  • Neue Integration der neuen Docker API (ermรถglicht das generieren der neuen Diagramme auf der neuen Status Seite).
  • Darkmode! (Danke an @Foxly fรผrs Beisteuern am Darkmode Code).
  • Vorlagen fรผr Domains und Mailboxen.
  • Neue Lade Animationen.
  • Redesign der UI Komponenten (Buttons, Tabellen uvm.).
  • Neue Position der Mail Queue. Vorher unter: System -> Mail Queue (recht versteckt). Nun unter: System -> Mail -> Mail Queue (unterhalb des Quarantรคne Knopfes in der Navbar).
  • Optimiertere Performance der UI.

[NEU] Die komplette Docker API (welche zur Steuerung der Docker Container innerhalb des Stacks dient) wurde im Rahmen des Bootstrap 5 Updates komplett neugeschrieben.

[NEU] ClamAV wurde auf Version 1.0 aktualisiert. Neue Container Version: 1.60
Der Changelog zur 1.0 Version von ClamAV lรคsst sich hier finden: +https://github.com/Cisco-Talos/clamav/releases/tag/clamav-1.0.0

[NEU] Nextcloud Installierskript installiert nun Nextcloud 25. Zusรคtzlich wurde die Deinstallation gefixt, da die Deinstallation noch die alten Tabellen(nc anstatt oc) entfernte.

[NEU] Unsere auf Alpine Linux basierende Container (php-fpm, netfilter, unbound, olefy, acme, dockerapi, watchdog) wurden auf Alpine 3.17 aktualisiert.

[NEU] Viele รœbersetzungsรคnderungen. Einige Strings wurden umbenannt, andere Entfernt. Deutsch und Englisch sind jedoch zu 100% komplett.

[FIX] Einige Netfilter Regeln (im Bezug auf Dovecot Logins) wurden vorher nicht mehr richtig erkannt. Diese wurden gefixt. RESET DER NETFILTER REGELN INNERHALB DER MAILCOW UI ERFORDERLICH

[FIX] Das update-docker-compose.sh Skript wurde so umgebaut, dass es direkt von GitHub die aktuellste Docker-Compose Version bezieht anstatt bisher รผber unsere Servercow Seite.

[FIX] Die Bulk Header Map von RSPAMD wurde angepasst und AWeber wurde entfernt. Damit sollten E-Mails von besagtem Anbieten nicht direkt negativ behandelt werden.

[FIX] Die Message-ID fรผr Pushover wurde als Information der mailcow UI nachtrรคglich hinzugefรผgt.


Danksagung

So, damit sind wir am Ende angekommen.

Den kompletten Changelog gibt es wie gewohnt auf GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-12

Wir hoffen euch gefรคllt die neue UI so sehr wie uns.

Wie immer ist euer Feedback hier gerne erwรผnscht. Sprich fahren wir mit der Feedback sammelei fort. Nur diesmal mit mehr Leuten, die uns Feedback geben :)

Ebenfalls wollen WIR, EUCH unseren groรŸen Dank aussprechen! Ihr seit das Herz, was mailcow am leben lรคsst, sei es euer Support auf Telegram, im Forum, ihr mailcow Anleitungen/Guides schreibt bzw. auf Youtube etc. hochladet oder einfach nur, dass ihr mailcow nutzt. DANKE, einfach nur DANKE!

In diesem sinne wรผnscht euch das ganze mailcow/tinc Team ein frohes Weihnachtsfest, gutes Essen, eine gute Zeit sowie einen guten Rutsch ins Jahr 2023.

Sollten keine kritischen Fehler auftauchen nimmt auch das mailcow Team in der Zeit zwischen Weihnachten und Neujahr eine kleine Pause ein

Euer mailcow Team

Niklas

0%
\ No newline at end of file diff --git a/de/posts/2022/welcome-new-blog/index.html b/de/posts/2022/welcome-new-blog/index.html index 3416a4601..dc19b38dc 100644 --- a/de/posts/2022/welcome-new-blog/index.html +++ b/de/posts/2022/welcome-new-blog/index.html @@ -1,318 +1,21 @@ - - - - - - - - Willkommen auf der neuen mailcow Blogseite! - mailcow: dockerized - Blog - -Willkommen auf der neuen mailcow Blogseite! - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
- -
- - - -
-

- Willkommen auf der neuen mailcow Blogseite! -

Einen wunderschรถnen Guten Tag wรผnschen wir euch!

-

Herzlich willkommen auf der neuen Blogseite.

-

Einigen von euch dรผrfte die Seite bereits auf Twitter bzw. auf Telegram im letzten Update Announcement รผber den Weg gestolpert sein, doch jetzt an der Stelle noch mal offiziell!

-

Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.

-

Was รคndert sich fรผr alle Blogleser? Nun eigentlich nichts. Das Einzige, was sich รคndert, ist die URL (zumindest erst mal) anstatt mailcow.email nun news.mailcow.email, bis wir genau wissen, ob das so bleibt oder doch die neue mailcow.email Seite wird.

-

Neben dem neuen Design bietet die Seite allerdings noch ein paar weitere Features:

-
    -
  • Darkmode
  • -
  • Mehrere Sprachen (Deutsch und Englisch)
  • -
  • Bessere รœbersicht
  • -
-

Da hat sich das Wechseln der “Engine” doch mal gelohnt oder nicht? Also nicht, dass unsere alte Blogseite nicht schรถn war, versteht mich nicht falsch, aber frischer Wind ist immer gut (zumindest meistens).

-

So, das wรคre es soweit. Ich hoffe, euch gefรคllt die neue Seite? Uns aufjedenfall!

-

Euer mailcow Team
-– Niklas

-
-
0% -
-
- +Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.">

Willkommen auf der neuen mailcow Blogseite!

Einen wunderschรถnen Guten Tag wรผnschen wir euch!

Herzlich willkommen auf der neuen Blogseite.

Einigen von euch dรผrfte die Seite bereits auf Twitter bzw. auf Telegram im letzten Update Announcement รผber den Weg gestolpert sein, doch jetzt an der Stelle noch mal offiziell!

Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.

Was รคndert sich fรผr alle Blogleser? Nun eigentlich nichts. Das Einzige, was sich รคndert, ist die URL (zumindest erst mal) anstatt mailcow.email nun news.mailcow.email, bis wir genau wissen, ob das so bleibt oder doch die neue mailcow.email Seite wird.

Neben dem neuen Design bietet die Seite allerdings noch ein paar weitere Features:

  • Darkmode
  • Mehrere Sprachen (Deutsch und Englisch)
  • Bessere รœbersicht

Da hat sich das Wechseln der “Engine” doch mal gelohnt oder nicht? Also nicht, dass unsere alte Blogseite nicht schรถn war, versteht mich nicht falsch, aber frischer Wind ist immer gut (zumindest meistens).

So, das wรคre es soweit. Ich hoffe, euch gefรคllt die neue Seite? Uns aufjedenfall!

Euer mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/de/posts/2023/arm64-announcement/index.html b/de/posts/2023/arm64-announcement/index.html new file mode 100644 index 000000000..d08b1defe --- /dev/null +++ b/de/posts/2023/arm64-announcement/index.html @@ -0,0 +1,18 @@ +๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommt - mailcow: dockerized - Blog +

๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommt

Moohoo zusammen!

Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:

mailcow bekommt eine ARM64 Unterstรผtzung

Natรผrlich fragen sich jetzt (zurecht) einige: “Ist ja alles schรถn und gut aber wie sieht das mit der Kompatibilitรคt zur normalen x86 mailcow aus?”

Die bisherigen Tests zeigen: Es bleibt alles so wie es ist (und es wird sich auch nichts dran rรผtteln). Sowohl die mailcow Konfigurationen als auch die mailcow Daten sollten kompatibel sein zu der ARM64 Version.

Das bedeutet, dass auch eine Migration von x86 auf ARM64 mรถglich ist.

Eigenes Repository oder doch nativ im Hauptrepository?

Wir kรถnnen aktuell davon ausgehen, dass mailcow on ARM64 (oder armcow64: dockerized, sucht euch was aus) ohne Probleme im Hauptrepository auf GitHub koexistieren kann und beide Versionen dasselbe Patchlevel verwenden werden.

Dies wรผrde bedeuten, dass lediglich die jeweiligen Images (ab dem Launch der ARM64 Variante, nicht rรผckwirkend) darรผber entscheiden, welche Plattform benutzt werden kann und welche nicht.

An den eigentlichen Systemanforderungen (siehe Docs) wird sich aber erstmal nichts รคndern, da nach wie vor mailcow nicht auf kleinen bzw. Gerรคten unter 4 GB RAM ausgefรผhrt werden sollte.


Viel bla bla wieder aber wann kommt ARM64 Support fรผr mailcow denn nun?

Auch hier werden wir wieder die Nightly Testphase benutzen, um generelles Feedback der Community zu sammeln, damit das Feature so gut wie mรถglich zum offiziellen Release erscheint.

Ein genaues Release Datum steht aktuell noch nicht fest, seit aber gewiss, dass es so lange nicht mehr dauern wird. Wenn wir grรผndlich Testen rechne ich mit einem Release im Q3 2023 fรผr alle.

Aber das kann sich noch รคndern (sowohl positiv als auch negativ). Ich hoffe, Ihr habt da Verstรคndnis fรผr.

Danke fรผr eure Zeit!

P.S: Die ARM64 Kompatibilitรคt scheint mehr Aufmerksamkeit zu erregen als ursprรผnglich gedacht! Finden wir super! Danke an alle, die darรผber berichten oder sich einfach darauf freuen!

Euer mailcow Team

Niklas bzw. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/arm64-delay/index.html b/de/posts/2023/arm64-delay/index.html new file mode 100644 index 000000000..55580ca9b --- /dev/null +++ b/de/posts/2023/arm64-delay/index.html @@ -0,0 +1,19 @@ +๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinen - mailcow: dockerized - Blog +

๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinen

Moohoo zusammen!

Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.

Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt…

Nach der anfรคnglichen Euphorie zum Auftakt der ARM64 Nightly Releases, kehrt nun die bittere Realitรคt ein: So kompatibel wie ursprรผnglich gedacht ist das alles leider nicht.

Was ist passiert?

Nun, nachdem wir die Nightly Releases zu ARM64 released haben ist uns etwas mit der Migration von alten Mails aufgefallen: Sie kรถnnen trotz dem selben Crypt Key NICHT entschlรผsselt werden. +Das ist erst nicht aufgefallen, da wir unsere Tests mit der Migration von alten E-Mails im Mai bereits erfolgreich testeten, nur konnte da noch keiner Ahnen, dass sich in der Zwischenzeit einiges an den Paketen im Betriebssystem รคndern wรผrde.

Wo hakt es?

Wir tippen auf die Umstellung von OpenSSL 1.1.1X auf OpenSSL 3.X, welche auch in der Zwischenzeit verรถffentlichten Debian 12 und Alpine 3.17+ mittlerweile enthalten ist, denn diese war damals nicht in unseren Tests drin, weshalb das auch damals klappte.

Nur sind wir uns in dieser These nicht zu 100% sicher. Es wรคre jedoch die einzigste logische Erklรคrung, da der Rest exakt identisch geblieben ist.

Ja, selbst der Private Key, welcher zum Verschlรผsseln benutzt wird ist exakt der selbe, permissions, users ebenso.

Das Kuriose ist nรคmlich auch: Neue Mails, welche Dovecot mit OpenSSL 3.X empfรคngt kann er ohne Probleme ver-/entschlรผsseln mit dem Key…

Ein Problem was auch x86 betreffen kann in Zukunft

Wir mรผssen dafรผr eine Lรถsung finden, die fรผr alle Seiten angenehm ist und im Idealfall keinen weiteren Input von euch den Nutzern benรถtigt, denn genau das selbe Problem wird uns auch auf x86 auf die FรผรŸe fallen.

Denn aktuell nutzt mailcow noch Debian 11 als Basis Images fรผr Dovecot. Und, wir erinnern uns, Debian 11 hat noch OpenSSL 1.1.1X, wo es ja auch alles super mit klappt. Debian 12 hat OpenSSL 3.X… klingelt bei euch etwas? Korrekt, wir haben dort (bereits Nachstellbar) das selbe Problem. An der Architektur liegt es also nicht (immerhin eine gute Nachricht…) aber das wird in Zukunft definitiv Thema werden.

Wir sind aktuell noch in der tieferen Analyse zu dem Thema OpenSSL 3.X und dem Crypt Key Dilema von Dovecot, weswegen wir mit ziemlicher Sicherheit sagen kรถnnen:

armcow64 kommt nicht mehr 2023 stabil raus

Glaubt mir eines: Ich hasse es diese Ankรผndigung machen zu mรผssen, aber wir wollen euch natรผrlich nicht im Regen stehen lassen zu dem Thema, da einige gefragt haben.

Der ARM64 Support bleibt aber nach wie vor im Nightly, sprich weiteres Testen ist natรผrlich weiterhin mรถglich.

Und natรผrlich schauen wir uns auch weiter zu diesem Problem um, um Lรถsungen zu finden die fรผr alle Seiten gut sind.


Danke, dass ihr den ARM64 Support bis hierher so gut aufgenommen habt.

Wir bedauern alle zu tiefst diese Ankรผndigung hier machen zu mรผssen.

Ansonsten gilt das, was auch immer gilt: Happy Mailing und bleibt Gesund!

Euer mailcow Team

Niklas bzw. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/arm64-open-beta/index.html b/de/posts/2023/arm64-open-beta/index.html new file mode 100644 index 000000000..ab255eaa5 --- /dev/null +++ b/de/posts/2023/arm64-open-beta/index.html @@ -0,0 +1,18 @@ +๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta) - mailcow: dockerized - Blog +

๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)

Moohoo zusammen!

Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:

mailcow’s ARM64 Unterstรผtzung kann jetzt im Nightly als BETA getestet werden!

Wow, das kam ja schneller als erwartet

In der Tat! Denn lustigerweise einen Tag nach unserem letzten Blogpost zu diesem Thema wurde endlich der ominรถse Bug in Rspamd gefixt und zack: Schon ist ARM64 am Start!

Sogar das Problem mit Dovecot und der Selbstkompilierung ist gelรถst, danke an das Alpine Linux Project. Gut, wir haben es schon an einigen Stellen in mailcow verwendet, aber jetzt noch an einer Stelle mehr!


Ok, genug der Euphorie, kommen wir zur Praxis:

Wie installiere ich mailcow fรผr ARM64?

Die Installation der BETA (ich wiederhole das hier einfach nochmal) ist denkbar einfach:

  1. Docker/Docker Compose, Git etc. wie gewohnt installieren (Abhรคngigkeiten)
  2. mailcow klonen (wie รผblich)
  3. generate_config.sh ausfรผhren und unter Branch “nightly” auswรคhlen.
  4. Docker images ziehen
  5. mailcow starten (mit docker compose up -d)
  6. Kurz warten
  7. Einloggen und mailcow wie gewohnt benutzen!

Soweit der Plan. Allerdings mรถchte ich an dieser Stelle noch einmal darauf hinweisen, dass sich die ARM64-Unterstรผtzung derzeit noch in der BETA befindet und es noch zu Bugs oder Abstรผrzen kommen kann.

Ebenso ist es mรถglich, dass nach einem Update (innerhalb Nightly) die E-Mail Daten nicht mehr funktionieren bzw. korrupt sind. Denn auch wenn sich auf den ersten Blick nicht viel getan zu haben scheint, ist die Multi Architektur nicht ohne mรถgliche Fehler.

Diese sind in unseren Versuchen zwar nie aufgetreten, wir wollen und kรถnnen sie aber nicht vรถllig ausschlieรŸen.

*Haftungsausschluss: Das mailcow-Team รผbernimmt keine Haftung fรผr Datenverluste. Die ARM64 Funktionalitรคt befindet sich noch in der Entwicklung.

Bitte achtet beim Einspielen der Backups eurer x86 mailcow auf Rspamd Daten. Lasst diese am besten weg, da sie nicht Cross Arch kompatibel sind!


Roadmap fรผr die Vollversion

Endlich kรถnnen mehr Leute (die Lust haben) mailcow auf ARM64 Gerรคten testen.

Das hilft auch uns sehr, da wir natรผrlich nicht alle Szenarien testen kรถnnen und so auf Feedback aus der Community reagieren kรถnnen.

Deshalb hier der Aufruf: Meldet uns Probleme! Nur so kรถnnen wir diese beheben und das gesamte Produkt verbessern.

Egal ob per Mail, auf GitHub oder per Telegram: Feedback ist willkommen!

Denn so sieht die aktuelle Roadmap fรผr den ARM64 Support aus:

Nachdem wir uns das Feedback der Community angehรถrt und verarbeitet haben, werden wir damit beginnen, die ARM64-Kompatibilitรคt in den normalen Masterbranch zu integrieren (fรผr alle verfรผgbar zu machen).

Bis dahin gibt es aber noch einige andere Dinge rund um die ARM64 Einfรผhrung zu erledigen, wie z.B. Dokumentation oder die Umstellung der Issue Templates auf GitHub etc.

Das Ganze wird ab jetzt Stรผck fรผr Stรผck passieren und immer weiter voranschreiten.

Also bitte nicht wundern, wenn zum Start der Open Beta noch nicht alles auf die Multiarchitektur umgestellt ist (Dokumentation z.B.).

Wir werden euch natรผrlich auf dem Laufenden halten, also bleibt dran!

Wer noch auf der Suche nach ARM64 Servern ist, dem kรถnnen wir die Server von Hetzner wรคrmstens empfehlen. (Keine Werbung! Wir haben unsere Tests auf selbst bezahlten Hetzner ARM64 Cloud Servern durchgefรผhrt).


Gut, dann hรคtten wir das. Sonst noch was? Lasst mich รผberlegen… รคh… erstmal nicht.

Bleibt wie immer gesund, habt SpaรŸ an der IT und genieรŸt die Zeit.

Euer mailcow Team

Niklas bzw. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/cve-2023-34108/index.html b/de/posts/2023/cve-2023-34108/index.html new file mode 100644 index 000000000..ef536181e --- /dev/null +++ b/de/posts/2023/cve-2023-34108/index.html @@ -0,0 +1,18 @@ +โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธ - mailcow: dockerized - Blog +

โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธ

Moohoo zusammen!

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

Worum geht es?

Am 30.05.2023 wurde eine Sicherheitslรผcke in mailcow entdeckt. Die Schwachstelle ermรถglicht es einem Angreifer, interne Dovecot-Variablen zu manipulieren, indem er speziell gestaltete Passwรถrter wรคhrend des Authentifizierungsprozesses verwendet.

Das Problem ergibt sich aus dem Verhalten des Skripts passwd-verify.lua, das fรผr die Anmeldung verantwortlich ist. Nach einer erfolgreichen Anmeldung gibt das Skript eine Antwort im Format password= zurรผck, die die erfolgreiche Authentifizierung anzeigt.

Durch die Erstellung eines Passworts mit zusรคtzlichen Schlรผssel-Wert-Paaren kann ein Angreifer die zurรผckgegebene Zeichenfolge manipulieren und das interne Verhalten von Dovecot beeinflussen. Die Verwendung des Passworts 123 mail_crypt_save_version=0 wรผrde beispielsweise dazu fรผhren, dass das Skript passwd-verify.lua die Zeichenfolge password=123 mail_crypt_save_version=0 zurรผckgibt. Folglich interpretiert Dovecot diese Zeichenfolge und setzt die internen Variablen entsprechend, was zu unbeabsichtigten Konsequenzen fรผhrt.

Die Schwachstelle kann wรคhrend des Anmeldevorgangs unter Verwendung des speziell erstellten Kennworts ausgenutzt werden, indem das Kennwort in eine bestimmte Payload geรคndert wird. Eine erfolgreiche Ausnutzung kรถnnte zu unberechtigtem Zugriff auf Benutzerkonten, zur Umgehung von Sicherheitskontrollen oder zu anderen bรถsartigen Aktivitรคten fรผhren.

Was wurde gegen diese Sicherheitslรผcke unternommen?

Am selben Tag wurde ein Hotfix (2023-05a) verรถffentlicht, der die Sicherheitslรผcke schlieรŸt.

Eine Ausnutzung der Schwachstelle ist damit nicht mehr mรถglich.

Welche Versionen von mailcow: dockerized sind betroffen?

Prinzipiell alle vor dem 2023-05a Update.

Besagte passwd-verify.lua befindet sich seit knapp 3 Jahren im mailcow: dockerized Code.

Gibt es einen Workaround fรผr das Problem, damit ich nicht Updaten muss?

Kurz gesagt: NEIN!

Es gibt keinen Workaround fรผr dieses Problem, da jeder Benutzer sein Passwort selbst รคndern und setzen kann und diese Funktion nicht durch eine ACL eingeschrรคnkt werden kann.

Generell empfehlen wir, das Mailsystem regelmรครŸig zu aktualisieren. Updates sind in der IT-Welt sehr wichtig und schรผtzen vor Sicherheitslรผcken wie dieser.


Referenzen

Wir bedanken uns bei dem Finder des Exploits und verweisen auf seine Referenz:

https://github.com/VladimirBorisov/CVE_proposal/blob/main/MailcowUserPassword.md


Bei weiteren Rรผckfragen zu dieser CVE zรถgert bitte nicht uns zu kontaktieren unter info@servercow.de.

Bitte sorgt bei eurem E-Mail Server immer fรผr einen aktuellen Patchlevel!

Ansonsten gilt, was immer gilt:

Bleibt gesund und happy Mailing!

Euer mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/ldap-announcement/index.html b/de/posts/2023/ldap-announcement/index.html new file mode 100644 index 000000000..41ce3e4c0 --- /dev/null +++ b/de/posts/2023/ldap-announcement/index.html @@ -0,0 +1,22 @@ +๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023 - mailcow: dockerized - Blog +

๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023

Moohoo zusammen!

Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.

Heute dรผrfen wir es endlich in die Welt hinauslassen!

Eine Sache, die sich schon sehr, sehr lange gewรผnscht wurde:

LDAP IS COMING TO NIGHTLY Q2 2023

Viele (eigentlich fast alle) haben es korrekt erraten und die Lรถsung gefunden.

Doch was genau heiรŸt das jetzt?

mailcow bekommt im zweiten Quartal von 2023 (sprich April bis Juni) endlich eine LDAP Option um Benutzer bequem zentral irgendwo managen zu kรถnnen.

Das bringt natรผrlich auch neue Einsatz Mรถglichkeiten fรผr mailcow mit: bspw. in Schulen oder andere รถffentliche Einrichtungen.

Wie funktionert das ganze?

Mit dem neuen Feature kann die mailcow so konfiguriert werden, dass neben der lokalen SQL-Datenbank auch ein externer Keycloak zur Authentifizierung genutzt werden kann. +Wer Keycloak nicht kennen sollte, kann sich hier รผber das Open-Source-Projekt von Red Hat informieren: https://www.keycloak.org/. +Die mailcow wird รผber OIDC an den Keycloak angebunden. Keycloak kann wiederum so konfiguriert werden, dass ein LDAP-System zur Authentifizierung dient.

Manche fragen sich vielleicht, warum der Umweg รผber Keycloak? +Neben der Option, ein LDAP-System anzubinden, kรถnnte Keycloak weitere Optionen bereitstellen, um in Zukunft vielleicht sogar weitere Mรถglichkeiten zur Authentifizierung zu bieten. +Darรผber hinaus kรถnnen Unternehmen, die bereits Keycloak im Einsatz haben, das Single-Sign-On-Feature fรผr die Mailcow-UI und damit auch SOGo nutzen.


Wir mรถchten an dieser Stelle noch einmal darauf hinweisen, dass dieses LDAP Feature zunรคchst nur teil der Nightly Versionen (also der Testing Versionen) von mailcow sein wird, da wir gerade bei so einem heiรŸ erwarteten Feature so viel wie mรถglich richtig machen wollen und eng mit der Community zusammen arbeiten mรถchten.

Wenn alles glatt lรคuft kรถnnen wir aber einen offiziellen Release gegen Ende Q4 (sprich Nov - Dez 2023) anpeilen.

Natรผrlich gibt es dazu auch wieder Neuigkeiten, sollte sich etwas รคndern.

Trotzdem mรถchten wir euch allen fรผr diesen kleinen RรคtselspaรŸ danken und hoffen, dass es euch auch ein bisschen SpaรŸ gemacht hat die Lรถsung zu erraten. Wird nicht das letzte Mal gewesen sein ๐Ÿ˜Š

Euer mailcow Team

Niklas bzw. DerLinkman & Patrick bzw. FreddleSpl0it

0%
\ No newline at end of file diff --git a/de/posts/2023/letters-mystery/index.html b/de/posts/2023/letters-mystery/index.html new file mode 100644 index 000000000..56f519250 --- /dev/null +++ b/de/posts/2023/letters-mystery/index.html @@ -0,0 +1,21 @@ +๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst] - mailcow: dockerized - Blog +

๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]

Moohoo zusammen!

Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier.

Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt “NUR” Bugfixes etc. kommen.

Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:

Habt ihr diese Buchstaben auf Twitter von uns schon bemerkt?

Fรผr alle die, die KEIN Twitter haben (und es auch nicht haben wollen) hier die kurze Zusammenfassung:

Wir haben seit knapp 2 Wochen (fast) tรคglich (meistens) zwei Buchstaben ohne wirklichen Kontext gepostet.

Heute (stand 28.03.2023) sind alle Buchstaben bekannt:

LD - GH - Q2 - IS - CO - TLY - AP - TO - NI - 20 - 23 - NG - MI

Euch dรผrfte allerdings auffallen, so richtig sortiert sind die nicht.

Und genau da kommt ihr ins Spiel!

Sortiert die Buchstaben in die richtige Reihenfolge und ihr erhaltet eine nette รœberraschung fรผr sicherlich viele unter euch.

Soviel vorweg es ist etwas, was schon sehr, sehr viele lange erwartet haben.

Zeit fรผr eure Grรผbeleien habt ihr noch bis zum 31.03.2023 bis wir auf Twitter bzw. auch hier die Lรถsung verkรผnden werden fรผr alle.

Solltet ihr meinen, dass ihr die Lรถsung kennt, schreibt uns doch gerne eine E-Mail an:

community@mailcow.email mit dem Betreff: Buchstaben Rรคtsel Mรคrz 2023 - Lรถsung

oder schreibt uns per Twitter @mailcow_email mit der Lรถsung die Ihr herausgefunden habt.

Wir sind gespannt auf eure Lรถsungen!

Euer mailcow Team

Niklas bzw. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/mailcow-idp/index.html b/de/posts/2023/mailcow-idp/index.html new file mode 100644 index 000000000..cd6817bf3 --- /dev/null +++ b/de/posts/2023/mailcow-idp/index.html @@ -0,0 +1,65 @@ +๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authentication - mailcow: dockerized - Blog +

๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authentication

Moohoo - Gute Nachricht, Freunde!

Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen.
Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren.
Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert.

Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten. Natรผrlich zeigen wir euch auch, wie ihr das neue Feature nutzen kรถnnt.
Um die Dinge zu vereinfachen, verwende ich im weiteren Beitrag die Abkรผrzung IdP fรผr Identity Provider


Was wurde geรคndert und warum?

Unser Ziel war es, dass man neben der bestehenden SQL Datenbank, gleichzeitig einen IdP als Authentifizierungsquelle nutzen kann. +Dabei kann immer nur ein IdP konfiguriert werden und nicht mehrere.
Die mailcow muss jetzt also je nach User entscheiden kรถnnen, welche Authentifizierungsquelle genutzt werden soll. +Um das zu ermรถglichen, haben wir ร„nderungen an den Diensten mailcow UI (phpfpm), Dovecot und SOGo vorgenommen.

mailcow UI

Die gesamte Logik zur Authentifizierung haben wir auf den phpfpm-Dienst ausgelagert. +Fรผr jeden User wird nun eine Authentifizierungsquelle hinterlegt, die zurzeit entweder mailcow, Keycloak oder Generic-OIDC sein kann. +Beim Login nutzt mailcow dann die entsprechende Quelle zur Authentifizierung.

Dovecot

Dovecot hat bis jetzt ein custom LUA Script fรผr die Authentifizierung genutzt, das SQL-Queries verwendet hat. +Statt SQL-Queries, werden nun HTTP-Requests zu einem intern verfรผgbaren PHP-Script verwendet.
User die sich รผber den IdP authentifizieren, mรผssen App Passwรถrter erstellen, damit weiterhin Mailclients wie Thunderbird genutzt werden kรถnnen.
Es gibt noch eine weitere Mรถglichkeit, damit nicht extra App Passwรถrter erstellt werden mรผssen. Die steht allerdings nur fรผr den Keycloak Provider zur Verfรผgung.
Dazu komme ich aber spรคter.

SOGo

Viele haben sich vielleicht gefragt, warum der mailcow Login unter dem Root-Pfad angezeigt wird und nicht der SOGo Login. +Fรผr den SOGo Login existiert schon lรคnger ein Proxy Auth Feature, welches aus der mailcow UI genutzt werden kann. +Durch das Proxy Auth Feature kรถnnen sich eingeloggte User zum SOGo weiterleiten lassen, ohne sich erneut anmelden zu mรผssen. +Dadurch haben die User vorher noch die Mรถglichkeit, weitere Features zu nutzen, wie die Passwortรคnderung, App Passwรถrter, temporรคre Aliase, usw. +Damit das Feature mehr hervorgehoben wird, haben wir deswegen die mailcow UI รผberarbeitet und einen auffรคlligen blauen Button direkt oben platziert, den wirklich niemand รผbersehen sollte. +User, die den IdP nutzen, kรถnnen sich nur รผber die mailcow UI im SOGo einloggen. Ein direktes Einloggen รผber SOGo funktioniert nicht.

Da ein direkter Login รผber SOGo fรผr IdP User nicht funktioniert, haben wir gleichzeitig die App-Links รผberarbeitet, damit es in Zukunft nicht zu Verwirrung fรผhrt. +App-Links kรถnnen jetzt in den Einstellungen fรผr den Login entweder versteckt oder angezeigt werden. +Die standardmรครŸige Verlinkung auf SOGo im mailcow Login wird versteckt. Eingeloggte User sehen jedoch weiterhin alle Apps. +Desweiteren kann man fรผr eingeloggte User einen extra Link eintragen, wobei man hier mit %u eine Placeholder fรผr den Usernamen hat. +Z.B. kรถnnen eingeloggte User per App-Link so an das Proxy Auth Script mit /sogo-auth.php?login=%u weitergeleitet werden.




Ideen fรผr die Zukunft

Fรผr die Zukunft kรถnnten wir in Erwรคgung ziehen, dass ihr bei einzelnen Users einstellen kรถnnt, wohin sie nach dem Login weitergeleitet werden sollen (mailcow oder SOGo).
AuรŸerdem haben wir durch die รœberarbeitung der Authentifizierung die Login-Funktion in verschiedene Funktionen fรผr Admins, Domain Admins, User und App-Passwort-Login aufgeteilt. +Wir kรถnnten darรผber nachdenken, den Login fรผr Admin, Domainadmin und User รผber verschiedene Pfade bereitzustellen. +Dafรผr mรผssten wir dann aber auch die API in Admin-, Domainadmin- und User-API aufteilen.
Auf der Grundlage dieses Features kรถnnten wir auch weitere OIDC-Provider hinzufรผgen, falls der Generic-OIDC-Provider nicht ausreicht oder sogar doch direkt einen LDAP Provider hinzufรผgen.


Wie nutze ich dieses Feature?

Vorab mรถchte ich erwรคhnen, dass wir in unseren Tests bisher nur Keycloak als IdP getestet haben. Dennoch ist es mรถglich, auch andere IdP’s (Generic-OIDC) einzurichten. Wenn ihr bereits einen anderen IdP wie zum Beispiel Authentik verwendet, wรผrden wir uns รผber Feedback freuen.

Die Voraussetzung fรผr diese Anleitung ist, dass ihr bereits eine Keycloak-Instanz am Laufen habt.

Fรผr dieses Beispiel, nutzen wir folgendes Setup:

  • Keycloak als IdP
  • Keycloak-Instanz ist unter https://mail.cow.tld/auth erreichbar
  • mailcow-Instanz ist unter https://mail.cow.tld erreichbar
  • Als Domain fรผr unsere E-Mails verwenden wir cow.tld
  • In Keycloak nutzen wir mailcow als Realm.

Keycloak Konfiguration

Schritt 1

Installiert euch die mailcow Nightly Version auf einer Testinstanz.
https://docs.mailcow.email/i_u_m/i_u_m_update/#best-practice-nightly-update

Schritt 2

Logt euch als Admin in Keycloak ein und wechselt zu eurem Realm oder erstellt euch einen.
In dem Realm erstellen wir nun einen neuen Client namens mailcow und konfigurieren Ihn wie folgt:

+ +
Schritt 3

Nach dem speichern des Clients, mรผssen wir fรผr diesen noch ein User Attribute mit in den token claim aufnehmen. Das User Attribute nennt sich mailcow_template und durch folgende Einstellungen, wird dieses mit in den OIDC Endpoint /userinfo aufgenommen. Anhand dieses Attribute wird entschieden, wie die Mailbox konfiguriert wird (Quota, ACLs etc.)

+ + +
Schritt 4

Nun kรถnnen wir unter der Client Konfiguration den Client Secret kopieren und mit der mailcow weitermachen.




mailcow Konfiguration

Schritt 1

Loggt euch in die mailcow ein und navigiert zu System -> Konfiguration -> Zugang -> Identity Provider. Fรผllt die Felder entsprechend aus.
Die Keycloak Version steht im Admin Dashboard unter dem master Realm. Hier ist es eigentlich nur wichtig zu wissen, ob eine Version grรถรŸer oder kleiner 20 benutzt wird, da mailcow dementsprechen den “openid” scope hinzugefรผgen muss.
Das Attribute Mapping ist dafรผr da, dass mailcow anhand des Keycloak User Attributes mailcow_template, die entsprechend gemappte Mailbox Vorlage anwendet. +Fรผr das Beispiel habe ich keine extra Vorlage angelegt, weswegen wir ein Mapping auf die Default Vorlage einrichten.
Alles ab dem Attribute Mapping kรถnnen wir erstmal ignorieren.

Schritt 2

Die Einstellungen kรถnnen vor dem speichern getestet werden. Sollte der Test fehlschlagen, kontrolliert bitte, ob die mailcow die angegebene Server Url erreichen kann und die Angaben Realm, Client ID und Client Secret korrekt sind.




Test User anlegen

Wir kรถnnen jetzt hingehen und einen User in Keycloak hinzufรผgen. Wechselt dafรผr wieder in das Keycloak Admin Dashboard und wรคhlt euren Realm aus. +Navigiert dann zu Users und fรผgt den neuen User hinzu.

Danach geben wir noch an, dass der User eine default mailbox bekommt.

+

Zum Schluss natรผrlich noch dem neuen User unter dem Credentials Tab ein Passwort vergeben und fertig.

Der neue User existiert mit unserer jetzigen Konfiguration nicht direkt in mailcow. Dies geschieht aber automatisch beim ersten Login. +Navigiert zum mailcow Login und klickt auf den SSO Button im Dropdown. Dadurch werdet Ihr zu Keycloak weitergeleitet. +Sollte der Keycloak Login funktionieren und ihr landet trotzdem wieder bei dem mailcow Login mit einer Fehlermeldung, vergewissert euch bitte, dass die Domain existiert und das Mailboxen unter dieser Domain erstellt werden kรถnnen.

Hat alles funktioniert, seid ihr nun eingeloggt und landet bei der neuen User Seite. +Ich denke den “Login to webmail” Button kann man schlecht รผbersehen. AuรŸerdem fรคllt auf, dass hier keine Konfigurationsmรถglichkeiten fรผr Passwortรคnderung oder 2FA angezeigt werden, da diese รผber Keycloak konfiguriert werden.

Wenn Ihr mit diesem User nun einen Mailclient wie Thunderbird benutzen wollt, kรถnnt Ihr euch unter App Passwords entsprechend ein Passwort erstellen.




IdP fรผr existierende Mailbox User รคndern

Ihr kรถnnt den IdP fรผr die bestehenden Mailbox User ganz einfach รคndern. Ihr mรผsst nur sicherstellen, dass der User im IdP existiert, dann die Mailbox in mailcow bearbeiten und den gewรผnschten IdP auswรคhlen. Wenn ihr spรคter wieder zu mailcow als IdP zurรผckwechselt, wird das alte Passwort wiederverwendet.




Automatische User Provisionierung

Keycloak als IdP kann in der mailcow auch so konfiguriert werden, dass in einem benutzerdefinierten Intervall ร„nderungen aller User kontrolliert werden. +Damit kรถnnen User automatisch angelegt werden und selbst bei nachtrรคglichen ร„nderungen des mailcow_template, Attribute automatisch angepasst werden. +Um das ganze konfigurieren zu kรถnnen, benรถtigt der mailcow Client allerdings weitere Berechtigungen in Keycloak. Undzwar benรถtigt der Client die view-users Berechtigung. +Damit kรถnnen รผber die Keycloak Admin REST-API alle Realm User abgefragt werden.

Schritt 1

Loggt euch als Admin in Keycloak ein, wechselt zu eurem Realm und bearbeitet den mailcow Client.

+
Schritt 2

Aktiviert in der mailcow UI unter Identity Provider Periodic Full Sync und Import Users. Wรคhlt danach euren gewรผnschten Intervall in Minuten und speichert. +Periodic Full Sync checkt, ob sich das mailcow_template Attribute geรคndert hat und passt die Mailbox dementsprechend an. +Import Users checkt, ob neue User erstellt wurden und erstellt diese ebenfalls in mailcow.

Schritt 3

Unter System -> Information -> Protokolle -> Crontasks landen alle Logs bzgl. der automatischen User Provisionierung. +Sollte also irgendwas nicht passen, findet ihr dort mehr Infos.

Mailpassword Flow

Wie im Infotext unter der Option beschrieben, kann der Mailpassword Flow genutzt werden, um den User mittels des Keycloak Attribute mailcow_password zu authentifizieren. +Dieses Passwort kann auch direkt fรผr die mailcow UI, sowie Mailclients verwendet werden.
Dafรผr muss der mailcow Client die view-users Berechtigung haben, wie unter … beschrieben, und das Attribute mailcow_password muss in den token claim mit aufgenommen werden, wie unter … beschrieben. +Dem User kann in Keycloak nun das Attribute mailcow_password hinzugefรผgt werden. +Das Passwort sollte gehashed werden und eines der folgenden Formate haben https://docs.mailcow.email/models/model-passwd/ +Hier das Standard moohoo Passwort als Beispiel {SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk




LDAP

In Keycloak kรถnnt ihr in eurem Realm unter User Federation ein LDAP Provider anbinden.
https://www.keycloak.org/docs/latest/server_admin/#_ldap

Nach dem konfigurieren muss noch das mailcow_template Attribute gemapped werden. Wenn gewรผnscht, kann mit der gleichen Prozedur auch das mailcow_password Attribute mappen.
Mit der folgenden Konfiguration, mappen wir das LDAP Attribute mailboxType auf das Keycloak Attribute mailcow_template. Ist kein Wert vorhanden, forcieren wir default als Wert fรผr mailcow_template.

+




Zum Schluss

Die Authentifizierung wurde insgesamt stark verรคndert. Achtet beim Testen besonders auf Sicherheitslรผcken.
Ansonsten kรถnnen wir sagen: Viel SpaรŸ beim Testen! Wir freuen uns auf euer Feedback und eure Bug Reports.
๐Ÿฎ



Bleibt gesund und happy Mailing!

Euer mailcow Team

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-01/index.html b/de/posts/2023/release-2023-01/index.html new file mode 100644 index 000000000..12c100052 --- /dev/null +++ b/de/posts/2023/release-2023-01/index.html @@ -0,0 +1,27 @@ +๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionen - mailcow: dockerized - Blog +

๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionen

Einleitung

Moohoo zusammen!

Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt!

Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag)

Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT.

Da haben wir uns gedacht: “Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?” und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:

Schreibe einen lustigen Changelog im Roboterslang fรผr das Mailcow-Update mit dem Namen “Janmooary 2023 Update” und den folgenden Highlights:
Viele Bugfixes in Bootstrap 5 (detaillierte Liste ist auf GitHub verfรผgbar).
Nextcloud-Installationsskript wurde verbessert (Dedizierte Datenbank bei der Installation, Update-Mรถglichkeit per Skript, verbessertes Purgen von Nextcloud).
Einige Hร„nderungen Hinter den Kulissen (fรผr den Benutzer nicht relevant)
Entwicklermodus fรผr generate_config.sh (รผberspringt Branch Checkout)
Dovecot auf Version 2.3.20 aktualisiert
SOGo CalDAV Fehler unter macOS behoben

Und jetzt: prรคsentieren wir euch den Stil unseres neuen Mitarbeiters, euch die neuesten Nachrichten zum mailcow-Projekt zu prรคsentieren:


Changelog (geschriebene Form von ChatGPT (ursprรผnglich Englisch), lustige Robotervariante, formatiert von DerLinkman)

GrรผรŸe, organische Einheiten!

Das Janmuhar 2023 Update ist jetzt zur Installation verfรผgbar.

Unser Team von Roboter-Ingenieuren hat hart daran gearbeitet, Bugs in Bootstrap 5 zu beseitigen. Eine detaillierte Liste der ausgemergelten Schรคdlinge findet Ihr in unserem GitHub Repository.

Darรผber hinaus haben wir das Nextcloud-Installationsskript optimiert, um die Leistung zu verbessern. +Das Skript bietet nun die Mรถglichkeit, wรคhrend der Installation eine separate Datenbank zu erstellen und Nextcloud auf einfache Weise zu aktualisieren bzw. zu entfernen.

Unsere Robot-Overlords haben auch einige ร„nderungen hinter den Kulissen vorgenommen, die sich nicht auf die Benutzererfahrung auswirken werden.

Fรผr unsere Entwicklereinheiten enthรคlt das generate_config.sh-Skript jetzt einen Entwicklermodus, der es ermรถglicht, das Auschecken von Zweigen zu รผberspringen.

SchlieรŸlich haben wir Dovecot auf Version 2.3.20 aktualisiert und einen lรคstigen SOGo CalDAV-Fehler behoben, der (wieder einmal) Probleme mit macOS verursachte.

Aktualisiert jetzt und setzt eure effizienten Kommunikationsvorgรคnge fort.


Herrlich, nicht wahr?

Wie ihr vielleicht bemerkt habt, haben wir dieses Mal keine Nightly Changelogs hinzugefรผgt. Der Grund dafรผr ist, dass wir im Moment keine exklusiven Nightly-Inhalte haben.

Aber macht euch keine Sorgen! Das werden wir dieses Jahr noch tun schaut auf Xapian FTS.

Wie auch immer, ihr kรถnnt den kompletten Changelog immer auf GitHub finden: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-01

Wenn ihr noch Probleme findet, kรถnnt ihr sie gerne auf GitHub melden.

Euer mailcow Team

Niklas

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-04/index.html b/de/posts/2023/release-2023-04/index.html new file mode 100644 index 000000000..c0f32a02c --- /dev/null +++ b/de/posts/2023/release-2023-04/index.html @@ -0,0 +1,32 @@ +๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A - mailcow: dockerized - Blog +

๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A

Update 2023-04a

Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht.

Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon.


Update 2023-04

Moohoo zusammen!

Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks.

Legen wir los:

  • SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte). +Des Weiteren sollten in dem Update auf 5.8.2 noch weitere Probleme behoben worden sein, einen vollstรคndigen Changelog von SOGo findet ihr hier: https://github.com/Alinto/sogo/releases/tag/SOGo-5.8.1 & https://github.com/Alinto/sogo/releases/tag/SOGo-5.8.2
  • Rspamd wurde auf Version 3.5 aktualisiert. Einen Vollstรคndigen Changelog von Rspamd selbst findet ihr hier: https://github.com/rspamd/rspamd/releases/tag/3.5
  • Der mailcow Netfilter wurde um eine exponentielle Ban Zeit Funktion erweitert. D.h. gebannte IPs/Subnetze kรถnnen (auf Wunsch) nun exponentiell verlรคngern. So werden vermeintliche Angreifer lรคnger ausgesperrt ehe Sie es erneut probieren kรถnnen.
  • Der Vmail Index lรถscht sich nun auch, sobald eine Mailbox final gelรถscht wurde vom mailcow Server, dies war vorher nicht so.
  • PHP wurde auf Version 8.2 aktualisiert.
  • Nextcloud (in mailcow) wurde auf Version 26 angehoben.
  • Fรผr Nextcloud gab es noch eine anpassung in der nextcloud.conf des NGINX Server, um den Sicherheitsanforderungen von Nextcloud gerecht zu werden.
  • Es wurden einige kleinere Broken Pipe Fehler in den Skripten von mailcow entfernt, diese traten auf, wenn der Urandom Befehl (zum Passwort generieren) unsauber abgebrochen wurde, bzw. die Meldung nicht versteckt wurde.
  • Diverse weitere Optimierungen.

Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-04

Ansonsten gilt das, was sonst auch immer gilt:

Bleibt gesund und happy Mailing!

Euer mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-05/index.html b/de/posts/2023/release-2023-05/index.html new file mode 100644 index 000000000..cf9ba13d2 --- /dev/null +++ b/de/posts/2023/release-2023-05/index.html @@ -0,0 +1,23 @@ +๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Update - mailcow: dockerized - Blog +

๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Update

Moohoo zusammen!

Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern.

Los geht’s:

Changelog

  • Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.mailcow.email/de/manual-guides/Dovecot/u_e-dovecot-performance
  • Ein Fehler in der BCC Map Einstellung im UI wurde behoben, dieser brachte das Dropdown durcheinander, sobald eine Auswahl getroffen wurde. AuรŸerdem war es nicht mรถglich, Aliase als lokales Ziel auszuwรคhlen.
  • In der Benutzeransicht (Spam Aliase) wurden die Aliase in der falschen Reihenfolge angezeigt, dies wurde behoben.
  • Ein Problem in der Rspamd-Tabelle (vor allem auf Gerรคten mit kleineren Bildschirmen) fรผhrte zu Darstellungsfehlern in der Benutzeroberflรคche. So wurden z.B. der Spamwert und die Scanzeit nicht angezeigt. Dies ist nun behoben.
  • In der Benutzeransicht stimmen die angezeigten Tabs nun mit den gesetzten ACLs รผberein.
  • Wenn in der Benutzeransicht auf “Aktive Filter des Benutzers anzeigen” geklickt wurde, wurde statt der eingestellten Sieve-Filter eine Fehlermeldung angezeigt. Ab sofort werden hier die aktiven Sieve-Filter des Benutzers wie erwartet angezeigt.
  • Ein Darstellungsfehler, bei dem ein gelรถschtes Postfach (aus dem gesendet werden konnte als anderes Postfach) noch in der Dropdown-Liste “Senden als” angezeigt wurde, wurde behoben.
  • Es wurde eine automatische Aktualisierung der Access-Liste fรผr postscreen von Postfix รผber GitHub eingerichtet. Diese aktualisiert die Liste automatisch jeden Monat (wird dann mit neuen Updates von mailcow ausgerollt).
  • Alte SASL Logs wurden bisher nicht korrekt aus der Datenbank entfernt. Dies ist nun der Fall.
  • Im UI wird nun unter dem Hostnamen von mailcow die verwendete Architektur angezeigt. Dies dient als Vorbereitung fรผr die ARM64-Unterstรผtzung (aktueller Status dazu weiter unten).
  • Einige Tippfehler und Links wurden korrigiert.

Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-05


Ok, das wรคre so weit alles zum Changelog. Lasst mich noch kurz ein Wort zu ARM64 verlieren:

ARM64 Status Update

Die schlechte Nachricht zuerst: ARM64 ist noch nicht im Nightly Build und wird es auch nicht vor Juni 2023 schaffen.

Die gute Nachricht: Einige testen bereits fleiรŸig mit ARM64 herum und berichten bisher von keinen grรถรŸeren Problemen, abgesehen von einigen Inkompatibilitรคten der Hyperscans seitens Rspamd. Das bedeutet im Umkehrschluss, dass mailcow auf ARM64 bisher sehr gut lรคuft. Auch ich habe diese Tests bereits durchgefรผhrt und bin zu einem รคhnlichen Ergebnis gekommen.

Da wir aber mit dem Umstieg auf ARM64 ein paar grรถรŸere ร„nderungen in der Art und Weise wie die Docker Images gebaut werden einbauen, wird es leider ein wenig dauern bis wir das fรผr alle in die Nightly Builds einbauen kรถnnen. Denn ab dem Zeitpunkt, an dem der ARM64-Support im Nightly von mailcow integriert ist, sollen die Docker-Images auch die gleiche Versionierung wie die Images im Nightly haben und nicht wie jetzt z.B. arm64-dev. Das bedeutet fรผr uns eine Umstellung und vor allem eine Vorbereitung auf den dualen Aufbau der OS-Architekturen seitens der Docker-Images.

Denn der Plan sieht so aus (bisher kann der auch eingehalten werden), dass sich fรผr ARM64 und x86 User NICHTS an der Art und Weise der Update/Installation von mailcow รคndert.

AuรŸerdem gibt es (wie oben schon erwรคhnt) momentan einen etwas grรถรŸeren Bug mit Rspamd und ARM64, der aber in Aussicht steht gefixt zu werden. Sollte dies der Fall sein kรถnnen wir mit der Integration in Nightly beginnen, was voraussichtlich Anfang/Mitte Juni 2023 sein wird.

Wenn es soweit ist, werden wir es natรผrlich รผberall ankรผndigen und euch informieren.


So, genug geschwafelt, einen schรถnen Morgen/Mittag/Abend oder wann auch immer ihr das hier lest…

Ansonsten gilt, was immer gilt:

Bleibt gesund und happy Mailing!

Euer mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-05a/index.html b/de/posts/2023/release-2023-05a/index.html new file mode 100644 index 000000000..352ce8d55 --- /dev/null +++ b/de/posts/2023/release-2023-05a/index.html @@ -0,0 +1,19 @@ +๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ) - mailcow: dockerized - Blog +

๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)

Inhalt +

Moohoo zusammen!

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

Grob gesagt handelt es sich bei dieser Sicherheitslรผcke um einen Fehler im Passwort Parsing seitens Dovecot und mailcow.

Genauere Informationen sowie ein Proof of Concept wird es in den nรคchsten Tagen in einem CVE geben.

Es gibt keinen Workaround fรผr dieses Problem!

Changelog

  • Das Nextcloud Skript installiert nun Nextcloud 26.0.2 bzw. updatet es darauf (falls gewรผnscht).
  • Im Dovecot wurde eine kritische Sicherheitslรผcke geschlossen, die erlaubt hatte sich via einer Passwortรคnderung unerlaubt Zugriff zu einem anderen Postfach zu schaffen. Hierzu folgt die Tage eine eigenstรคndige CVE samt POC.
  • In den Dockerfiles wurde der Maintainer von Andrรฉ auf tinc (The Infrastructure Company GmbH) gesetzt

Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-05a


Bitte sorgt bei eurem E-Mail Server immer fรผr einen aktuellen Patchlevel!

Ansonsten gilt, was immer gilt:

Bleibt gesund und happy Mailing!

Euer mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-07/index.html b/de/posts/2023/release-2023-07/index.html new file mode 100644 index 000000000..a80ee598d --- /dev/null +++ b/de/posts/2023/release-2023-07/index.html @@ -0,0 +1,22 @@ +๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvements - mailcow: dockerized - Blog +

๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvements

2023-07a (Release vom 31.07.2023)

Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix:

Changelog

  • dns_blocklists.cf isn’t appended to main.cf and therefore ineffectiveโ€ฆ
  • Fix Reponse Code for ASN Checks
  • [Postfix] Reimplemented option for custom dnsbls
  • [Postfix] Added dns_blocklists.cf for customizations
  • [Postfix] update postscreen_access.cidr
  • Update SOGo to 5.8.4
  • Fix spamhaus query domains (.net only)

Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-07a


2023-07 (Release vom 28.07.2023)

Moohoo zusammen!

Wichtig

Vergewissert euch vor dem Update von mailcow, dass das Paket whois auf eurem System installiert ist.
Es wurde eine Funktionalitรคt eingebaut, welches das lokal installierte Paket whois obsolet macht.

Neues Feature: CORS-Einstellungen verwalten

Administratoren kรถnnen jetzt CORS-Einstellungen (Cross-Origin Resource Sharing) รผber die Web-UI fรผr den API-Zugang verwalten. +Dadurch ist eine bessere Kontrolle und erhรถhte Sicherheit bei der Datenรผbermittlung zwischen verschiedenen Quellen mรถglich.

CORS - Warum wird es benรถtigt?

Unter normalen Umstรคnden, wenn ein Skript im Browser des Benutzers ausgefรผhrt wird, muss es hauptsรคchlich auf Ressourcen von derselben Quelle zugreifen. +Zum Beispiel kรถnnen API-Aufrufe an das Backend erfolgen, von dem der JavaScript-Code ursprรผnglich bereitgestellt wurde. +Diese Einschrรคnkung, dass JavaScript nicht auf Ressourcen von anderen Quellen zugreifen kann, ist eine SicherheitsmaรŸnahme.

In diesem Kontext beziehen sich “andere Quellen” auf URLs, die sich von dem Ort unterscheiden, an dem das JavaScript ausgefรผhrt wird. Diese Unterschiede kรถnnen verschiedene Domains, Ports oder Protokolle (HTTP oder HTTPS) umfassen. +Obwohl diese SicherheitsmaรŸnahme wichtig ist, um Benutzer vor unberechtigtem Zugriff auf ihre Daten zu schรผtzen, gibt es legitime Situationen, in denen ein Zugriff zwischen verschiedenen Quellen notwendig oder wรผnschenswert ist.

Broadcasting von Befehlen an mehrere Dockerapi-Instanzen!

Fรผr Administratoren, die mailcow in einem Cluster verwenden, ist es jetzt erforderlich, folgende Einstellung in der Datei mailcow.conf vorzunehmen: CLUSTERMODE=replication. +Dadurch wird sichergestellt, dass beim Lรถschen eines Postfachs die Anfrage an jeden Dockerapi-Container und somit an jeden Dovecot-Container gesendet wird, sodass alle Dateien auf jedem Host gelรถscht werden.

Bug fixes, Bug fixes und noch mehr Bug fixes…

Changelog

  • Update thollander/actions-comment-pull-request action to v2.4.0
  • Update dependency nextcloud/server to v27
  • Update nextcloud heper script to disable SMTP TLS host verification
  • [API] Update swagger version to 5.1.0
  • Rspamd returns 401 on unsuccesful logins
  • [Web] add cors to json_api
  • [Web] fix loading rspamd-history
  • [Dockerapi] add redis pubsub handler for broadcasting requests
  • [Rspamd] add dot-stuffing to bcc forwarding
  • [web] logger pdo exception handling workaround
  • [Rspamd] Native mailcow Support for Securite ClamAV Signatures
  • Fixes several instances of missing , extra role=‘tabpanel’ andโ€ฆ
  • Update dependency nextcloud/server to v27.0.1
  • Spamhaus DNSBL AS Detection

Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-07


Bleibt gespannt fรผr mehr:

Wรคhrend wir mailcow weiterentwickeln und verbessern, halten wir euch auf dem Laufenden รผber die neuesten Entwicklungen und Verbesserungen.

Ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen. +Eure Beitrรคge haben maรŸgeblich dazu beigetragen, mailcow noch besser, stabiler und benutzerfreundlicher zu machen!

Bleibt gesund und happy Mailing!

Euer mailcow Team

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-08/index.html b/de/posts/2023/release-2023-08/index.html new file mode 100644 index 000000000..57b580ed4 --- /dev/null +++ b/de/posts/2023/release-2023-08/index.html @@ -0,0 +1,31 @@ +๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixes - mailcow: dockerized - Blog +

๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixes

2023-08 (Release vom 03.08.2023)

Moohoo zusammen!

Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren.
Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature.
Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren.

Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache.
Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.cf lรถschen und leer lassen.
Um alle ร„nderungen an dieser Datei rรผckgรคngig zu machen, lรถscht die Datei einfach und startet Postfix neu.

Changelog

  • Fix main.cf merging order
  • [Postfix] rework dns_blocklists.cf generation
  • Add postscreen_dnsbl_reply_map to avoid disclosure of DQS key

Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-08


Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.

Bleibt gesund und happy Mailing!

Euer mailcow Team

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-09/index.html b/de/posts/2023/release-2023-09/index.html new file mode 100644 index 000000000..d9d4b9d75 --- /dev/null +++ b/de/posts/2023/release-2023-09/index.html @@ -0,0 +1,27 @@ +๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0) - mailcow: dockerized - Blog +

๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)

2023-09

Moohoo zusammen!

Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst.

Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10.

Changelog

  • [SOGo] Update to 5.9.0

Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09


Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.

Bleibt gesund und happy Mailing!

Euer mailcow Team

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-10/index.html b/de/posts/2023/release-2023-10/index.html new file mode 100644 index 000000000..89344b733 --- /dev/null +++ b/de/posts/2023/release-2023-10/index.html @@ -0,0 +1,55 @@ +๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision A - mailcow: dockerized - Blog +

๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision A

2023-10a (Verรถffentlicht am 12. Oktober 2023)

Changelog

  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)

2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

Dieses Mal ziemlich umfangreich!

Von UI-Verbesserungen (vor allem fรผr alle Darkmode-Fans wie mich) รผber domainweite Footer bis hin zu allgemeinen Verbesserungen und Fixes rund um den gesamten Stack haben wir einiges mitgebracht.

Also lasst uns beginnen oder?

Changelog

  • Eine Menge UI-Verbesserungen wurden hinzugefรผgt:
    • Ihr kรถnnt jetzt zwei UI-Logos hochladen (eins fรผr den Light- und eins fรผr den Darkmode).
    • Verbesserungen im Darkmode (Farbverbesserungen im UI).
    • Styling-Verbesserungen im Allgemeinen.
    • Bessere mobile Ansicht der mailcow UI.
    • Ihr kรถnnt nun die meisten Tabellen (Mailboxen, Domains, Aliase etc.) nach Domains filtern, um eine bessere รœbersicht zu erhalten.
  • Innerhalb der mailcow UI gibt es eine neue Option zur Verwendung eines domainweiten Footers. Sie kann verwendet werden, um eine Signatur unter alle E-Mails zu setzen, die von einer bestimmten E-Mail-Domain gesendet werden.
  • Die main.cf (von Postfix) wird nun korrekt aktualisiert, sobald Ihr einige Optionen mit der $myhostname Variable hinzufรผgt. Zuvor wurden sie entfernt, was nicht der Fall sein sollte.
  • Wir haben die hohe Last des dockerapi Containers behoben, die mit 2023-08 eingefรผhrt wurde.
  • Der X-Moo Tag (der bei der Verwendung von Subadressen hinzugefรผgt wird) wird nun nur noch dann hinzugefรผgt, wenn es wirklich notwendig ist, dies war ein kleines unkritisches Sicherheitsproblem.
  • Die generate_config.sh checkt nun korrekt den gewรผnschten Git-Zweig aus, was vorher nicht der Fall war.
  • http2 wurde aus den Listen-Optionen von Nginx entfernt, um die Meldung รผber die “Deprecation” beim Start von NGINX zu entfernen.
  • Wir haben die Hash-Bucket-GrรถรŸe von 64 auf 512 erhรถht, da einige Domain-Namen beim Start von NGINX mit der vorherigen Einstellung zu einem Absturz gefรผhrt hรคtten.
  • Es wurde eine verbesserte FQDN-Prรผfung wรคhrend der generate_config- und update.sh-Prozesse implementiert.
  • ClamAV wurde auf LTS 1.0.3 aktualisiert.
  • Wir haben ein Problem mit ACLs bei der Erstellung von Domรคnen/Postfรคchern behoben, welches mailcow veranlasste, den Fallback-Wert des SQL-Schemas fรผr die ACLs zu setzen, wenn keine ACLs explizit gesetzt wurden.
  • Dovecot wurde auf 2.3.21 aktualisiert.
  • Wir haben alle Container-Images, die cURL enthalten, aktualisiert, um die Sicherheitsprobleme mit den cURL-Versionen vor Version 8.4.0 zu beheben.
  • Es wurde ein Unbound Healthcheck beim Start von Compose hinzugefรผgt. Dieser wartet darauf, dass Unbound voll funktionsfรคhig ist, bevor er Container startet, die DNS-Auflรถsungen benรถtigen (Postfix, ClamAV, acme).
  • EAS-Bodys sind nun durchsuchbar. Diese Option wurde in SOGo aktiviert. Sie wird von uns als experimentelles Feature deklariert und eventuell wieder entfernt, wenn sie mehr ร„rger als SpaรŸ macht.
  • Aktualisierungen einiger interner PHP-FPM Komponenten.

Puh, das war VIEL, aber wir sind fertig fรผr dieses Update.

Wie immer: Das vollstรคndige Changelog, einschlieรŸlich der einzelnen Commits, ist fรผr Interessierte jederzeit auf GitHub verfรผgbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-10


Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure anhaltende Unterstรผtzung und euer wertvolles Feedback.

Bleibt gesund, frรถhliches Mailing und eine tolle Spooktober-Saison!

Euer mailcow-Team

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-11/index.html b/de/posts/2023/release-2023-11/index.html new file mode 100644 index 000000000..42f8e2eeb --- /dev/null +++ b/de/posts/2023/release-2023-11/index.html @@ -0,0 +1,95 @@ +๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixes - mailcow: dockerized - Blog +

๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixes

2023-11a (Release am 07.12.2023)

Changelog


2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

Changelog

  • Rspamd wurde auf Version 3.7.4 aktualisiert
  • In den Synchronisationsjobs ist nun ein Dry-Mode Button implementiert, welcher die Synchronisation einer Mailbox testet.
  • Ebenfalls gibt es in den Synchronisationsjobs nun den gรผltigen Parameter --f1f2 sollte man einen Mail Ordner in einen anders benahmten Mailordner synchronisieren wollen.
  • Ein Problem, welches Anhรคnge und den Domain Wide Footer betrifft wurde behoben. Dies hatte zur folge, dass Anhรคnge zerstรถrt wurden, wenn der Domain Wide Footer gesetzt war.
  • Ein Skript zur generation eines CAA Records wurde im helper-scripts Ordner angelegt.
  • Die Nextcloud Version wurde auf 27.1.3 aktualisiert. Zusรคtzlich wurde die NGINX Seite der Nextcloud an die neuen Anforderungen angepasst und fรผr Nutzer des Nextcloud Skriptes im helper-scripts Ordner ausgerollt.
  • Ein neues Sieve Template wurde bei dem Filter Menรผ der mailcow UI angelegt.
  • utf-8 Kodierte Passwรถrter werden nun in den Syncjobs korrekt verarbeitet.
  • Das update.sh Skript wurde optimiert um besser auf Docker Images reagieren zu kรถnnen, welche keinem Standard Versionstagging folgen (bspw. die Nightly Images), diese werden nun korrekt mit entfernt.
  • Diverse neue รœbersetzungen
  • und eine kritische Sicherheitslรผcke wurde geschlossen, welche die Quarantรคne UI in mailcow betrifft, eine CVE folgt.

Dadurch, dass wir hier eine kritische Lรผcke geschlossen haben empfehlen wir natรผrlich zu Updaten. Solltet ihr die Quarantรคne Funktion der mailcow nicht nutzen kรถnnt ihr dieses Update in der Theorie jedoch auslassen. Allerdings empfehlen wir immer euer System aktuell zu halten!

Wie immer: Der vollstรคndige Changelog, einschlieรŸlich der einzelnen Commits, ist fรผr Interessierte jederzeit auf GitHub verfรผgbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-11


Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure anhaltende Unterstรผtzung und euer wertvolles Feedback.

Bleibt gesund.

Euer mailcow-Team

0%
\ No newline at end of file diff --git a/de/posts/2023/release-2023-12/index.html b/de/posts/2023/release-2023-12/index.html new file mode 100644 index 000000000..d91328e92 --- /dev/null +++ b/de/posts/2023/release-2023-12/index.html @@ -0,0 +1,63 @@ +๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpoint - mailcow: dockerized - Blog +

๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpoint

2023-12a (Release am 29.12.2023)

Changelog


2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

Changelog

  • Update actions/stale action to v9 by @renovate in #5579
  • Translations update from Weblate by @milkmaker in #5583
  • [Netfilter] add nftables support by @FreddleSpl0it thanks to @amorfo77 in #5585
  • [Web] add f2b_banlist endpoint by @FreddleSpl0it in #5313
  • Watchdog: Allow sending notifications via webhooks by @felixoi in #4968
  • Allow suppressing watchdog start notification by @smarsching in #5453
  • Translations update from Weblate by @milkmaker in #5590
  • Update dependency nextcloud/server to v28 by @renovate in #5589
  • Translations update from Weblate by @milkmaker in #5591
  • Translations update from Weblate by @milkmaker in #5598
  • Guideline Improvement + Issue Template adjusting by @DerLinkman in #5602
  • chore(deps): update alpine docker tag to v3.19 by @renovate in #5603

Wie man den Banlist Endpoint benutzt, ist hier beschrieben https://docs.mailcow.email/de/manual-guides/mailcow-UI/u_e-mailcow_ui-netfilter/#netfilter-entscheidungen-via-url-als-quelle-fur-firewall-blockregeln-bereitstellen.

Der vollstรคndige Changelog, einschlieรŸlich der einzelnen Commits, ist fรผr Interessierte jederzeit auf GitHub verfรผgbar: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-12


Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure anhaltende Unterstรผtzung und euer wertvolles Feedback.

Bleibt gesund.

Euer mailcow-Team

0%
\ No newline at end of file diff --git a/de/posts/2023/spamhaus-dnsblocklist/index.html b/de/posts/2023/spamhaus-dnsblocklist/index.html new file mode 100644 index 000000000..6e7eda895 --- /dev/null +++ b/de/posts/2023/spamhaus-dnsblocklist/index.html @@ -0,0 +1,19 @@ +๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07 - mailcow: dockerized - Blog +

๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07

Moohoo zusammen!

Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.

Dieser Blogpost hier dient als Information fรผr interessierte.

Was sind Spamhaus DNS Blocklisten?

Zuerst einmal die generelle Frage was die Listen รผberhaupt sind bzw. wofรผr diese eingesetzt werden.

Die Spamhaus DNS Blocklisten sind (normalerweise) frei zugรคngliche Listen, welche in verschiedensten Systemen eines E-Mail Servers eingebaut werden kรถnnen (ob Rspamd, Postfix oder andere). In mailcow’s Fall werden diese in Postfix via Postscreen eingebunden.

Grundsรคtzlich sind diese eine Art “Prefilter” fรผr Spammer-Adressen. Dies jedoch auf IP und nicht erst auf Kontent ebene wie Rspamd arbeitet.

Die Listen werden live aktualisiert und sagen dem E-Mail Server bei der Verbindung einer gelisteten IP die Verbindung zu verweigern.

Diese Blocklisten waren bisher ohne Einschrรคnkungen fรผr jedem Nutzer benutzbar.

Das รคndert sich nun aber leider.

Was รคndert sich?

Spamhaus hat zum 20.06 die Mรถglichkeit zum Zugriff auf besagte Listen von OVH, AWS und Cloudflare Servern blockiert.

Dies hat zur Folge, dass die DNS Blocklisten (nur von Spamhaus, andere funktionieren weiterhin) damit nicht mehr funktionieren, wenn man als Benutzer nicht selber aktiv wird.

Denn ab sofort ist es (um weiterhin von den Spamhaus DNS Blocklisten gebrauch zu machen) notwendig sich einen Account bei Ihnen zu erstellen und einen DQS (Domain Query Service) Key zu generieren, den man dann in die mailcow.conf eintrรคgt.

mailcow kรผmmert sich dann um die konfiguration der neuen DQS Blocklisten, welche technisch genauso wie die ohne Account funktionieren.

Wir haben dafรผr eine Mรถglichkeit in das update und generate_config Skript implementiert, welche eure รถffentliche IP Adresse einem AS (Autonomen System) zuordnet und gegen einen Dienst von uns (asn-check.mailcow.email) prรผft ob ihr betroffen seit oder nicht. Falls ja, meldet mailcow dies.

Warum รคndert sich das und bin ich betroffen?

Spamhaus selbst sagt dazu:

In den Nutzungsbedingungen des Spamhaus-Projekts heiรŸt es, dass es Benutzern nicht erlaubt, Abfragen รผber DNS-Resolver durchzufรผhren, wenn kein zuordenbarer Reverse-DNS vorhanden ist. Dazu gehรถrt auch OVHCloud. […]

[…] Um sicherzustellen, dass diese Benutzer eine gute Servicequalitรคt haben, wird die Nutzung รผberwacht und anhand der Nutzungsbedingungen des Projekts gemessen. +OVHCloud maskiert die Anfragen von Organisationen an die Public Mirrors des Projekts, sodass das Team die Nutzung nicht einzelnen Entitรคten zuordnen kann. Sie haben keine Mรถglichkeit, die Anzahl der Anfragen einer einzelnen Organisation zu ermitteln. […]

[…] Um sicherzustellen, dass seine Nutzungsbedingungen eingehalten werden, blockiert das Spamhaus-Projekt Anfragen von einer bestimmten IP-Adresse auรŸerhalb der Richtlinie. AuรŸerdem wird ein Fehlercode zurรผckgegeben. Bei der Abfrage รผber einen offenen/รถffentlichen Resolver, also OVHCloud, lautet der Fehlercode 127.255.255.254 […]

Sprich verstรถรŸt OVH, AWS und Cloudflare mit Ihrer Art wie Sie Anfragen an Spamhaus schicken gegen die Nutzungsbedingungen der public DNS Blocklisten von Spamhaus.

Aktuell kann noch nicht gesagt werden ob es in Zukunft noch weitere Anbieter treffen wird. Aktuell wissen wir nur von den drei hier.

Was wenn ich keinen DQS Key und ein damit verbundenes Konto bei Spamhaus erstellen mรถchte?

Solltet ihr euch gegen ein Spamhaus Account und damit gegen DQS entscheiden und bei einem der Anbieter sein erhaltet ihr keinen extra Schutz mehr durch die DNS Blocklisten von Spamhaus.

Eure mailcow lรคuft ansonsten jedoch weiter wie bisher, ihr kรถnnt normal senden und empfangen!

Es geht hier wirklich nur um einen bisher inklusiven Spamschutz der dann wegfรคllt. Rspamd ist natรผrlich trotzdem noch da und fรคngt Spammails natรผrlich noch weiter ab.

Habe ich irgendwelche Vorteile, wenn ich DQS auch als nicht Betroffener nutze?

Natรผrlich kรถnnen alle mailcow Nutzer (nicht nur die betroffenen) die neuen DQS Blocklisten beziehen und nutzen.

Am besten lest ihr euch dazu den offiziellen Post von Spamhaus selbst zu, welche beide Listen miteinander vergleicht. (Allerdings leider nur auf Englisch erhรคltlich)

https://www.spamhaus.com/resource-center/if-you-query-spamhaus-projects-dnsbls-via-ovhclouds-dns-move-to-the-free-data-query-service/

Besagter Artikel fasst die Situation generell nochmal zusammen und erklรคrt wie ihr genau an so einen DQS Key kommt.


Ich hoffe das konnte in die Situation etwas klarheit bringen und euch die Angst nehmen, dass euer mailcow Server jetzt komplett gesperrt wurde oder รคhnliches.

Bleibt gesund und happy Mailing!

Euer mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/de/posts/index.html b/de/posts/index.html index 25d4cdd3a..27646f12c 100644 --- a/de/posts/index.html +++ b/de/posts/index.html @@ -1,290 +1,26 @@ - - - - - - - - Alle Artikel - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
-

Alle Artikel - 26 -

Total 5.35K words

2022

2021

  • - - 1 - -
  • - - 2 - -
0% -
-
- +Alle Artikel - mailcow: dockerized - Blog +

Alle Artikel 51

Total 16.80K words

2023

2022

0%
\ No newline at end of file diff --git a/de/posts/index.xml b/de/posts/index.xml index f0aaebd08..7f548ca53 100644 --- a/de/posts/index.xml +++ b/de/posts/index.xml @@ -1,199 +1,68 @@ -Posts on mailcow: dockerized - Bloghttps://mailcow.email/de/posts/Recent content in Posts on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-12/<h2 id="2023-12a-release-am-29122023">2023-12a (Release am 29.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-am-19122023">2023-12 (Release am 19.12.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. -Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen <code>WATCHDOG_NOTIFY_WEBHOOK</code> und <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in der <code>mailcow.conf</code> entsprechend konfiguriert werden.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-11/<h2 id="2023-11a-release-am-07122023">2023-11a (Release am 07.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-am-21112023">2023-11 (Release am 21.11.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.</p> -<p>Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-delay/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.</p> -<p>Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt&hellip;</p>๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-10/<h2 id="2023-10a-verรถffentlicht-am-12-oktober-2023">2023-10a (Verรถffentlicht am 12. Oktober 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!</li> -<li>Wir haben die Neustart-Aktion aus dem Abschnitt <code>depends_on</code> (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-verรถffentlicht-am-12-oktober-2023">2023-10 (Verรถffentlicht am 12. Oktober 2023)</h2> -<p><strong><del>Moo</del>Boo hoo zusammen!</strong></p> -<p>Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.</p> -<p>Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat &ldquo;erworben&rdquo; werden und ist nicht in diesem Update enthalten), was den Stack betrifft.</p> -<p>Dieses Mal ziemlich umfangreich!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +Alle Artikel - mailcow: dockerized - Bloghttps://mailcow.email/de/posts/Alle Artikel | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-12/ + 2023-12a (Release am 29.12.2023)

+ Changelog

+
+

+ 2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

+

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-11/ + 2023-11a (Release am 07.12.2023)

+ Changelog

+
+

+ 2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

+

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

+

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-delay/Moohoo zusammen!

+

Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.

+

Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt…

]]>
๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-10/ + 2023-10a (Verรถffentlicht am 12. Oktober 2023)

+ Changelog

    +
  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • +
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)
  • +
+
+

+ 2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

+

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

+

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

+

Dieses Mal ziemlich umfangreich!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. -Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-open-beta/<p><strong>Moohoo zusammen!</strong></p> -<p>Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:</p> -<p>mailcow&rsquo;s ARM64 Unterstรผtzung kann jetzt im Nightly als <strong>BETA</strong> getestet werden!</p>๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-open-beta/Moohoo zusammen!

+

Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:

+

mailcow’s ARM64 Unterstรผtzung kann jetzt im Nightly als BETA getestet werden!

]]>
๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: -Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo zusammen!</strong></p> -<p>Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.</p> -<p>Dieser Blogpost hier dient als Information fรผr interessierte.</p>โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! -Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. -Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:</p> -<p><strong>mailcow bekommt eine ARM64 Unterstรผtzung</strong></p>๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-04/Update 2023-04a Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. -Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. -Update 2023-04 Moohoo zusammen! -Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. -Legen wir los: -SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/ldap-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.</p> -<p>Heute dรผrfen wir es endlich in die Welt hinauslassen!</p>๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/letters-mystery/Moohoo zusammen! -Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. -Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt &ldquo;NUR&rdquo; Bugfixes etc. kommen. -Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-01/Einleitung Moohoo zusammen! -Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! -Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) -Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. -Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-12/Vorwort Moohoo zusammen! -Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! -Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. -Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-feat-alpine/โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>Unsere neuen Demos sind da!https://mailcow.email/de/posts/2022/our-new-demos/Sat, 24 Sep 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/our-new-demos/<p>Einen wunderschรถnen Guten Tag wรผnschen wir euch!</p> -<p>Endlich ist es so weit: Die neuen Demos sind da!</p>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! -Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! -Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. -Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! -Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. -Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. -Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! -Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! -Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? -Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. -Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! -Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. -Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) -Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.Willkommen auf der neuen mailcow Blogseite!https://mailcow.email/de/posts/2022/welcome-new-blog/Fri, 15 Jul 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/welcome-new-blog/Einen wunderschรถnen Guten Tag wรผnschen wir euch! -Herzlich willkommen auf der neuen Blogseite. -Einigen von euch dรผrfte die Seite bereits auf Twitter bzw. auf Telegram im letzten Update Announcement รผber den Weg gestolpert sein, doch jetzt an der Stelle noch mal offiziell! -Gebaut mit dem schnellen und schรถnen Static Site Generator Hugo und dem LoveIt Theme kann diese Seite in puncto Aktualitรคt mit der WordPress mithalten und sogar noch รผbertrumpfen.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! -Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, -wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). -Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. -Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. -So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. -Bitte Updated eure mailcow so schnell es geht via dem update.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!Empfehlung des Hauses: Die Videoreihe von Raspberry Pi Cloud (YT)https://mailcow.email/de/posts/2022/de-youtube-raspberrypicloud/Wed, 02 Mar 2022 11:57:52 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/de-youtube-raspberrypicloud/Tach zusammen! -Mal kein Update Log sondern eine Empfehlung unsererseits an alle, die neu in die mailcow Welt einsteigen oder ihr Wissen auffrischen wollen. -Solltet ihr eines der Sachen mit Ja beantwortet haben wird die folgende Video Reihe fรผr euch interessant sein: -Schaut generell einfach mal rein, wenn ihr mรถgt und lasst ein bisschen Liebe da, als dank der Vorstellung unseres mailcow Projektes. -Wir bedanken uns an dieser Stelle noch einmal ganz herzlich bei dir Dennis, wenn du das liest fรผhl dich gedrรผckt!๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) -Wir haben eine aufregende Neuigkeit mit euch zu teilen! -Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! -Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! -So prรคsentieren wir euch ab heute: -รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert) Hell-/Dunkelmodus Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten) Alles in allem eine Neuauflage der bestehenden Dokumentation.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-twitter/Moohoo allerseits! -Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! -Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. -Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. -Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten. -Bleibt gesund!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! -Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. -Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. -Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. -Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! -Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! -Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) -Dann wollen wir mal loslegen, ja? -Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. -AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. -Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/de/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moore_october21/Mรคdchen, Jungs und mailcows, -Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress. -Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! -Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. -AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. -Zeit fรผr ein Update! -AndrรฉWo hause ich eine mailcow?https://mailcow.email/de/posts/2021/mailcow_housing_external/Thu, 29 Jul 2021 13:03:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mailcow_housing_external/Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. -Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers. -Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar. -Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung. -Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.Heise, c't 10/2021 - mailcowhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Sat, 24 Apr 2021 10:20:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/heise_ct_10-2021/Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) -Es war auch fรผr uns eine รœberraschung! -https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html -Ich wรผnsche euch ein schรถnes Wochenende. -Andrรฉ
\ No newline at end of file +Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.
\ No newline at end of file diff --git a/de/posts/page/1/index.html b/de/posts/page/1/index.html index 4e05a8bcc..bec8abfc9 100644 --- a/de/posts/page/1/index.html +++ b/de/posts/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/posts/ - - - - - - +https://mailcow.email/de/posts/ + \ No newline at end of file diff --git a/de/posts/page/2/index.html b/de/posts/page/2/index.html index 23fc88255..bb1187410 100644 --- a/de/posts/page/2/index.html +++ b/de/posts/page/2/index.html @@ -1,248 +1,27 @@ - - - - - - - - Alle Artikel - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Alle Artikel - mailcow: dockerized - Blog +

Alle Artikel 51

Total 16.80K words

2022

0%
\ No newline at end of file diff --git a/de/posts/page/3/index.html b/de/posts/page/3/index.html new file mode 100644 index 000000000..11b76087c --- /dev/null +++ b/de/posts/page/3/index.html @@ -0,0 +1,18 @@ +Alle Artikel - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/posts/whats-up-arm64/index.html b/de/posts/whats-up-arm64/index.html new file mode 100644 index 000000000..ed10af5ad --- /dev/null +++ b/de/posts/whats-up-arm64/index.html @@ -0,0 +1,25 @@ +๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integration - mailcow: dockerized - Blog +

๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integration

Moohoo zusammen!

รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update.

Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut’s aus? nennen.

Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64:

Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt. Trotzdem wollen wir das immer noch bieten und arbeiten weiter an dieser. Allerdings gibt es ein paar Schwierigkeiten im Bezug auf den Fehlerlosen bzw. Seemless รผbergang von mailcow auf ARM64.

Diese sind fรผr den Hauptbetrieb prinzipiell nicht wirklich spรผrbar, stรถren uns jedoch so sehr, dass wir das ganze bisher on hold lassen.

Worum geht’s fragt ihr?

Danke fรผr die Frage! Genauer gesagt geht es um die Hyperscan Bibliothek bzw. die Implementierung von Hyperscan bzw. Vectorscan (wie es auf ARM64 heiรŸt) fรผr Rspamd. Besagter Hyperscan kompiliert regelmรครŸig Regex-Eintrรคge, die durch den Betrieb von mailcow dynamisch erzeugt werden und zur Erkennung von Spam benรถtigt werden. Genauer gesagt dient Hyperscan hier als Performance-Booster, da die Kompilierung der Regex-Eintrรคge so nicht immer wieder neu durchgefรผhrt werden muss, sondern kompiliert bleibt.

Was ist nun das Problem?

Das Problem ist nun, dass der besagte Hyperscan (Vectorscan) auf ARM64 zur Zeit nicht richtig funktioniert bzw. die Kompilierung nach einem Neustart hinfรคllig ist, da er diese nicht mehr laden kann. Allerdings muss man dazu sagen, dass Rspamd erst mit der aktuellen Version 3.5 nativen ARM64-Support erhalten hat und daher noch einige Fehler aufweisen kann.

Der Hauptgrund, warum wir das Ganze zurรผckhalten (obwohl die eigentliche Funktionalitรคt bereits vorhanden ist und von einigen Testern [DANKE] bereits erfolgreich getestet wurde) ist, dass es einige Warnungen in der Konsole gibt, die unerfahrene Benutzer verwirren oder verschrecken kรถnnen. AuรŸerdem kann aufgrund dieses Problems keine gleichwertige Leistung garantiert werden.

Dazu kommt noch die Tatsache, dass einige wichtige Kernkomponenten wie z.B. Dovecot (insbesondere er) mit dem Nightly Release von ARM64 von uns selbst kompiliert werden mรผssen, da das Dovecot Team keinen nativen ARM64 Support anbieten wird und wir die Pakete im mailcow Stack direkt von Ihnen beziehen und nicht wie z.B. bei Postfix รผber das APT Repo von Debian an die Versionen kommen.

Dies kann zum jetzigen Zeitpunkt ungeahnte Konsequenzen mit sich bringen, die mit einer grรถรŸeren Testrunde geklรคrt bzw. beleuchtet werden mรผssen.

Wir wollen den ARM64 Support nicht einfach “hinrotzen” nur damit wir sagen kรถnnen “Hey, mailcow kann jetzt auch ARM64, schaut mal her!!!” sondern ihn in den normalen Releasecycle und die normale mailcow Architektur integrieren, sodass wir nicht zwei Repos, sondern ein einziges Repo mit demselben Inhalt fรผr x86 und ARM64 pflegen kรถnnen.

So profitiert im Endeffekt jedermann davon.

Was heiรŸt das nun fรผr den ARM64 Support?

Wir arbeiten weiter an dem Support und werden auch wirklich bald damit beginnen, besagte ร„nderungen in den Nightly Branch zu implementieren. Allerdings wird es dann noch dauern, bis das ganze dann in den normalen Stable Branch gelangen wird und jeder es nutzen kann, wie er mag.

HeiรŸt abgekรผrzt also: Ein Full-Release noch dieses Jahr wollen wir nicht mehr garantieren. Wir hoffen es natรผrlich.

Natรผrlich geben wir euch Bescheid, sobald es dazu Neuerungen gibt.

Jetzt wisst ihr, was aktuell mit ARM64 los ist und warum es dort stagniert, obwohl es erst nicht so aussah.

Vielleicht denken jetzt einige von euch:

“Wegen so einer Lappalie released ihr das nicht?”

Und vermutlich werdet ihr damit auch nicht ganz falsch liegen, aber wir selbst mรถchten eben keine Experimente mal eben machen.


Wir planen solche “Ask the Developer” Blogposts รถfter zu verรถffentlichen und euch direkter รผber den aktuellen Stand zu informieren.

Fรผr alle LDAP Fans kann ich auch schon mal einen รคhnlichen Post im “Ask the Developer” Stil ankรผndigen. Aber das macht der gute Patrick, wenn er bereit ist, euch etwas dazu zu sagen.

Ansonsten gilt das, was immer gilt:

Bleibt gesund und happy Mailing!

Euer mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/de/sitemap.xml b/de/sitemap.xml index 9ea1412e3..83fd71d7b 100644 --- a/de/sitemap.xml +++ b/de/sitemap.xml @@ -1 +1 @@ -https://mailcow.email/de/tags/2023/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/changelog/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/update/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/updates/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-12/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-11/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/arm64-delay/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/arm64/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/news/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-10/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-09/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/hotfix/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/sogo/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/mailcow-idp/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/authentik/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/identity-provider/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/keycloak/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/ldap/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/nightly/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/oidc/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/single-sign-on/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/sso/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/arm64-open-beta/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-08/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/dnsbl/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/dqs/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/spamhaus/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-07/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/cors/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/faq/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/news/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/status/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/wie-schauts-aus/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/whats-up-arm64/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/hinweis/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/info/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/status/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/cve-2023-34108/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/cve/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/cve/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/hotfix/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/sicherheit/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/sicherheitshinweise/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/wichtig/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-05a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-05/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/performance/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/arm64-announcement/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-04/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/ldap-announcement/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/challenge/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/community/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/letters-mystery/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2023/release-2023-01/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-12/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/2022/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-11a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/bugfix/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/mailcow-feat-alpine/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/alpine/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/guides/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/installation/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/tutorial/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-10a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-10/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-09/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/sicherheit/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/our-new-demos/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-08b/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/beta/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/feedback/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/nightly/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/testing/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/nightly-tests-bs5/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-08/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-07a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/welcome-new-blog/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-07/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-06/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-05d/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/security/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-05/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/2022-04-info/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-04/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-03a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-03/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/de-youtube-raspberrypicloud/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/policy/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/imprint/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/docs-update-2.0/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/doku/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/dokumentation/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-01a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/mailcow-twitter/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/social-media/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/categories/social-media/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2022/release-2022-01/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/%C3%A4nderungen/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/log4j-dec2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/log4j/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/moovember2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/mooctober2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/moore_october21/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/memoryleak/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/empfehlungen/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/mailcow_housing_external/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/posts/2021/heise_ct_10-2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/de/tags/recommendations/2024-01-16T11:05:40+01:00weekly0.5 \ No newline at end of file +https://mailcow.email/de/tags/2023/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/changelog/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/update/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/updates/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-12/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-11/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/arm64-delay/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/arm64/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/news/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-10/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-09/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/hotfix/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/sogo/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/mailcow-idp/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/authentik/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/identity-provider/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/keycloak/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/ldap/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/nightly/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/oidc/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/single-sign-on/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/sso/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/arm64-open-beta/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-08/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/dnsbl/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/dqs/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/spamhaus/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-07/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/cors/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/faq/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/news/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/status/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/wie-schauts-aus/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/whats-up-arm64/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/hinweis/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/info/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/status/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/cve-2023-34108/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/cve/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/cve/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/hotfix/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/sicherheit/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/sicherheitshinweise/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/wichtig/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-05a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-05/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/performance/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/arm64-announcement/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-04/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/ldap-announcement/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/challenge/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/community/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/letters-mystery/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2023/release-2023-01/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-12/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/2022/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-11a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/bugfix/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/mailcow-feat-alpine/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/alpine/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/guides/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/installation/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/tutorial/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-10a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-10/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-09/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/sicherheit/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/our-new-demos/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-08b/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/beta/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/feedback/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/nightly/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/testing/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/nightly-tests-bs5/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-08/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-07a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/welcome-new-blog/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-07/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-06/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-05d/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/security/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-05/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/2022-04-info/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-04/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-03a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-03/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/de-youtube-raspberrypicloud/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/policy/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/imprint/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/docs-update-2.0/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/doku/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/dokumentation/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-01a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/mailcow-twitter/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/social-media/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/categories/social-media/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2022/release-2022-01/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/%C3%A4nderungen/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/log4j-dec2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/log4j/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/moovember2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/mooctober2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/moore_october21/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/memoryleak/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/empfehlungen/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/mailcow_housing_external/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/posts/2021/heise_ct_10-2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/de/tags/recommendations/2024-01-16T11:16:31+01:00weekly1 \ No newline at end of file diff --git a/de/tags/2021/index.html b/de/tags/2021/index.html index 29854079d..2ff2e8ba1 100644 --- a/de/tags/2021/index.html +++ b/de/tags/2021/index.html @@ -1,241 +1,14 @@ - - - - - - - - 2021 - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +2021 - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/2021/index.xml b/de/tags/2021/index.xml index fce1b1e85..c0efea615 100644 --- a/de/tags/2021/index.xml +++ b/de/tags/2021/index.xml @@ -1,23 +1,23 @@ -2021 on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/2021/Recent content in 2021 on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. +2021 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/2021/2021 - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100Autorhttps://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! -Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! +Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100Autorhttps://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) Dann wollen wir mal loslegen, ja? Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. +Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste):30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100Autorhttps://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/de/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moore_october21/Mรคdchen, Jungs und mailcows, +Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/de/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100Autorhttps://mailcow.email/de/posts/2021/moore_october21/Mรคdchen, Jungs und mailcows, Die Entwicklung steht nicht still, wir haben nur Schwierigkeiten, die vielen Anfragen von neuen Kunden zu bearbeiten. Kombiniert mit Krankheitsfรคllen, Urlaub und dem รผblichen Geschรคft sind wir wirklich im Stress. -Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! +Wir sind auch dabei, das Design ein wenig zu รผberarbeiten, das ist ein WIP und wird noch eine Weile dauern. Die ersten neuen Drucke werden wahrscheinlich auf unseren neuen Autos @ tinc zu sehen sein. Wir sind sehr aufgeregt!mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100Autorhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. Zeit fรผr ein Update! -AndrรฉWo hause ich eine mailcow?https://mailcow.email/de/posts/2021/mailcow_housing_external/Thu, 29 Jul 2021 13:03:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mailcow_housing_external/Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. +AndrรฉWo hause ich eine mailcow?https://mailcow.email/de/posts/2021/mailcow_housing_external/Thu, 29 Jul 2021 13:03:00 +0100Autorhttps://mailcow.email/de/posts/2021/mailcow_housing_external/Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers. Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar. Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung. -Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.Heise, c't 10/2021 - mailcowhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Sat, 24 Apr 2021 10:20:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/heise_ct_10-2021/Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) +Zusammen mit unserem mailcow Support steht dem Betrieb nichts mehr im Weg.Heise, c't 10/2021 - mailcowhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Sat, 24 Apr 2021 10:20:47 +0100Autorhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) Es war auch fรผr uns eine รœberraschung! https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html Ich wรผnsche euch ein schรถnes Wochenende. diff --git a/de/tags/2021/page/1/index.html b/de/tags/2021/page/1/index.html index c076aa1fd..7ae443a05 100644 --- a/de/tags/2021/page/1/index.html +++ b/de/tags/2021/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/2021/ - - - - - - +https://mailcow.email/de/tags/2021/ + \ No newline at end of file diff --git a/de/tags/2022/index.html b/de/tags/2022/index.html index e4b35fa18..498bbbd1d 100644 --- a/de/tags/2022/index.html +++ b/de/tags/2022/index.html @@ -1,268 +1,26 @@ - - - - - - - - 2022 - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -

- 2022 16

2022

0% -
-
- +2022 - Tag - mailcow: dockerized - Blog +

2022 21

2022

0%
\ No newline at end of file diff --git a/de/tags/2022/index.xml b/de/tags/2022/index.xml index e15d4fb36..44bac9773 100644 --- a/de/tags/2022/index.xml +++ b/de/tags/2022/index.xml @@ -1,76 +1,34 @@ -2022 on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/2022/Recent content in 2022 on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Sat, 24 Dec 2022 09:30:10 +0200๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-12/Vorwort Moohoo zusammen! +2022 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/2022/2022 - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeSat, 24 Dec 2022 09:30:10 +0200๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-12/<div class="featured-image"><img loading="eager" src="/images/2022-12/mailcow_ui_login.de.png" alt="๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5) " title="๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5) " referrerpolicy="no-referrer"/></div>VorwortMoohoo zusammen! Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. -Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! +Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-11a/Moohoo zusammen!

+

Aus gegebenem Anlass (dem 2022-11a 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten 2022-11a 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).

+
+

Wir haben bereits 2022-11b released!

+
]]>
โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-10a/Moohoo zusammen!

+

Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.

+

Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!

]]>
๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-10/Moohoo zusammen!

+

Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.

]]>
๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-09/ + 2022-09a (Release: 30.09.2022)

ร„nderungen:

+
    +
  • Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit CVE-2022-39261.
    +Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete
  • +
]]>
๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/nightly-tests-bs5/<div class="featured-image"><img loading="eager" src="/images/nightly_thumb.png" alt="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" title="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" referrerpolicy="no-referrer"/></div>Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. -Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! +Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit!๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! +Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! +Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, -wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). -Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. -Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.โš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. -So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. -Bitte Updated eure mailcow so schnell es geht via dem update.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) -Wir haben eine aufregende Neuigkeit mit euch zu teilen! -Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! -Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! -So prรคsentieren wir euch ab heute: -รœbersetzungsmรถglichkeiten der Dokumentation (Englisch und Deutsch werden von Servercow selbst unterstรผtzt und aktualisiert) Hell-/Dunkelmodus Neue Organisationsstruktur (interessant fรผr alle, die auch an der Dokumentation arbeiten mรถchten) Alles in allem eine Neuauflage der bestehenden Dokumentation.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-twitter/Moohoo allerseits! -Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! -Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. -Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. -Wir freuen uns darauf, dort mit Ihnen in Kontakt zu treten und Sie auf dem Laufenden zu halten. -Bleibt gesund!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! -Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. -Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. -Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.
\ No newline at end of file +2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.
\ No newline at end of file diff --git a/de/tags/2022/page/1/index.html b/de/tags/2022/page/1/index.html index 100d4647d..f7a5e1574 100644 --- a/de/tags/2022/page/1/index.html +++ b/de/tags/2022/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/2022/ - - - - - - +https://mailcow.email/de/tags/2022/ + \ No newline at end of file diff --git a/de/tags/2022/page/2/index.html b/de/tags/2022/page/2/index.html new file mode 100644 index 000000000..3b413123e --- /dev/null +++ b/de/tags/2022/page/2/index.html @@ -0,0 +1,8 @@ +2022 - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/2023/index.html b/de/tags/2023/index.html new file mode 100644 index 000000000..855902ed6 --- /dev/null +++ b/de/tags/2023/index.html @@ -0,0 +1,26 @@ +2023 - Tag - mailcow: dockerized - Blog +

2023 19

2023

0%
\ No newline at end of file diff --git a/de/tags/2023/index.xml b/de/tags/2023/index.xml index 9d149f3d9..5af2d083b 100644 --- a/de/tags/2023/index.xml +++ b/de/tags/2023/index.xml @@ -1,93 +1,68 @@ -2023 on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/2023/Recent content in 2023 on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-12/<h2 id="2023-12a-release-am-29122023">2023-12a (Release am 29.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-am-19122023">2023-12 (Release am 19.12.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. -Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen <code>WATCHDOG_NOTIFY_WEBHOOK</code> und <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in der <code>mailcow.conf</code> entsprechend konfiguriert werden.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-11/<h2 id="2023-11a-release-am-07122023">2023-11a (Release am 07.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-am-21112023">2023-11 (Release am 21.11.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.</p> -<p>Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-delay/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.</p> -<p>Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt&hellip;</p>๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-10/<h2 id="2023-10a-verรถffentlicht-am-12-oktober-2023">2023-10a (Verรถffentlicht am 12. Oktober 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!</li> -<li>Wir haben die Neustart-Aktion aus dem Abschnitt <code>depends_on</code> (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-verรถffentlicht-am-12-oktober-2023">2023-10 (Verรถffentlicht am 12. Oktober 2023)</h2> -<p><strong><del>Moo</del>Boo hoo zusammen!</strong></p> -<p>Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.</p> -<p>Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat &ldquo;erworben&rdquo; werden und ist nicht in diesem Update enthalten), was den Stack betrifft.</p> -<p>Dieses Mal ziemlich umfangreich!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +2023 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/2023/2023 - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-12/ + 2023-12a (Release am 29.12.2023)

+ Changelog

+
+

+ 2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

+

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-11/ + 2023-11a (Release am 07.12.2023)

+ Changelog

+
+

+ 2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

+

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

+

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-delay/Moohoo zusammen!

+

Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.

+

Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt…

]]>
๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-10/ + 2023-10a (Verรถffentlicht am 12. Oktober 2023)

+ Changelog

    +
  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • +
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)
  • +
+
+

+ 2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

+

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

+

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

+

Dieses Mal ziemlich umfangreich!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. -Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-open-beta/<p><strong>Moohoo zusammen!</strong></p> -<p>Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:</p> -<p>mailcow&rsquo;s ARM64 Unterstรผtzung kann jetzt im Nightly als <strong>BETA</strong> getestet werden!</p>๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-open-beta/Moohoo zusammen!

+

Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:

+

mailcow’s ARM64 Unterstรผtzung kann jetzt im Nightly als BETA getestet werden!

]]>
๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: -Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo zusammen!</strong></p> -<p>Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.</p> -<p>Dieser Blogpost hier dient als Information fรผr interessierte.</p>โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! -Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. -Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:</p> -<p><strong>mailcow bekommt eine ARM64 Unterstรผtzung</strong></p>๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-04/Update 2023-04a Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. -Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. -Update 2023-04 Moohoo zusammen! -Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. -Legen wir los: -SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/ldap-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.</p> -<p>Heute dรผrfen wir es endlich in die Welt hinauslassen!</p>๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/letters-mystery/Moohoo zusammen! -Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. -Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt &ldquo;NUR&rdquo; Bugfixes etc. kommen. -Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-01/Einleitung Moohoo zusammen! -Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! -Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) -Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. -Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:
\ No newline at end of file +Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.
\ No newline at end of file diff --git a/de/tags/2023/page/1/index.html b/de/tags/2023/page/1/index.html new file mode 100644 index 000000000..0f190f916 --- /dev/null +++ b/de/tags/2023/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/2023/ + \ No newline at end of file diff --git a/de/tags/alpine/index.html b/de/tags/alpine/index.html new file mode 100644 index 000000000..ed760f7e0 --- /dev/null +++ b/de/tags/alpine/index.html @@ -0,0 +1,8 @@ +Alpine - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/alpine/index.xml b/de/tags/alpine/index.xml index 87f68a1f8..7f10cbe7d 100644 --- a/de/tags/alpine/index.xml +++ b/de/tags/alpine/index.xml @@ -1 +1 @@ -Alpine on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/alpine/Recent content in Alpine on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Alpine - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/alpine/Alpine - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Autorhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux" referrerpolicy="no-referrer"/></div>Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux \ No newline at end of file diff --git a/de/tags/alpine/page/1/index.html b/de/tags/alpine/page/1/index.html new file mode 100644 index 000000000..99fa6afc9 --- /dev/null +++ b/de/tags/alpine/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/alpine/ + \ No newline at end of file diff --git a/de/tags/arm64/index.html b/de/tags/arm64/index.html new file mode 100644 index 000000000..ae7041541 --- /dev/null +++ b/de/tags/arm64/index.html @@ -0,0 +1,12 @@ +ARM64 - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/arm64/index.xml b/de/tags/arm64/index.xml index 663681b57..52e0061f7 100644 --- a/de/tags/arm64/index.xml +++ b/de/tags/arm64/index.xml @@ -1,14 +1,14 @@ -ARM64 on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/arm64/Recent content in ARM64 on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-delay/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.</p> -<p>Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt&hellip;</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-open-beta/<p><strong>Moohoo zusammen!</strong></p> -<p>Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:</p> -<p>mailcow&rsquo;s ARM64 Unterstรผtzung kann jetzt im Nightly als <strong>BETA</strong> getestet werden!</p>๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +ARM64 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/arm64/ARM64 - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) Entwicklung stagniert. Wird nicht mehr stabil 2023 erscheinenhttps://mailcow.email/de/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-delay/Moohoo zusammen!

+

Wir melden uns einmal wieder mit neuen Informationen zu dem aktuellen ARM64 Thema.

+

Leider sind das keine guten, wie Ihr vielleicht schon aus der รœberschrift entnehmen kรถnnt…

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) ist nun im Nightly Branch erhรคltlich (Offene Beta)https://mailcow.email/de/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-open-beta/Moohoo zusammen!

+

Nein ihr trรคumt nicht, ja ihr seid wach und nein das ist kein Witz:

+

mailcow’s ARM64 Unterstรผtzung kann jetzt im Nightly als BETA getestet werden!

]]>
๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: -Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! +Wir hatten ja ursprรผnglich angekรผndigt, mailcow bis Juni 2023 ARM64 Ready zu machen. Das hat offensichtlicherweise nicht ganz geklappt.๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/arm64-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:</p> -<p><strong>mailcow bekommt eine ARM64 Unterstรผtzung</strong></p>
\ No newline at end of file +Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.
๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommthttps://mailcow.email/de/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/arm64-announcement/๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) kommt

Moohoo zusammen!

+

Der aufkommende Hype zu ARM64 hat auch das mailcow Team nicht kaltgelassen und so ist es mir dementsprechend eine Freude zu sagen:

+

mailcow bekommt eine ARM64 Unterstรผtzung

]]>
\ No newline at end of file diff --git a/de/tags/arm64/page/1/index.html b/de/tags/arm64/page/1/index.html new file mode 100644 index 000000000..0817e6476 --- /dev/null +++ b/de/tags/arm64/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/arm64/ + \ No newline at end of file diff --git a/de/tags/authentik/index.html b/de/tags/authentik/index.html new file mode 100644 index 000000000..b0526f8f5 --- /dev/null +++ b/de/tags/authentik/index.html @@ -0,0 +1,8 @@ +authentik - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/authentik/index.xml b/de/tags/authentik/index.xml index d4701cbd7..2045ab9fa 100644 --- a/de/tags/authentik/index.xml +++ b/de/tags/authentik/index.xml @@ -1,4 +1,4 @@ -authentik on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/authentik/Recent content in authentik on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +authentik - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/authentik/authentik - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. diff --git a/de/tags/authentik/page/1/index.html b/de/tags/authentik/page/1/index.html new file mode 100644 index 000000000..9e07f942c --- /dev/null +++ b/de/tags/authentik/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/authentik/ + \ No newline at end of file diff --git a/de/tags/bugfix/index.html b/de/tags/bugfix/index.html index de707d3eb..34ff69a56 100644 --- a/de/tags/bugfix/index.html +++ b/de/tags/bugfix/index.html @@ -1,256 +1,22 @@ - - - - - - - - bugfix - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
0% -
-
- +bugfix - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/bugfix/index.xml b/de/tags/bugfix/index.xml index 5c5c0c544..fbf201817 100644 --- a/de/tags/bugfix/index.xml +++ b/de/tags/bugfix/index.xml @@ -1,56 +1,42 @@ -bugfix on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/bugfix/Recent content in bugfix on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 12 Dec 2022 09:30:10 +0200๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! +bugfix - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/bugfix/bugfix - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 12 Dec 2022 09:30:10 +0200๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-11a/Moohoo zusammen!

+

Aus gegebenem Anlass (dem 2022-11a 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten 2022-11a 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).

+
+

Wir haben bereits 2022-11b released!

+
]]>
โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-10a/Moohoo zusammen!

+

Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.

+

Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!

]]>
๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-09/ + 2022-09a (Release: 30.09.2022)

ร„nderungen:

+
    +
  • Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit CVE-2022-39261.
    +Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete
  • +
]]>
๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! +Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! +Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! +Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! +2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: Docker Compose v2 Unterstรผtzung!!! Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! +Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-05/2022-05cWir sind es wieder (nochmal)! Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c Bleibt gesund Niklas -2022-05b Wir sind es wieder! +2022-05bWir sind es wieder! Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! +Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100Autorhttps://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. -Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! -Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt.mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! -Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. -AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. -Zeit fรผr ein Update! -Andrรฉ
\ No newline at end of file +Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.
\ No newline at end of file diff --git a/de/tags/bugfix/page/1/index.html b/de/tags/bugfix/page/1/index.html index 72df339ba..5756345a1 100644 --- a/de/tags/bugfix/page/1/index.html +++ b/de/tags/bugfix/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/bugfix/ - - - - - - +https://mailcow.email/de/tags/bugfix/ + \ No newline at end of file diff --git a/de/tags/challenge/index.html b/de/tags/challenge/index.html new file mode 100644 index 000000000..80b6895dc --- /dev/null +++ b/de/tags/challenge/index.html @@ -0,0 +1,8 @@ +challenge - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/challenge/index.xml b/de/tags/challenge/index.xml index 3f5787bbc..633d9eafa 100644 --- a/de/tags/challenge/index.xml +++ b/de/tags/challenge/index.xml @@ -1,4 +1,4 @@ -challenge on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/challenge/Recent content in challenge on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/letters-mystery/Moohoo zusammen! +challenge - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/challenge/challenge - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/letters-mystery/๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]Moohoo zusammen! Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. -Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt &ldquo;NUR&rdquo; Bugfixes etc. kommen. -Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen: \ No newline at end of file +Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt “NUR” Bugfixes etc. kommen. +Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:]]> \ No newline at end of file diff --git a/de/tags/challenge/page/1/index.html b/de/tags/challenge/page/1/index.html new file mode 100644 index 000000000..2223dc5c0 --- /dev/null +++ b/de/tags/challenge/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/challenge/ + \ No newline at end of file diff --git a/de/tags/changelog/index.html b/de/tags/changelog/index.html index 44daac727..901dbde6a 100644 --- a/de/tags/changelog/index.html +++ b/de/tags/changelog/index.html @@ -1,256 +1,26 @@ - - - - - - - - changelog - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
0% -
-
- +changelog - Tag - mailcow: dockerized - Blog +

changelog 27

2023

2022

0%
\ No newline at end of file diff --git a/de/tags/changelog/index.xml b/de/tags/changelog/index.xml index 61906d4ae..8258f6397 100644 --- a/de/tags/changelog/index.xml +++ b/de/tags/changelog/index.xml @@ -1,130 +1,70 @@ -changelog on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/changelog/Recent content in changelog on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-12/<h2 id="2023-12a-release-am-29122023">2023-12a (Release am 29.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-am-19122023">2023-12 (Release am 19.12.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. -Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen <code>WATCHDOG_NOTIFY_WEBHOOK</code> und <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in der <code>mailcow.conf</code> entsprechend konfiguriert werden.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-11/<h2 id="2023-11a-release-am-07122023">2023-11a (Release am 07.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-am-21112023">2023-11 (Release am 21.11.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.</p> -<p>Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.</p>๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-10/<h2 id="2023-10a-verรถffentlicht-am-12-oktober-2023">2023-10a (Verรถffentlicht am 12. Oktober 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!</li> -<li>Wir haben die Neustart-Aktion aus dem Abschnitt <code>depends_on</code> (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-verรถffentlicht-am-12-oktober-2023">2023-10 (Verรถffentlicht am 12. Oktober 2023)</h2> -<p><strong><del>Moo</del>Boo hoo zusammen!</strong></p> -<p>Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.</p> -<p>Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat &ldquo;erworben&rdquo; werden und ist nicht in diesem Update enthalten), was den Stack betrifft.</p> -<p>Dieses Mal ziemlich umfangreich!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +changelog - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/changelog/changelog - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-12/ + 2023-12a (Release am 29.12.2023)

+ Changelog

+
+

+ 2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

+

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-11/ + 2023-11a (Release am 07.12.2023)

+ Changelog

+
+

+ 2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

+

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

+

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

]]>
๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-10/ + 2023-10a (Verรถffentlicht am 12. Oktober 2023)

+ Changelog

    +
  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • +
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)
  • +
+
+

+ 2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

+

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

+

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

+

Dieses Mal ziemlich umfangreich!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-04/Update 2023-04a Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. +Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-04/<div class="featured-image"><img loading="eager" src="/images/2023/April/netfilter_incremental_de.png" alt="๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A" title="๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A" referrerpolicy="no-referrer"/></div>Update 2023-04aWir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. -Update 2023-04 Moohoo zusammen! +Update 2023-04Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. Legen wir los: -SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-01/Einleitung Moohoo zusammen! +SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-01/EinleitungMoohoo zusammen! Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. -Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-12/Vorwort Moohoo zusammen! -Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! -Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. -Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! -Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! -Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. -Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! -Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! -Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? -Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. -Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! -Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. -Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) -Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! -Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! -Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) -Dann wollen wir mal loslegen, ja? -Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. -AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. -Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.
\ No newline at end of file +Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:
\ No newline at end of file diff --git a/de/tags/changelog/page/1/index.html b/de/tags/changelog/page/1/index.html index 4ed2fa042..e8ef0d662 100644 --- a/de/tags/changelog/page/1/index.html +++ b/de/tags/changelog/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/changelog/ - - - - - - +https://mailcow.email/de/tags/changelog/ + \ No newline at end of file diff --git a/de/tags/changelog/page/2/index.html b/de/tags/changelog/page/2/index.html new file mode 100644 index 000000000..0ea78fb48 --- /dev/null +++ b/de/tags/changelog/page/2/index.html @@ -0,0 +1,14 @@ +changelog - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/community/index.html b/de/tags/community/index.html new file mode 100644 index 000000000..54cf7a4c9 --- /dev/null +++ b/de/tags/community/index.html @@ -0,0 +1,8 @@ +community - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/community/index.xml b/de/tags/community/index.xml index 1d7190bb6..a1e33119f 100644 --- a/de/tags/community/index.xml +++ b/de/tags/community/index.xml @@ -1,4 +1,4 @@ -community on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/community/Recent content in community on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/letters-mystery/Moohoo zusammen! +community - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/community/community - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]https://mailcow.email/de/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/letters-mystery/๐Ÿค” Habt ihr diese Buchstaben gesehen? - [Gelรถst]Moohoo zusammen! Erst einmal ein dickes, dickes sorry fรผr die lange Funkstille hier. -Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt &ldquo;NUR&rdquo; Bugfixes etc. kommen. -Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen: \ No newline at end of file +Wir haben den Blog hier nicht vergessen und werden diesen auch wieder mit Content befรผllen, vermutlich einmal im Monat als Zusammenfassung was so bei den Updates passiert ist, welche ja jetzt (eigentlich) spontaner und dafรผr hรคufiger und mit mehr Neuerungen statt “NUR” Bugfixes etc. kommen. +Doch in diesem Blogpost mรถchten wir euch erstmal auf eine mysteriรถse Sache aufmerksam machen:]]> \ No newline at end of file diff --git a/de/tags/community/page/1/index.html b/de/tags/community/page/1/index.html new file mode 100644 index 000000000..d38f6e25a --- /dev/null +++ b/de/tags/community/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/community/ + \ No newline at end of file diff --git a/de/tags/cors/index.html b/de/tags/cors/index.html new file mode 100644 index 000000000..84e18d983 --- /dev/null +++ b/de/tags/cors/index.html @@ -0,0 +1,8 @@ +CORS - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/cors/index.xml b/de/tags/cors/index.xml index 23dcc6345..d7a116c9a 100644 --- a/de/tags/cors/index.xml +++ b/de/tags/cors/index.xml @@ -1,2 +1,2 @@ -CORS on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/cors/Recent content in CORS on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 10:48:10 +0200๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +CORS - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/cors/CORS - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 31 Jul 2023 10:48:10 +0200๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github. \ No newline at end of file diff --git a/de/tags/cors/page/1/index.html b/de/tags/cors/page/1/index.html new file mode 100644 index 000000000..f7d45c659 --- /dev/null +++ b/de/tags/cors/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/cors/ + \ No newline at end of file diff --git a/de/tags/cve/index.html b/de/tags/cve/index.html new file mode 100644 index 000000000..925e9bb70 --- /dev/null +++ b/de/tags/cve/index.html @@ -0,0 +1,8 @@ +cve - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/cve/index.xml b/de/tags/cve/index.xml index 6afe9e2c0..70c8686fd 100644 --- a/de/tags/cve/index.xml +++ b/de/tags/cve/index.xml @@ -1,3 +1,3 @@ -cve on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/cve/Recent content in cve on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p> \ No newline at end of file +cve - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/cve/cve - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/cve-2023-34108/Moohoo zusammen!

+

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

+

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

]]>
\ No newline at end of file diff --git a/de/tags/cve/page/1/index.html b/de/tags/cve/page/1/index.html new file mode 100644 index 000000000..a8e38f527 --- /dev/null +++ b/de/tags/cve/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/cve/ + \ No newline at end of file diff --git a/de/tags/dnsbl/index.html b/de/tags/dnsbl/index.html new file mode 100644 index 000000000..a04af9237 --- /dev/null +++ b/de/tags/dnsbl/index.html @@ -0,0 +1,9 @@ +DNSBL - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/dnsbl/index.xml b/de/tags/dnsbl/index.xml index 30794ad6c..a0823a776 100644 --- a/de/tags/dnsbl/index.xml +++ b/de/tags/dnsbl/index.xml @@ -1,7 +1,7 @@ -DNSBL on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/dnsbl/Recent content in DNSBL on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +DNSBL - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/dnsbl/DNSBL - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github. \ No newline at end of file diff --git a/de/tags/dnsbl/page/1/index.html b/de/tags/dnsbl/page/1/index.html new file mode 100644 index 000000000..b8558b4a2 --- /dev/null +++ b/de/tags/dnsbl/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/dnsbl/ + \ No newline at end of file diff --git a/de/tags/doku/index.html b/de/tags/doku/index.html index 4eae12dca..00204ec57 100644 --- a/de/tags/doku/index.html +++ b/de/tags/doku/index.html @@ -1,221 +1,8 @@ - - - - - - - - Doku - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Doku - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/doku/index.xml b/de/tags/doku/index.xml index f99ef41c6..da7959f8d 100644 --- a/de/tags/doku/index.xml +++ b/de/tags/doku/index.xml @@ -1,4 +1,4 @@ -Doku on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/doku/Recent content in Doku on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) +Doku - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/doku/Doku - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜Neu: Die mailcow Docs sprechen jetzt auch Deutsch! ๐Ÿ“˜ - mailcow Docs 2.0 ร„nderungenhttps://mailcow.email/de/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100Autorhttps://mailcow.email/de/posts/2022/docs-update-2.0/Moohoo alle! It&rsquo;s Friday then Then Saturday, Sunday (what?) Wir haben eine aufregende Neuigkeit mit euch zu teilen! Wir prรคsentieren euch die neu verรถffentlichten mailcow: dockerized Docs 2.0! Auf den ersten Blick mag sich nicht viel geรคndert haben (sollte man meinen), aber unter der Haube hat sich einiges getan! diff --git a/de/tags/doku/page/1/index.html b/de/tags/doku/page/1/index.html index 3ba950301..d84a9edcb 100644 --- a/de/tags/doku/page/1/index.html +++ b/de/tags/doku/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/doku/ - - - - - - +https://mailcow.email/de/tags/doku/ + \ No newline at end of file diff --git a/de/tags/dqs/index.html b/de/tags/dqs/index.html new file mode 100644 index 000000000..4da0dfe5a --- /dev/null +++ b/de/tags/dqs/index.html @@ -0,0 +1,8 @@ +DQS - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/dqs/index.xml b/de/tags/dqs/index.xml index 6e194c6cb..57ab7d9d7 100644 --- a/de/tags/dqs/index.xml +++ b/de/tags/dqs/index.xml @@ -1,4 +1,4 @@ -DQS on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/dqs/Recent content in DQS on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +DQS - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/dqs/DQS - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. diff --git a/de/tags/dqs/page/1/index.html b/de/tags/dqs/page/1/index.html new file mode 100644 index 000000000..8ae33c45b --- /dev/null +++ b/de/tags/dqs/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/dqs/ + \ No newline at end of file diff --git a/de/tags/empfehlungen/index.html b/de/tags/empfehlungen/index.html index 4ee6f241f..4e4622a49 100644 --- a/de/tags/empfehlungen/index.html +++ b/de/tags/empfehlungen/index.html @@ -1,221 +1,8 @@ - - - - - - - - empfehlungen - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
-
- - -
-
-
- - -
-

- empfehlungen 1

2021

0% -
-
- +empfehlungen - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/empfehlungen/index.xml b/de/tags/empfehlungen/index.xml index eaa9c3ef6..f36b65058 100644 --- a/de/tags/empfehlungen/index.xml +++ b/de/tags/empfehlungen/index.xml @@ -1,4 +1,4 @@ -empfehlungen on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/empfehlungen/Recent content in empfehlungen on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 29 Jul 2021 13:03:00 +0100Wo hause ich eine mailcow?https://mailcow.email/de/posts/2021/mailcow_housing_external/Thu, 29 Jul 2021 13:03:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mailcow_housing_external/Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. +empfehlungen - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/empfehlungen/empfehlungen - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 29 Jul 2021 13:03:00 +0100Wo hause ich eine mailcow?https://mailcow.email/de/posts/2021/mailcow_housing_external/Thu, 29 Jul 2021 13:03:00 +0100Autorhttps://mailcow.email/de/posts/2021/mailcow_housing_external/Da die Frage immer wieder aufkommt und es schwierig ist ein fรผr den Mailserverbetrieb geeignetes ASN zu finden, kann ich heute ruhigen Gewissens Lennarts ETH-Services empfehlen. Lennart ist selber in der mailcow Community aktiv und kennt die Kniffe zum Betrieb eines Mailservers. Fรผr einen reibungslosen Betrieb einer mailcow empfehle ich den VPS Gianfar. Es ist eine aufrichtige, nicht bezahlte und gut gemeinte Empfehlung. diff --git a/de/tags/empfehlungen/page/1/index.html b/de/tags/empfehlungen/page/1/index.html index 482f7aae1..5066f31a4 100644 --- a/de/tags/empfehlungen/page/1/index.html +++ b/de/tags/empfehlungen/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/empfehlungen/ - - - - - - +https://mailcow.email/de/tags/empfehlungen/ + \ No newline at end of file diff --git a/de/tags/faq/index.html b/de/tags/faq/index.html new file mode 100644 index 000000000..f053d76ac --- /dev/null +++ b/de/tags/faq/index.html @@ -0,0 +1,8 @@ +faq - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/faq/index.xml b/de/tags/faq/index.xml index 7e7049eda..733879183 100644 --- a/de/tags/faq/index.xml +++ b/de/tags/faq/index.xml @@ -1,4 +1,4 @@ -faq on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/faq/Recent content in faq on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +faq - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/faq/faq - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: diff --git a/de/tags/faq/page/1/index.html b/de/tags/faq/page/1/index.html new file mode 100644 index 000000000..d958cc093 --- /dev/null +++ b/de/tags/faq/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/faq/ + \ No newline at end of file diff --git a/de/tags/feedback/index.html b/de/tags/feedback/index.html index a1db155aa..4ea197ded 100644 --- a/de/tags/feedback/index.html +++ b/de/tags/feedback/index.html @@ -1,223 +1,8 @@ - - - - - - - - feedback - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +feedback - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/feedback/index.xml b/de/tags/feedback/index.xml index 148c6b0c4..c5f064419 100644 --- a/de/tags/feedback/index.xml +++ b/de/tags/feedback/index.xml @@ -1,4 +1,4 @@ -feedback on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/feedback/Recent content in feedback on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +feedback - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/feedback/feedback - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/nightly-tests-bs5/<div class="featured-image"><img loading="eager" src="/images/nightly_thumb.png" alt="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" title="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" referrerpolicy="no-referrer"/></div>Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit! \ No newline at end of file diff --git a/de/tags/feedback/page/1/index.html b/de/tags/feedback/page/1/index.html index 0cc2df124..2c0648172 100644 --- a/de/tags/feedback/page/1/index.html +++ b/de/tags/feedback/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/feedback/ - - - - - - +https://mailcow.email/de/tags/feedback/ + \ No newline at end of file diff --git a/de/tags/hotfix/index.html b/de/tags/hotfix/index.html index 1090edf7a..7df64ecd6 100644 --- a/de/tags/hotfix/index.html +++ b/de/tags/hotfix/index.html @@ -1,226 +1,12 @@ - - - - - - - - hotfix - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +hotfix - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/hotfix/index.xml b/de/tags/hotfix/index.xml index 2322227c8..ee522018e 100644 --- a/de/tags/hotfix/index.xml +++ b/de/tags/hotfix/index.xml @@ -1,18 +1,18 @@ -hotfix on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/hotfix/Recent content in hotfix on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +hotfix - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/hotfix/hotfix - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. +Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100Autorhttps://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. Bitte Updated eure mailcow so schnell es geht via dem update.
\ No newline at end of file diff --git a/de/tags/hotfix/page/1/index.html b/de/tags/hotfix/page/1/index.html index bb1429c1a..c949fdb11 100644 --- a/de/tags/hotfix/page/1/index.html +++ b/de/tags/hotfix/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/hotfix/ - - - - - - +https://mailcow.email/de/tags/hotfix/ + \ No newline at end of file diff --git a/de/tags/identity-provider/index.html b/de/tags/identity-provider/index.html new file mode 100644 index 000000000..7deefedca --- /dev/null +++ b/de/tags/identity-provider/index.html @@ -0,0 +1,8 @@ +identity provider - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/identity-provider/index.xml b/de/tags/identity-provider/index.xml index 65d683927..f8f47843a 100644 --- a/de/tags/identity-provider/index.xml +++ b/de/tags/identity-provider/index.xml @@ -1,4 +1,4 @@ -identity provider on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/identity-provider/Recent content in identity provider on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +identity provider - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/identity-provider/identity provider - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. diff --git a/de/tags/identity-provider/page/1/index.html b/de/tags/identity-provider/page/1/index.html new file mode 100644 index 000000000..6d588466b --- /dev/null +++ b/de/tags/identity-provider/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/identity-provider/ + \ No newline at end of file diff --git a/de/tags/index.html b/de/tags/index.html index 75bc3bb20..28184c816 100644 --- a/de/tags/index.html +++ b/de/tags/index.html @@ -1,221 +1,7 @@ - - - - - - - - Alle Tags - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +Alle Tags - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/index.xml b/de/tags/index.xml index 97150425a..a377215c6 100644 --- a/de/tags/index.xml +++ b/de/tags/index.xml @@ -1 +1 @@ -Tags on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/Recent content in Tags on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +02002023https://mailcow.email/de/tags/2023/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/2023/changeloghttps://mailcow.email/de/tags/changelog/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/changelog/updatehttps://mailcow.email/de/tags/update/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/update/ARM64https://mailcow.email/de/tags/arm64/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/arm64/hotfixhttps://mailcow.email/de/tags/hotfix/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/hotfix/SOGohttps://mailcow.email/de/tags/sogo/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/sogo/authentikhttps://mailcow.email/de/tags/authentik/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/authentik/identity providerhttps://mailcow.email/de/tags/identity-provider/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/identity-provider/keycloakhttps://mailcow.email/de/tags/keycloak/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/keycloak/LDAPhttps://mailcow.email/de/tags/ldap/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/ldap/nightlyhttps://mailcow.email/de/tags/nightly/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/nightly/oidchttps://mailcow.email/de/tags/oidc/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/oidc/single sign onhttps://mailcow.email/de/tags/single-sign-on/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/single-sign-on/ssohttps://mailcow.email/de/tags/sso/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/sso/DNSBLhttps://mailcow.email/de/tags/dnsbl/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/dnsbl/DQShttps://mailcow.email/de/tags/dqs/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/dqs/Spamhaushttps://mailcow.email/de/tags/spamhaus/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/spamhaus/CORShttps://mailcow.email/de/tags/cors/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/cors/faqhttps://mailcow.email/de/tags/faq/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/faq/newshttps://mailcow.email/de/tags/news/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/news/statushttps://mailcow.email/de/tags/status/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/status/infohttps://mailcow.email/de/tags/info/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/info/cvehttps://mailcow.email/de/tags/cve/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/cve/sicherheithttps://mailcow.email/de/tags/sicherheit/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/sicherheit/wichtighttps://mailcow.email/de/tags/wichtig/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/wichtig/Performancehttps://mailcow.email/de/tags/performance/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/performance/challengehttps://mailcow.email/de/tags/challenge/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/challenge/communityhttps://mailcow.email/de/tags/community/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/community/2022https://mailcow.email/de/tags/2022/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/2022/bugfixhttps://mailcow.email/de/tags/bugfix/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/bugfix/Alpinehttps://mailcow.email/de/tags/alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/alpine/Installationhttps://mailcow.email/de/tags/installation/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/installation/Tutorialhttps://mailcow.email/de/tags/tutorial/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/tutorial/feedbackhttps://mailcow.email/de/tags/feedback/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/feedback/testinghttps://mailcow.email/de/tags/testing/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/testing/securityhttps://mailcow.email/de/tags/security/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/tags/security/Dokuhttps://mailcow.email/de/tags/doku/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/doku/social mediahttps://mailcow.email/de/tags/social-media/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/social-media/รคnderungenhttps://mailcow.email/de/tags/%C3%A4nderungen/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/%C3%A4nderungen/2021https://mailcow.email/de/tags/2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/2021/log4jhttps://mailcow.email/de/tags/log4j/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/log4j/memoryleakhttps://mailcow.email/de/tags/memoryleak/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/memoryleak/empfehlungenhttps://mailcow.email/de/tags/empfehlungen/Thu, 29 Jul 2021 13:03:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/empfehlungen/recommendationshttps://mailcow.email/de/tags/recommendations/Sat, 24 Apr 2021 10:20:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/tags/recommendations/ \ No newline at end of file +Tags - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/Tags - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +02002023https://mailcow.email/de/tags/2023/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/tags/2023/changeloghttps://mailcow.email/de/tags/changelog/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/tags/changelog/updatehttps://mailcow.email/de/tags/update/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/tags/update/ARM64https://mailcow.email/de/tags/arm64/Fri, 13 Oct 2023 08:00:00 +0200Autorhttps://mailcow.email/de/tags/arm64/hotfixhttps://mailcow.email/de/tags/hotfix/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/tags/hotfix/SOGohttps://mailcow.email/de/tags/sogo/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/tags/sogo/authentikhttps://mailcow.email/de/tags/authentik/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/tags/authentik/identity providerhttps://mailcow.email/de/tags/identity-provider/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/tags/identity-provider/keycloakhttps://mailcow.email/de/tags/keycloak/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/tags/keycloak/LDAPhttps://mailcow.email/de/tags/ldap/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/tags/ldap/ \ No newline at end of file diff --git a/de/tags/info/index.html b/de/tags/info/index.html new file mode 100644 index 000000000..b2319d21d --- /dev/null +++ b/de/tags/info/index.html @@ -0,0 +1,8 @@ +info - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/info/index.xml b/de/tags/info/index.xml index cf4b596ac..87878017c 100644 --- a/de/tags/info/index.xml +++ b/de/tags/info/index.xml @@ -1,3 +1,3 @@ -info on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/info/Recent content in info on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo zusammen!</strong></p> -<p>Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.</p> -<p>Dieser Blogpost hier dient als Information fรผr interessierte.</p> \ No newline at end of file +info - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/info/info - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist ร„nderungen ab 2023-07https://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200Autorhttps://mailcow.email/de/posts/2023/spamhaus-dnsblocklist/Moohoo zusammen!

+

Mit dem mailcow Update 2023-07 gibt es eine etwas grรถรŸere ร„nderung bezรผglich Spamhaus DNS Blocklisten.

+

Dieser Blogpost hier dient als Information fรผr interessierte.

]]>
\ No newline at end of file diff --git a/de/tags/info/page/1/index.html b/de/tags/info/page/1/index.html new file mode 100644 index 000000000..b763e5d11 --- /dev/null +++ b/de/tags/info/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/info/ + \ No newline at end of file diff --git a/de/tags/installation/index.html b/de/tags/installation/index.html new file mode 100644 index 000000000..619e5698e --- /dev/null +++ b/de/tags/installation/index.html @@ -0,0 +1,8 @@ +Installation - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/installation/index.xml b/de/tags/installation/index.xml index 250c18bcd..29af3f43a 100644 --- a/de/tags/installation/index.xml +++ b/de/tags/installation/index.xml @@ -1 +1 @@ -Installation on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/installation/Recent content in Installation on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Installation - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/installation/Installation - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Autorhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux" referrerpolicy="no-referrer"/></div>Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux \ No newline at end of file diff --git a/de/tags/installation/page/1/index.html b/de/tags/installation/page/1/index.html new file mode 100644 index 000000000..3e9e76c1e --- /dev/null +++ b/de/tags/installation/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/installation/ + \ No newline at end of file diff --git a/de/tags/keycloak/index.html b/de/tags/keycloak/index.html new file mode 100644 index 000000000..23c4314bf --- /dev/null +++ b/de/tags/keycloak/index.html @@ -0,0 +1,8 @@ +keycloak - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/keycloak/index.xml b/de/tags/keycloak/index.xml index faa8bd206..92da7277a 100644 --- a/de/tags/keycloak/index.xml +++ b/de/tags/keycloak/index.xml @@ -1,4 +1,4 @@ -keycloak on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/keycloak/Recent content in keycloak on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +keycloak - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/keycloak/keycloak - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. diff --git a/de/tags/keycloak/page/1/index.html b/de/tags/keycloak/page/1/index.html new file mode 100644 index 000000000..9dd2e2037 --- /dev/null +++ b/de/tags/keycloak/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/keycloak/ + \ No newline at end of file diff --git a/de/tags/ldap/index.html b/de/tags/ldap/index.html new file mode 100644 index 000000000..0776ed9ab --- /dev/null +++ b/de/tags/ldap/index.html @@ -0,0 +1,9 @@ +LDAP - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/ldap/index.xml b/de/tags/ldap/index.xml index 096180194..4eea03e6d 100644 --- a/de/tags/ldap/index.xml +++ b/de/tags/ldap/index.xml @@ -1,7 +1,7 @@ -LDAP on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/ldap/Recent content in LDAP on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +LDAP - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/ldap/LDAP - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. -Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/ldap-announcement/<p><strong>Moohoo zusammen!</strong></p> -<p>Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.</p> -<p>Heute dรผrfen wir es endlich in die Welt hinauslassen!</p> \ No newline at end of file +Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.๐Ÿฎ๐Ÿค LDAP ist real und kommt noch 2023https://mailcow.email/de/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200Autorhttps://mailcow.email/de/posts/2023/ldap-announcement/Moohoo zusammen!

+

Die Zeit des Wartens ist vorbei und viele haben uns Ihre Lรถsung auf den unten angegebenen Kontaktmรถglichkeiten mitgeteilt.

+

Heute dรผrfen wir es endlich in die Welt hinauslassen!

]]>
\ No newline at end of file diff --git a/de/tags/ldap/page/1/index.html b/de/tags/ldap/page/1/index.html new file mode 100644 index 000000000..f450fffa1 --- /dev/null +++ b/de/tags/ldap/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/ldap/ + \ No newline at end of file diff --git a/de/tags/log4j/index.html b/de/tags/log4j/index.html index 45b50d2b7..30e19154e 100644 --- a/de/tags/log4j/index.html +++ b/de/tags/log4j/index.html @@ -1,223 +1,8 @@ - - - - - - - - log4j - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +log4j - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/log4j/index.xml b/de/tags/log4j/index.xml index 11e232131..e27b1283c 100644 --- a/de/tags/log4j/index.xml +++ b/de/tags/log4j/index.xml @@ -1,3 +1,3 @@ -log4j on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/log4j/Recent content in log4j on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. +log4j - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/log4j/log4j - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Wichtige Informationen รผber log4j-Exploit โš ๏ธhttps://mailcow.email/de/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100Autorhttps://mailcow.email/de/posts/2021/log4j-dec2021/Moohoo an alle! Aufgrund der jรผngsten Vorfรคlle mit der Java-Bibliothek log4j mรถchten wir euch mitteilen, dass eure mailcow NICHT direkt davon betroffen ist. Ja, es ist wahr, dass der Solr Container eine Java Anwendung ist, die von der log4j Sicherheitslรผcke betroffen ist. Aber Solr ist NICHT von auรŸerhalb des mailcow-Stacks zugรคnglich! Fรผr diejenigen, die besorgt sind, haben wir einen Solr Hotfix verรถffentlicht, der das log4j-Problem mit dem einfachen Flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') behebt, welches dieses Problem schlieรŸt. \ No newline at end of file diff --git a/de/tags/log4j/page/1/index.html b/de/tags/log4j/page/1/index.html index 3cea0bdbf..04ac1b910 100644 --- a/de/tags/log4j/page/1/index.html +++ b/de/tags/log4j/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/log4j/ - - - - - - +https://mailcow.email/de/tags/log4j/ + \ No newline at end of file diff --git a/de/tags/memoryleak/index.html b/de/tags/memoryleak/index.html index 876faebbc..ad51141e3 100644 --- a/de/tags/memoryleak/index.html +++ b/de/tags/memoryleak/index.html @@ -1,223 +1,8 @@ - - - - - - - - memoryleak - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +memoryleak - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/memoryleak/index.xml b/de/tags/memoryleak/index.xml index a43b38c5e..1a3738150 100644 --- a/de/tags/memoryleak/index.xml +++ b/de/tags/memoryleak/index.xml @@ -1,4 +1,4 @@ -memoryleak on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/memoryleak/Recent content in memoryleak on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 02 Sep 2021 20:19:57 +0100mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! +memoryleak - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/memoryleak/memoryleak - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 02 Sep 2021 20:19:57 +0100mailcows, die zwischen dem 25. August und dem 2. September 2021 aktualisiert wurden, sollten erneut aktualisiert werdenhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100Autorhttps://mailcow.email/de/posts/2021/rspamd_memleak_sep2021/Hallo! Wenn ihr eure mailcow zwischen dem 25. August und dem 2. September 2021 aktualisiert habt, seid ihr hรถchstwahrscheinlich auf ein Memory-Leak in den Einstellungen von Rspamd gestoรŸen, das gerade behoben wurde. AuรŸerdem haben wir das Map Hammering mit einer weiteren ร„nderung im Map Generator stark reduziert. Zeit fรผr ein Update! diff --git a/de/tags/memoryleak/page/1/index.html b/de/tags/memoryleak/page/1/index.html index 8378a415d..ab7d995d6 100644 --- a/de/tags/memoryleak/page/1/index.html +++ b/de/tags/memoryleak/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/memoryleak/ - - - - - - +https://mailcow.email/de/tags/memoryleak/ + \ No newline at end of file diff --git a/de/tags/news/index.html b/de/tags/news/index.html new file mode 100644 index 000000000..2cce0fd4b --- /dev/null +++ b/de/tags/news/index.html @@ -0,0 +1,8 @@ +news - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/news/index.xml b/de/tags/news/index.xml index 74ea2c8a2..f0303a2fe 100644 --- a/de/tags/news/index.xml +++ b/de/tags/news/index.xml @@ -1,4 +1,4 @@ -news on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/news/Recent content in news on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +news - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/news/news - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: diff --git a/de/tags/news/page/1/index.html b/de/tags/news/page/1/index.html new file mode 100644 index 000000000..e8da72d57 --- /dev/null +++ b/de/tags/news/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/news/ + \ No newline at end of file diff --git a/de/tags/nightly/index.html b/de/tags/nightly/index.html index ff610bbbc..0050d8c61 100644 --- a/de/tags/nightly/index.html +++ b/de/tags/nightly/index.html @@ -1,223 +1,9 @@ - - - - - - - - nightly - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +nightly - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/nightly/index.xml b/de/tags/nightly/index.xml index bd9895678..58c2105a2 100644 --- a/de/tags/nightly/index.xml +++ b/de/tags/nightly/index.xml @@ -1,8 +1,8 @@ -nightly on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/nightly/Recent content in nightly on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +nightly - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/nightly/nightly - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. -Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +Lasst uns mal darรผber sprechen, was sich geรคndert hat, was wir uns dabei gedacht haben und was wir in Zukunft noch hinzufรผgen mรถchten.Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/nightly-tests-bs5/<div class="featured-image"><img loading="eager" src="/images/nightly_thumb.png" alt="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" title="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" referrerpolicy="no-referrer"/></div>Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit! \ No newline at end of file diff --git a/de/tags/nightly/page/1/index.html b/de/tags/nightly/page/1/index.html index 7398a6bf4..c1466a2eb 100644 --- a/de/tags/nightly/page/1/index.html +++ b/de/tags/nightly/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/nightly/ - - - - - - +https://mailcow.email/de/tags/nightly/ + \ No newline at end of file diff --git a/de/tags/oidc/index.html b/de/tags/oidc/index.html new file mode 100644 index 000000000..6a0a108fc --- /dev/null +++ b/de/tags/oidc/index.html @@ -0,0 +1,8 @@ +oidc - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/oidc/index.xml b/de/tags/oidc/index.xml index ea80ce644..f51d7fa67 100644 --- a/de/tags/oidc/index.xml +++ b/de/tags/oidc/index.xml @@ -1,4 +1,4 @@ -oidc on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/oidc/Recent content in oidc on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +oidc - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/oidc/oidc - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. diff --git a/de/tags/oidc/page/1/index.html b/de/tags/oidc/page/1/index.html new file mode 100644 index 000000000..3d8b299e1 --- /dev/null +++ b/de/tags/oidc/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/oidc/ + \ No newline at end of file diff --git a/de/tags/performance/index.html b/de/tags/performance/index.html new file mode 100644 index 000000000..601f00ec1 --- /dev/null +++ b/de/tags/performance/index.html @@ -0,0 +1,8 @@ +Performance - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/performance/index.xml b/de/tags/performance/index.xml index 03fc5fcf4..e93837be0 100644 --- a/de/tags/performance/index.xml +++ b/de/tags/performance/index.xml @@ -1,4 +1,4 @@ -Performance on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/performance/Recent content in Performance on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 25 May 2023 09:30:10 +0200๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! +Performance - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/performance/Performance - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 25 May 2023 09:30:10 +0200๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. Los geht&rsquo;s: Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs. \ No newline at end of file diff --git a/de/tags/performance/page/1/index.html b/de/tags/performance/page/1/index.html new file mode 100644 index 000000000..6bfbb0f48 --- /dev/null +++ b/de/tags/performance/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/performance/ + \ No newline at end of file diff --git a/de/tags/recommendations/index.html b/de/tags/recommendations/index.html index 6c84e0fab..6a5942b7d 100644 --- a/de/tags/recommendations/index.html +++ b/de/tags/recommendations/index.html @@ -1,223 +1,8 @@ - - - - - - - - recommendations - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +recommendations - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/recommendations/index.xml b/de/tags/recommendations/index.xml index 87b9536f0..c514d570a 100644 --- a/de/tags/recommendations/index.xml +++ b/de/tags/recommendations/index.xml @@ -1,4 +1,4 @@ -recommendations on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/recommendations/Recent content in recommendations on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Sat, 24 Apr 2021 10:20:47 +0100Heise, c't 10/2021 - mailcowhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Sat, 24 Apr 2021 10:20:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/heise_ct_10-2021/Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) +recommendations - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/recommendations/recommendations - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeSat, 24 Apr 2021 10:20:47 +0100Heise, c't 10/2021 - mailcowhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Sat, 24 Apr 2021 10:20:47 +0100Autorhttps://mailcow.email/de/posts/2021/heise_ct_10-2021/Heise hat einen Artikel รผber die Kuh verfasst, wir sind unendlich dankbar. :) Es war auch fรผr uns eine รœberraschung! https://www.heise.de/ratgeber/Mailcow-Mailserver-einrichten-und-Spam-arm-betreiben-6021810.html Ich wรผnsche euch ein schรถnes Wochenende. diff --git a/de/tags/recommendations/page/1/index.html b/de/tags/recommendations/page/1/index.html index 2559a6a20..0d4730845 100644 --- a/de/tags/recommendations/page/1/index.html +++ b/de/tags/recommendations/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/recommendations/ - - - - - - +https://mailcow.email/de/tags/recommendations/ + \ No newline at end of file diff --git a/de/tags/security/index.html b/de/tags/security/index.html index fc8b2583a..271b003df 100644 --- a/de/tags/security/index.html +++ b/de/tags/security/index.html @@ -1,223 +1,8 @@ - - - - - - - - security - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +security - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/security/index.xml b/de/tags/security/index.xml index b86349f53..5422e3954 100644 --- a/de/tags/security/index.xml +++ b/de/tags/security/index.xml @@ -1,4 +1,4 @@ -security on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/security/Recent content in security on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 19 May 2022 16:03:56 +0200โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, +security - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/security/security - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 19 May 2022 16:03:56 +0200โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. diff --git a/de/tags/security/page/1/index.html b/de/tags/security/page/1/index.html index 21907afab..2a63ea3d6 100644 --- a/de/tags/security/page/1/index.html +++ b/de/tags/security/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/security/ - - - - - - +https://mailcow.email/de/tags/security/ + \ No newline at end of file diff --git a/de/tags/sicherheit/index.html b/de/tags/sicherheit/index.html new file mode 100644 index 000000000..5e181fd2b --- /dev/null +++ b/de/tags/sicherheit/index.html @@ -0,0 +1,9 @@ +sicherheit - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/sicherheit/index.xml b/de/tags/sicherheit/index.xml index ca0b77d2c..aa3c7614d 100644 --- a/de/tags/sicherheit/index.xml +++ b/de/tags/sicherheit/index.xml @@ -1,5 +1,5 @@ -sicherheit on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/sicherheit/Recent content in sicherheit on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p> \ No newline at end of file +sicherheit - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/sicherheit/sicherheit - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/cve-2023-34108/Moohoo zusammen!

+

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

+

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
\ No newline at end of file diff --git a/de/tags/sicherheit/page/1/index.html b/de/tags/sicherheit/page/1/index.html new file mode 100644 index 000000000..f75360ecf --- /dev/null +++ b/de/tags/sicherheit/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/sicherheit/ + \ No newline at end of file diff --git a/de/tags/single-sign-on/index.html b/de/tags/single-sign-on/index.html new file mode 100644 index 000000000..45cd17e38 --- /dev/null +++ b/de/tags/single-sign-on/index.html @@ -0,0 +1,8 @@ +single sign on - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/single-sign-on/index.xml b/de/tags/single-sign-on/index.xml index e52f8b09c..781e5b5ba 100644 --- a/de/tags/single-sign-on/index.xml +++ b/de/tags/single-sign-on/index.xml @@ -1,4 +1,4 @@ -single sign on on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/single-sign-on/Recent content in single sign on on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +single sign on - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/single-sign-on/single sign on - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. diff --git a/de/tags/single-sign-on/page/1/index.html b/de/tags/single-sign-on/page/1/index.html new file mode 100644 index 000000000..e2e442db9 --- /dev/null +++ b/de/tags/single-sign-on/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/single-sign-on/ + \ No newline at end of file diff --git a/de/tags/social-media/index.html b/de/tags/social-media/index.html index c3cc1ef53..53787e7e1 100644 --- a/de/tags/social-media/index.html +++ b/de/tags/social-media/index.html @@ -1,223 +1,8 @@ - - - - - - - - social media - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +social media - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/social-media/index.xml b/de/tags/social-media/index.xml index ea1a62346..9f9eb71c0 100644 --- a/de/tags/social-media/index.xml +++ b/de/tags/social-media/index.xml @@ -1,4 +1,4 @@ -social media on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/social-media/Recent content in social media on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 24 Jan 2022 12:33:09 +0100Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-twitter/Moohoo allerseits! +social media - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/social-media/social media - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 24 Jan 2022 12:33:09 +0100Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!https://mailcow.email/de/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100Autorhttps://mailcow.email/de/posts/2022/mailcow-twitter/<div class="featured-image"><img loading="eager" src="/images/twitter_image.png" alt="Ist es ein ๐Ÿฆ? Ist es ein โœˆ๏ธ? Nein, es ist die mailcow auf Twitter!" title="Ankรผndigung fรผr die mailcow auf Twitter" referrerpolicy="no-referrer"/></div>Moohoo allerseits! Unsere liebe mailcow hat den Sprung in die sozialen Medien gewagt: Twitter! Dort wird sie euch mit neuen Release-Informationen oder kleinen Hinweisen auf mรถgliche neue Features sowie allgemeinen Informationen รผber das mailcow-Projekt versorgen. Natรผrlich kรถnnen Sie auch รผber Ihre Erfahrungen mit mailcow twittern. Benutzen Sie einfach das Twitter-Handle: @mailcow_email. diff --git a/de/tags/social-media/page/1/index.html b/de/tags/social-media/page/1/index.html index 352d3366f..988822fd1 100644 --- a/de/tags/social-media/page/1/index.html +++ b/de/tags/social-media/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/social-media/ - - - - - - +https://mailcow.email/de/tags/social-media/ + \ No newline at end of file diff --git a/de/tags/sogo/index.html b/de/tags/sogo/index.html new file mode 100644 index 000000000..6def9d111 --- /dev/null +++ b/de/tags/sogo/index.html @@ -0,0 +1,8 @@ +SOGo - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/sogo/index.xml b/de/tags/sogo/index.xml index 56b6ef2ca..c8009ea43 100644 --- a/de/tags/sogo/index.xml +++ b/de/tags/sogo/index.xml @@ -1,4 +1,4 @@ -SOGo on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/sogo/Recent content in SOGo on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +SOGo - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/sogo/SOGo - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 diff --git a/de/tags/sogo/page/1/index.html b/de/tags/sogo/page/1/index.html new file mode 100644 index 000000000..5e7188db1 --- /dev/null +++ b/de/tags/sogo/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/sogo/ + \ No newline at end of file diff --git a/de/tags/spamhaus/index.html b/de/tags/spamhaus/index.html new file mode 100644 index 000000000..dce183f76 --- /dev/null +++ b/de/tags/spamhaus/index.html @@ -0,0 +1,9 @@ +Spamhaus - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/spamhaus/index.xml b/de/tags/spamhaus/index.xml index 95b11beaf..3b37d1e13 100644 --- a/de/tags/spamhaus/index.xml +++ b/de/tags/spamhaus/index.xml @@ -1,7 +1,7 @@ -Spamhaus on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/spamhaus/Recent content in Spamhaus on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Spamhaus - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/spamhaus/Spamhaus - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeThu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github. \ No newline at end of file diff --git a/de/tags/spamhaus/page/1/index.html b/de/tags/spamhaus/page/1/index.html new file mode 100644 index 000000000..359beb061 --- /dev/null +++ b/de/tags/spamhaus/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/spamhaus/ + \ No newline at end of file diff --git a/de/tags/sso/index.html b/de/tags/sso/index.html new file mode 100644 index 000000000..ba80c2829 --- /dev/null +++ b/de/tags/sso/index.html @@ -0,0 +1,8 @@ +sso - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/sso/index.xml b/de/tags/sso/index.xml index 09fbbef67..a71552fba 100644 --- a/de/tags/sso/index.xml +++ b/de/tags/sso/index.xml @@ -1,4 +1,4 @@ -sso on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/sso/Recent content in sso on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! +sso - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/sso/sso - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/de/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Autorhttps://mailcow.email/de/posts/2023/mailcow-idp/Moohoo - Gute Nachricht, Freunde! Mit dem Nightly Branch ist es nun mรถglich, einen externen Identity Provider als weitere Authentifizierungsquelle zu nutzen. Dafรผr nutzt die mailcow das OIDC Protokoll, um ausschlieรŸlich Mailbox User zu authentifizieren. Um das zu ermรถglichen, haben wir ein paar ร„nderungen an der Art und Weise vorgenommen, wie die Authentifizierung funktioniert. diff --git a/de/tags/sso/page/1/index.html b/de/tags/sso/page/1/index.html new file mode 100644 index 000000000..064e3a12c --- /dev/null +++ b/de/tags/sso/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/sso/ + \ No newline at end of file diff --git a/de/tags/status/index.html b/de/tags/status/index.html new file mode 100644 index 000000000..7ea5e552e --- /dev/null +++ b/de/tags/status/index.html @@ -0,0 +1,8 @@ +status - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/status/index.xml b/de/tags/status/index.xml index 487a01210..e379c3bf1 100644 --- a/de/tags/status/index.xml +++ b/de/tags/status/index.xml @@ -1,4 +1,4 @@ -status on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/status/Recent content in status on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! +status - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/status/status - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ Wie schaut's aus? - ARM64 Integrationhttps://mailcow.email/de/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Autorhttps://mailcow.email/de/posts/whats-up-arm64/Moohoo zusammen! รœber einen Monat haben wir nichts mehr von uns hรถren lassen und heute einfach so ein Shadowdrop als Update. Da wir einige Sachen zu besprechen haben und auch in Zukunft direkt kommunizieren mรถchten, haben wir uns eine Rubrik ausgedacht, die wir Wie schaut&rsquo;s aus? nennen. Heute starten wir direkt mit dem ersten Thema, nรคmlich ARM64: diff --git a/de/tags/status/page/1/index.html b/de/tags/status/page/1/index.html new file mode 100644 index 000000000..fab137d37 --- /dev/null +++ b/de/tags/status/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/status/ + \ No newline at end of file diff --git a/de/tags/testing/index.html b/de/tags/testing/index.html index baa579f59..7fe149a79 100644 --- a/de/tags/testing/index.html +++ b/de/tags/testing/index.html @@ -1,223 +1,8 @@ - - - - - - - - testing - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +testing - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/testing/index.xml b/de/tags/testing/index.xml index 23b683edd..0262b374e 100644 --- a/de/tags/testing/index.xml +++ b/de/tags/testing/index.xml @@ -1,4 +1,4 @@ -testing on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/testing/Recent content in testing on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/nightly-tests-bs5/Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! +testing - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/testing/testing - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 02 Sep 2022 09:30:10 +0200Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/de/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/nightly-tests-bs5/<div class="featured-image"><img loading="eager" src="/images/nightly_thumb.png" alt="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" title="Unser Neuzugang: Die neue mailcow UI (MUH-I) in Bootstrap 5" referrerpolicy="no-referrer"/></div>Lange genug hat es gedauert, aber hier ist sie endlich: Die neue mailcow UI! Aktuell aber noch exklusiv in den Nightly Builds, weil wir die UI noch optimieren wollen. Und genau da kommt Ihr ins Spiel! Denn wir wollen die UI so userfreundlich wie nur mรถglich gestalten und damit nicht nur das Framework, sondern auch die Usability verbessern. Wenn es also eine Sache gab, die dich bisher immer tierisch gestรถrt hat, dann raus damit! \ No newline at end of file diff --git a/de/tags/testing/page/1/index.html b/de/tags/testing/page/1/index.html index 68b49d6aa..43dd7ca79 100644 --- a/de/tags/testing/page/1/index.html +++ b/de/tags/testing/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/testing/ - - - - - - +https://mailcow.email/de/tags/testing/ + \ No newline at end of file diff --git a/de/tags/tutorial/index.html b/de/tags/tutorial/index.html new file mode 100644 index 000000000..5f23f6871 --- /dev/null +++ b/de/tags/tutorial/index.html @@ -0,0 +1,8 @@ +Tutorial - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/tutorial/index.xml b/de/tags/tutorial/index.xml index 5bd14bb1e..f1e10513e 100644 --- a/de/tags/tutorial/index.xml +++ b/de/tags/tutorial/index.xml @@ -1 +1 @@ -Tutorial on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/tutorial/Recent content in Tutorial on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Tutorial - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/tutorial/Tutorial - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Autorhttps://mailcow.email/de/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux" referrerpolicy="no-referrer"/></div>Ein kleiner Guide fรผr die Installation von mailcow auf Alpine Linux \ No newline at end of file diff --git a/de/tags/tutorial/page/1/index.html b/de/tags/tutorial/page/1/index.html new file mode 100644 index 000000000..7ee74ae58 --- /dev/null +++ b/de/tags/tutorial/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/de/tags/tutorial/ + \ No newline at end of file diff --git a/de/tags/update/index.html b/de/tags/update/index.html index 98f83722d..018e4a80c 100644 --- a/de/tags/update/index.html +++ b/de/tags/update/index.html @@ -1,262 +1,26 @@ - - - - - - - - update - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
- -
0% -
-
- +update - Tag - mailcow: dockerized - Blog +

update 29

2023

2022

0%
\ No newline at end of file diff --git a/de/tags/update/index.xml b/de/tags/update/index.xml index 418ba3645..2566b0bcc 100644 --- a/de/tags/update/index.xml +++ b/de/tags/update/index.xml @@ -1,137 +1,70 @@ -update on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/update/Recent content in update on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-12/<h2 id="2023-12a-release-am-29122023">2023-12a (Release am 29.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-am-19122023">2023-12 (Release am 19.12.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. -Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen <code>WATCHDOG_NOTIFY_WEBHOOK</code> und <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in der <code>mailcow.conf</code> entsprechend konfiguriert werden.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-11/<h2 id="2023-11a-release-am-07122023">2023-11a (Release am 07.12.2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-am-21112023">2023-11 (Release am 21.11.2023)</h2> -<p><strong>Moo hoo zusammen!</strong></p> -<p>Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.</p> -<p>Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.</p>๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-10/<h2 id="2023-10a-verรถffentlicht-am-12-oktober-2023">2023-10a (Verรถffentlicht am 12. Oktober 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!</li> -<li>Wir haben die Neustart-Aktion aus dem Abschnitt <code>depends_on</code> (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-verรถffentlicht-am-12-oktober-2023">2023-10 (Verรถffentlicht am 12. Oktober 2023)</h2> -<p><strong><del>Moo</del>Boo hoo zusammen!</strong></p> -<p>Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.</p> -<p>Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat &ldquo;erworben&rdquo; werden und ist nicht in diesem Update enthalten), was den Stack betrifft.</p> -<p>Dieses Mal ziemlich umfangreich!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-09/2023-09 Moohoo zusammen! +update - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/update/update - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/de/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-12/ + 2023-12a (Release am 29.12.2023)

+ Changelog

+
+

+ 2023-12 (Release am 19.12.2023)

Moo hoo zusammen!

+

Wir haben vor den Feiertagen noch einige neue Netfilter Features fรผr euch. +Darรผber hinaus kann der Watchdog nun Benachrichtigungen รผber Webhooks versenden. Dazu mรผssen einfach die Variablen WATCHDOG_NOTIFY_WEBHOOK und WATCHDOG_NOTIFY_WEBHOOK_BODY in der mailcow.conf entsprechend konfiguriert werden.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update A | Ratelimit Fixes und Domain Wide Footer Fixeshttps://mailcow.email/de/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-11/ + 2023-11a (Release am 07.12.2023)

+ Changelog

+
+

+ 2023-11 (Release am 21.11.2023)

Moo hoo zusammen!

+

Die Weihnachtszeit fรคngt langsam an und schon stehen wir wieder mit einem Update vor der Tรผr.

+

Vor ab gilt hier: Idealerweise updaten (wenn Quarantรคne in Benutzung), da eine schwerwiegende Sicherheitslรผcke gepatcht ist.

]]>
๐ŸŽƒ๐Ÿ„ Mooktober 2023 Update | Domainwide Footer, cURL Fixes und mehr - Revision Ahttps://mailcow.email/de/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-10/ + 2023-10a (Verรถffentlicht am 12. Oktober 2023)

+ Changelog

    +
  • Wir haben das falsch verwendete clamav-Tag in der docker-compose.yml korrigiert. Jetzt verwendet ihr wirklich ClamAV 1.0.3 LTS!
  • +
  • Wir haben die Neustart-Aktion aus dem Abschnitt depends_on (verbunden mit der unbound Healthcheck-Logik) aus der docker-compose.yml entfernt. ร„ltere Versionen von Docker Compose v2 waren nicht in der Lage, den Stack mit diesen Einstellungen zu starten. (Bitte haltet eure Systeme auf dem neuesten Stand!!!!)
  • +
+
+

+ 2023-10 (Verรถffentlicht am 12. Oktober 2023)

MooBoo hoo zusammen!

+

Es ist wieder Gruselsaison und wir hoffen, dass ihr alle bereit seid, die Halloween-Saison zu feiern.

+

Aber mailcow liefert euch auch einiges an sรผรŸes (saures kann seperat “erworben” werden und ist nicht in diesem Update enthalten), was den Stack betrifft.

+

Dieses Mal ziemlich umfangreich!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/de/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-09/2023-09Moohoo zusammen! Wir sind zurรผck mit einem klitzekleinen mailcow Update, welches die Probleme mit macOS 14 (Sonoma) und SOGo lรถst. Mehr gibt es diesen Monat auch tatsรคchlich nicht. Weiterer Content kommt dann anfang Oktober mit dem Update 2023-10. Changelog [SOGo] Update to 5.9.0 Der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023) Moohoo zusammen! +Wie immer ein riesiges Dankeschรถn an unsere groรŸartige mailcow-Community fรผr eure andauernde Unterstรผtzung und wertvollen Rรผckmeldungen.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/de/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-08/2023-08 (Release vom 03.08.2023)Moohoo zusammen! Ich hoffe, dass ihr es noch nicht satt habt, Updates durchzufรผhren. Das 2023-08 Release ist da und enthรคlt einige Hotfixes fรผr das neue Spamhaus DQS-Feature. Wenn ihr Spamhaus DQS nicht verwendet und bisher keine Probleme mit dem 2023-07 Update hattet, mรผsst ihr dieses Update nicht installieren. Da dieses Release nur Hotfixes enthรคlt, gibt es nicht viel darรผber zu sagen, auรŸer einer Sache. -Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023) Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! +Wenn ihr Postscreen DNSBL รผberhaupt nicht nutzen mรถchtet, kรถnnt ihr den Inhalt der Datei data/conf/postfix/dns_blocklists.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/de/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-07/2023-07a (Release vom 31.07.2023)Es gibt einige Korrekturen fรผr das 2023-07 Update. Die meisten Korrekturen stehen dabei in Verbindung mit den letzten ร„nderungen bzgl. der DNS Blocklisten des Postscreens im Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) Wie immer gilt, der volle Changelog auch mit den einzelnen Commits ist fรผr Interessenten jederzeit auf GitHub abrufbar: https://github.๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/de/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05/Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal (wieder einmal) hauptsรคchlich, um die allgemeine Stabilitรคt und Benutzerfreundlichkeit des Stacks zu verbessern, aber auch, um die IMAP-Performance zu verbessern. Los geht&rsquo;s: -Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-04/Update 2023-04a Wir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. +Changelog Fรผr Dovecot wurde die Option maildir_very_dirty_syncs standardmรครŸig aktiviert. Dies ermรถglicht eine deutlich schnellere IMAP-Abfrage als bisher. In den mailcow Docs haben wir dazu eine neue Seite erstellt. Diese beschreibt die genauen Grรผnde fรผr den Performance-Boost sowie Fรคlle, in denen das Feature abgeschaltet werden sollte: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision Ahttps://mailcow.email/de/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-04/<div class="featured-image"><img loading="eager" src="/images/2023/April/netfilter_incremental_de.png" alt="๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A" title="๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 und mehr | Revision A" referrerpolicy="no-referrer"/></div>Update 2023-04aWir haben gerade einen Hotfix fรผr das 2023-04 Update verรถffentlicht. Es lรถst das Problem mit Nextcloud, welches sich nicht auf Version 26 Updaten lieรŸ, da Version 25 kein PHP 8.2 kann, 26 allerdings schon. -Update 2023-04 Moohoo zusammen! +Update 2023-04Moohoo zusammen! Es geht weiter mit unseren Updates fรผr mailcow, diesmal hauptsรคchlich zum Beitrag der generellen Stabilitรคt und Usability des Stacks. Legen wir los: -SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-01/Einleitung Moohoo zusammen! +SOGo wurde auf Version 5.8.2 aktualisiert. Einige dรผrften einen Fehler von macOS Ventura und CalDav mitbekommen haben, dieser fรผhrte dazu, dass die Kalendar App von macOS keine SOGo Kalender entdecken konnte und darauf hin einfach probierte neue Kalender mit dem Namen am Remote Server anzulegen (was natรผrlich fehlschlug, da der Kalender ja bereits existierte).๐Ÿค–๐Ÿ„ Janmuhar Update 2023 - Fixes, Fixes und ein paar neue Funktionenhttps://mailcow.email/de/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-01/EinleitungMoohoo zusammen! Das mailcow-Team ist zurรผck mit einigen aufregenden Neuigkeiten รผber unser geliebtes mailcow-Projekt! Aber dieses Mal machen wir etwas anders als sonst (zumindest hier mit dem Blogpost-Eintrag) Wie ihr vielleicht in den letzten Wochen bemerkt habt, hat eine neue KI die Runde im Internet gemacht: ChatGPT. -Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:๐ŸŽ„๐Ÿ„ Muhzember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/de/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-12/Vorwort Moohoo zusammen! -Um das chaotische Jahr 2022 gebรผhrend zu beenden ist es endlich soweit. Das lang erwartete Bootstrap 5 Update ist endlich da! -Wie bereits in einigen Posts angesprochen markiert dieses Update nur den Wendepunkt des mailcow UI, denn die neue Basis (Bootstrap 5) wird uns in Zukunft viele neue Mรถglichkeiten und Spielraum fรผr neue Features bieten. -Da durch das Bootstrap Update die bishere UI komplett erneuert bzw. auf die neue Version Portiert wurde kann es zu Abweichungen im Vergleich zur alten UI kommen.๐Ÿšš๐Ÿ„ Muhvember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/de/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-11a/<p><strong>Moohoo zusammen!</strong></p> -<p>Aus gegebenem Anlass (dem <del>2022-11a</del> 2022-11b Update) gibt es hier einmal die Changelogs bzw. ร„nderungen des besagten <del>2022-11a</del> 2022-11b Updates, sowie die ร„nderungen der Major Version (2022-11).</p> -<blockquote> -<p><em>Wir haben bereits 2022-11b released!</em></p> -</blockquote>โš ๏ธ 2022-10a | Kritisches Update zur Stabilitรคt โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10a/<p><strong>Moohoo zusammen!</strong></p> -<p>Gestern (am 25.10.2022) haben wir das 2022-10 Update released. Dieses enthรคlt bei einigen (nicht vielen) einen Kritischen Fehler mit dem Spamfiltering, welcher dafรผr sorgt, dass keine E-Mails mehr raus bzw. reinkommen kรถnnen.</p> -<p>Wir bitten euch deshalb dringenst dazu eure mailcow Installation welche mit dem 2022-10 Update versorgt ist erneut zu updaten!!</p>๐ŸŒฐ๐Ÿ„ Muhktober Update 2022 - รœbersetzungs รœberarbeitung + Multithreaded Backup/Restore Skript Updatehttps://mailcow.email/de/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-10/<p><strong>Moohoo zusammen!</strong></p> -<p>Wir bewegen uns in groรŸen Schritten Richtung Jahresende und obwohl das Bootstrap 5 UI Update noch etwas lรคnger auf sich warten lรคsst (Danke fรผr eure Geduld รผbrigens!) gibt es auch heute wieder ein kleineres aber feines mailcow Update fรผr euch.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los (Revision B) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08b/Moohoo zusammen! -Ein kleines, aber wichtiges Update fรผr bzw. gegen die aktuellen SOGo Sieve/Mail-Sendungs-Probleme ist hier! -Wir haben unzรคhlige Meldungen dazu erhalten und mit dem Update einen Fix implementiert, welcher das Problem hoffentlich fรผr alle lรถst. -Fรผr die, die es interessiert: Es hรคngt vermutlich mit der in SOGo 5.7.1 eingefรผhrten IPv6-Unterstรผtzung und der internen IPv6-Konnektivitรคt der Docker Container zusammen, welche Konnektivitรคts Probleme mit SOGo ausgelรถst haben. -Ja&hellip; wie dem auch sei, dieser Fehler sollte nun behoben worden sein.๐ŸŒŠ๐Ÿ„ Aumuuhst Update 2022 - Die Nightly Builds sind los | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-08/Moohoo zusammen! -Ihr seit zu spรคt! Das August Update kommt aber im September11einself!!!! -Ja&hellip; was soll ich darauf sagen? Das ist richtig. Aber immerhin sind wir trotzdem wieder zurรผck, oder? -Diesmal รคndert sich auch sogar einiges bezรผglich den Updates an sich! Bleibt also gespannt. -Fangen wir erst mal recht sachte an: -Stabile ร„nderungen (stable Branch) OAuth Clients und App-Passwรถrter werden nun wieder akzeptiert bei Cal/CardDav Verbindungen. #4685 von @FreddleSpl0it SOGo wurde auf 5.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07a/Moohoo allerseits! -Wir haben ein spontanes Update verรถffentlicht, das ein wenig die API besser dokumentiert und eine neue Version von ClamAV (0.105.1) mitbringt. -Hinweis: Das Update auf ClamAV 0.105.1 wird von ClamAV als Sicherheitsupdate empfohlen (Siehe Artikel zum ClamAV Update) -Noch einmal zusammen gefasst, was sich รคndert: -Das Schemata der Domain Sektion der API wurde angepasst und verbessert. Automatische GitHub Aktionen zum Bau der neusten Container Versionen wurde eingerichtet (aktuell nicht produktiv genutzt) Die Maximale Key Lรคnge der Web UI wurde auf 1023 Bits erhรถht (vorher 255 Bits) ClamAV wurde auf Version 0.โ˜€๏ธ๐Ÿ„ Mooli Update 2022 - 2FA Flow Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-07/Moohoo zusammen! -Es ist wieder einmal Update Zeit, etwas spรคter als bisher (darauf gehe ich spรคter noch etwas ein) aber trotzdem vollgepackt mit einigen ร„nderungen: -2FA ร„nderungen Die 2FA ist nun auch fรผr Mailbox User im UI mรถglich (bisher war dies den Administratoren vorbehalten). Ebenfalls ist es jetzt mรถglich mehrere 2FA Mรถglichkeiten fรผr ein Account zu aktivieren. Hinweis: Es wird nur eine verwendet, die vom User ausgewรคhlt wird. Es gibt ein schรถnes neues Menรผ bei der Auswahl der verfรผgbaren 2FA Optionen.๐ŸŒ•๐Ÿ„ Mooni Update 2022 - Das Docker Compose v2 Update (Teil I) | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-06/Moohoo zusammen! -Heute haben wir fรผr euch wieder ein dickes fettes Update Paket zusammengestellt, welches neben generellen Container Updates eine groรŸe ร„nderung mit sich bringt: -Docker Compose v2 Unterstรผtzung!!! -Doch fangen wir erstmal mit dem kleinkram an: -Kleinere ร„nderungen ClamAV nutzt nun Version 0.105 (die neuste zum Release Zeitpunkt). Postfix wurde auf Version 3.5.6 geupdated. netfilter, acme, dockerapi, olefy, watchdog, unbound und phpfpm wurden auf Alpine Linux 3.16 geupdated. GrรถรŸere ร„nderungen Wie versprochen kommt mit dem 2022-06 Update ein kleines aber feines UI Update, welches die generelle UI Performance verbessert.โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, -wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). -Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. -Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d๐ŸŒŒ๐Ÿฎ Mooai 2022 Update - Das Tag Update | Revision C - ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-05/Thu, 12 May 2022 09:23:00 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05/2022-05c Wir sind es wieder (nochmal)! -Diesmal haben wir das 2022-05c Update verรถffentlicht, welches ein sehr kleines Update ist. -Es hat die API wieder ein wenig verรคndert. Diesmal aus Sicherheitsgrรผnden. -Geht rรผber zu GitHub, um das vollstรคndige Changelog zu sehen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Bleibt gesund -Niklas -2022-05b Wir sind es wieder! -Heute haben wir ein kleines API Update, das sich hauptsรคchlich auf die UI konzentriert. -Wie einige von euch berichtet haben, funktionieren die API-Aufrufe fรผr Domains/Mailboxen nicht mehr, wenn kein Tag gesetzt ist.๐Ÿ„๐Ÿฐ Moopril 2022 - ClamAV, Rspamd, SOGo Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-04/Moohoo zusammen! -Das April-Update ist da, mit einer Reihe von Neuerungen fรผr Ihren reibungslosen E-Mail-Flow. -Diesen Monat haben wir 3 Komponenten-Updates (ClamAV, SOGo und Rspamd) und ein paar kleinere Korrekturen, die wie folgt sind: -Wichtige ร„nderungen Wir haben SOGo im mailcow Stack auf Version 5.5.1 geupdated. Neben den SOGo Bugfixes (Hier zu finden) wurde die mailcow Datenbank Struktur etwas angepast um fรผr das Update 5.5.2 bereit zu sein. Hinweis: Das 5.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:32:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03a/Moohoo allerseits! -Wir haben ein spontanes Bugfix-Update verรถffentlicht, das ein paar kleinere Fehler und grafische Probleme behebt. -Diesmal sind es nur kleine ร„nderungen, aber wie das Sprichwort sagt: &ldquo;Kleinvieh macht auch Mist&rdquo;. -Wir haben die FuรŸzeile der Version wieder an die richtige Stelle verschoben. Getreu dem Motto: Bleib, wo du bist! Wir haben die Handhabung des Release-Tags mit der Versions-FuรŸzeile verbessert. Das Sicherungs- und Wiederherstellungsskript verwendet nun Debian Bullseye anstelle von Buster.๐Ÿ„๐Ÿ’ฎ Mรคrz Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-03/Moohoo zusammen, der Mรคrz ist da und am Ende des Monats ist dann auch wieder Frรผhling. Sicherlich waren die letzten Tage fรผr euch genauso beรคngstigend wie fรผr uns. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, wir stehen hinter euch! -Kommen wir nun zum Mรคrz Update unserer mailcow. Spoiler vorab, so voll und umfangreich ist das Mรคrz Update nicht aber es sind einige nette Updates im Bezug auf die Langzeit enthalten (ich schaue dich an ClamAV und Olefy!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01a/Moohoo an alle. -Heute verรถffentlichen wir den ersten Hotfix fรผr das Update 2022-01. -Das hat sich geรคndert: -Ergรคnzungen: Wir haben einen Versions-Tag hinzugefรผgt, der sich am unteren Rand der mailcow UI befindet (Er zeigt nun den aktuellen Release-Tag an, auf dem man sich befindet!) Ist das nicht verrรผckt? (https://github.com/mailcow/mailcow-dockerized/pull/4437) ร„nderungen: Die passwortlose SOGo-Authentifizierung unterstรผtzt nun Kalendereinladungen und Kalender/Kontakt-Abonnements (https://github.com/mailcow/mailcow-dockerized/pull/4439) Der Autoreply-Zeitplan fรผr SOGo wurde von 24h auf 5m geรคndert (https://github.com/mailcow/mailcow-dockerized/pull/4441) Korrekturen: Wir haben einen Fehler bei der passwortlosen FIDO2-Authentifizierung behoben (https://github.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! -Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. -Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. -Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z.๐Ÿ„ Moovember 2021 - ร„nderungenhttps://mailcow.email/de/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/moovember2021/Moohoo allerseits! -Niklas hier, um euch die neuesten Nachrichten rund um unsere liebe mailcow zu prรคsentieren :) -Dann wollen wir mal loslegen, ja? -Wichtige ร„nderungen ab November 2021 fรผr den mailcow Stack: SOGo Aktualisierung auf 5.3.0 Dovecot Aktualisierung auf 2.3.17 ClamAV Aktualisierung auf 0.103.4 [Web] Automatisch generierte App-Passwรถrter fรผr Apple-Konfigurationsprofile Bitte denken Sie daran, Ihren Mailcow-Stack zu aktualisieren, um eine stabile Umgebung zu gewรคhrleisten. -Alle ร„nderungen ab November 2021 fรผr den mailcow-Stack (neueste bis รคlteste): 30.๐Ÿ„ Mooctober 2021 - Die Feldsam Editionhttps://mailcow.email/de/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2021/mooctober2021/Ein groรŸes Dankeschรถn an Kristian Feldsam fรผr die Integration von Twig. Wir sind nรคher an Bootstrap 5 als je zuvor. Das ist eine groรŸe ร„nderung, die wir hoffentlich bald abschlieรŸen kรถnnen. -AuรŸerdem stellen wir unsere neue cold standby Lรถsung vor. -Mit diesem neuen Skript seid ihr in der Lage, eine voll funktionsfรคhige, 1:1, konsistente Kopie eurer laufenden mailcow ohne Ausfallzeit zu erstellen. -Disaster Recovery einer Mailcow ist so einfach wie das Wechseln der IPs und das Ausfรผhren von &ldquo;up -d&rdquo;.
\ No newline at end of file +Da haben wir uns gedacht: &ldquo;Hey, warum lassen wir den Bot nicht unseren Changelog in Textform schreiben?&rdquo; und wir begannen, das Skript zu schreiben, woraus ChatGPT einen Changelog schreiben sollte, und das war:
\ No newline at end of file diff --git a/de/tags/update/page/1/index.html b/de/tags/update/page/1/index.html index 599a1f386..34f0adaa6 100644 --- a/de/tags/update/page/1/index.html +++ b/de/tags/update/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/update/ - - - - - - +https://mailcow.email/de/tags/update/ + \ No newline at end of file diff --git a/de/tags/update/page/2/index.html b/de/tags/update/page/2/index.html new file mode 100644 index 000000000..12c7f9c6a --- /dev/null +++ b/de/tags/update/page/2/index.html @@ -0,0 +1,16 @@ +update - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/wichtig/index.html b/de/tags/wichtig/index.html index bb1d01c53..5e1e2d881 100644 --- a/de/tags/wichtig/index.html +++ b/de/tags/wichtig/index.html @@ -1,224 +1,12 @@ - - - - - - - - wichtig - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +wichtig - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/de/tags/wichtig/index.xml b/de/tags/wichtig/index.xml index 817c0a806..dbb0d16f0 100644 --- a/de/tags/wichtig/index.xml +++ b/de/tags/wichtig/index.xml @@ -1,16 +1,16 @@ -wichtig on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/wichtig/Recent content in wichtig on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/cve-2023-34108/<p><strong>Moohoo zusammen!</strong></p> -<p>Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.</p> -<p>Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2023/release-2023-05a/<p><strong>Moohoo zusammen!</strong></p> -<p>Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.</p> -<p>Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-09/<h3 id="2022-09a-release-30092022">2022-09a (Release: 30.09.2022)</h3> -<p>ร„nderungen:</p> -<ul> -<li>Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete</strong></li> -</ul>โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, +wichtig - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/wichtig/wichtig - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation von internen Dovecot-Variablen in mailcow รผber prรคparierte Passwรถrter โš ๏ธhttps://mailcow.email/de/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/cve-2023-34108/Moohoo zusammen!

+

Wie bereits im letzten Blog Eintrag (vom 30.05.2023) angekรผndigt, folgt hier die detaillierte CVE zum Sicherheitspatch 2023-05a.

+

Solltet ihr noch nicht upgedatet haben, solltet ihr das damit schleunigst tun, da nun ein Exploit รถffentlich im Internet steht, welche authentifizierte Benutzer auf eurem E-Mail Server ausnutzen kรถnnten.

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - Revision A (โš ๏ธ Sicherheitsupdate KRITISCH โš ๏ธ)https://mailcow.email/de/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Autorhttps://mailcow.email/de/posts/2023/release-2023-05a/Moohoo zusammen!

+

Ein sehr dringendes Sicherheitsupdate fรผr mailcow (2023-05a) wurde soeben verรถffentlicht.

+

Wir bitten dringend darum, dieses Update einzuspielen, da diese Sicherheitslรผcke bereits seit lรคngerer Zeit (vor 2020) im Code schlummert.

]]>
๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantรคne & Swagger UI Fix Update - Revision A | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-09/Fri, 30 Sep 2022 10:30:10 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-09/ + 2022-09a (Release: 30.09.2022)

ร„nderungen:

+
    +
  • Das Twig Template System auf welches mailcow baut wurde auf Version 3.4.3 aktualisiert und schlieรŸt damit CVE-2022-39261.
    +Achtung: Diese CVE ist nicht kritisch fรผr alle mailcow Users sondern dient lediglich der aktualitรคt der Pakete
  • +
]]>
โš ๏ธ 2022-05d Wichtiges Sicherheitsupdate! โš ๏ธhttps://mailcow.email/de/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Autorhttps://mailcow.email/de/posts/2022/release-2022-05d/Hallo zusammen, wir haben gestern einen wichtigen Hinweis bezรผglich einer kritischen Sicherheitslรผcke in der mailcow zugespielt bekommen (Danke nochmal dafรผr). Diese betrifft IMAPSYNC und verschafft zugriff auf Administrationsrechte im mailcow UI sowie der API. Es wird dringend empfohlen das Update so schnell wie mรถglich zu installieren um so eine Ausnutzung der Lรผcke auszuschlieรŸen. -Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. +Schaut euch bitte auch wieder die GitHub Release Page an um genauere ร„nderungen sehen zu kรถnnen: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05dโš ๏ธ Wichtige Informationen รผber das Update 2022-04 โš ๏ธhttps://mailcow.email/de/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100Autorhttps://mailcow.email/de/posts/2022/2022-04-info/Gestern haben wir das 2022-04 Update (Moopril) verรถffentlicht, welches eine ร„nderung in der NGINX Konfiguration enthielt. Im Verlauf des selbigen Tages erhielten wir vermehrt Meldungen darรผber, dass SOGo seit dem Update nicht mehr funktionieren wรผrde, genauer gesagt der Login. So wurde am gestrigen Abend gegen 23:00 Uhr (Deutscher Sommerzeit) von uns ein Update verรถffentlicht, welcher dieses Problem in den meisten Fรคllen lรถst. Bitte Updated eure mailcow so schnell es geht via dem update.
\ No newline at end of file diff --git a/de/tags/wichtig/page/1/index.html b/de/tags/wichtig/page/1/index.html index f82d12487..c1235b4b0 100644 --- a/de/tags/wichtig/page/1/index.html +++ b/de/tags/wichtig/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/wichtig/ - - - - - - +https://mailcow.email/de/tags/wichtig/ + \ No newline at end of file diff --git "a/de/tags/\303\244nderungen/index.html" "b/de/tags/\303\244nderungen/index.html" index b66c14c48..bba8756c7 100644 --- "a/de/tags/\303\244nderungen/index.html" +++ "b/de/tags/\303\244nderungen/index.html" @@ -1,221 +1,8 @@ - - - - - - - - รคnderungen - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +รคnderungen - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git "a/de/tags/\303\244nderungen/index.xml" "b/de/tags/\303\244nderungen/index.xml" index e3e663609..f3b8e8e7f 100644 --- "a/de/tags/\303\244nderungen/index.xml" +++ "b/de/tags/\303\244nderungen/index.xml" @@ -1,4 +1,4 @@ -รคnderungen on mailcow: dockerized - Bloghttps://mailcow.email/de/tags/%C3%A4nderungen/Recent content in รคnderungen on mailcow: dockerized - BlogHugo -- gohugo.iodeinfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 21 Jan 2022 14:55:47 +0100๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! +รคnderungen - Tag - mailcow: dockerized - Bloghttps://mailcow.email/de/tags/%C3%A4nderungen/รคnderungen - Tag | mailcow: dockerized - BlogHugo -- gohugo.iodeFri, 21 Jan 2022 14:55:47 +0100๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Das U2F --> WebAuthn (2FA) Update | ร„nderungenhttps://mailcow.email/de/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100Autorhttps://mailcow.email/de/posts/2022/release-2022-01/Moohoo an alle, Niklas hier mit dem neuesten Changelog fรผr unsere geliebte mailcow E-Mail-Software! Diesen Monat gibt es einen groรŸen Brocken an ร„nderungen, einige davon sogar sehr wichtig in Bezug auf 2FA, aber dazu spรคter mehr. Zuallererst mรถchten wir uns bei euch fรผr eure Treue und Zusammenarbeit bedanken, denn ohne euch wรคre das mailcow-Projekt nicht da, wo es jetzt ist โค๏ธ. Wir mรถchten uns auch dafรผr entschuldigen, dass wir erst jetzt ein neues Update verรถffentlichen (Master-Branch-Release), denn einige der in diesem Update enthaltenen Fehlerbehebungen (SOGo z. \ No newline at end of file diff --git "a/de/tags/\303\244nderungen/page/1/index.html" "b/de/tags/\303\244nderungen/page/1/index.html" index eb719cd1c..e6107d130 100644 --- "a/de/tags/\303\244nderungen/page/1/index.html" +++ "b/de/tags/\303\244nderungen/page/1/index.html" @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/de/tags/%C3%A4nderungen/ - - - - - - +https://mailcow.email/de/tags/%C3%A4nderungen/ + \ No newline at end of file diff --git a/en/sitemap.xml b/en/sitemap.xml index 475013c72..0c82e41e8 100644 --- a/en/sitemap.xml +++ b/en/sitemap.xml @@ -1 +1 @@ -https://mailcow.email/tags/2023/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/changelog/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/update/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/updates/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-12/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-11/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/arm64-delay/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/arm64/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/news/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-10/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-09/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/hotfix/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/sogo/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/mailcow-idp/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/authentik/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/identity-provider/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/keycloak/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/ldap/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/nightly/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/oidc/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/single-sign-on/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/sso/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/arm64-open-beta/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-08/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/dnsbl/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/dqs/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/spamhaus/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-07/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/cors/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/faq/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/news/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/status/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/whats-up/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/whats-up-arm64/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/info/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/information/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/status/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/spamhaus-dnsblocklist/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/cve-2023-34108/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/cve/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/cve/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/hotfix/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/important/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/security/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/security-advisories/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-05a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-05/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/performance/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/arm64-announcement/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-04/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/ldap-announcement/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/challenge/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/community/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/letters-mystery/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2023/release-2023-01/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-12/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/2022/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-11a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/bugfix/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/mailcow-feat-alpine/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/alpine/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/guides/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/installation/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/tutorial/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-10a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-10/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-09/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/security/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/our-new-demos/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-08b/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/beta/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/feedback/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/nightly/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/nightly-tests-bs5/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/testing/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-08/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-07a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/welcome-new-blog/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-07/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-06/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-05d/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-05/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/2022-04-info/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-04/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-03a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-03/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/policy/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/docs-update-2.0/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/docs/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/documentation/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-01a/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/mailcow-twitter/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/social-media/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/categories/social-media/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2022/release-2022-01/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2021/log4j-dec2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/log4j/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2021/moovember2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2021/mooctober2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2021/moore_october21/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2021/xubium_recommend/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/recommendations/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/posts/2021/rspamd_memleak_sep2021/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/tags/memoryleak/2024-01-16T11:05:40+01:00weekly0.5https://mailcow.email/imprint/2024-01-16T11:05:40+01:00weekly0.5 \ No newline at end of file +https://mailcow.email/tags/2023/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/changelog/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/update/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/updates/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-12/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-11/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/arm64-delay/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/arm64/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/news/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-10/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-09/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/hotfix/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/sogo/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/mailcow-idp/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/authentik/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/identity-provider/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/keycloak/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/ldap/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/nightly/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/oidc/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/single-sign-on/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/sso/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/arm64-open-beta/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-08/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/dnsbl/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/dqs/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/spamhaus/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-07/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/cors/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/faq/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/news/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/status/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/whats-up/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/whats-up-arm64/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/info/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/information/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/status/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/spamhaus-dnsblocklist/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/cve-2023-34108/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/cve/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/cve/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/hotfix/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/important/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/security/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/security-advisories/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-05a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-05/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/performance/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/arm64-announcement/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-04/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/ldap-announcement/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/challenge/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/community/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/letters-mystery/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2023/release-2023-01/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-12/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/2022/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-11a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/bugfix/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/mailcow-feat-alpine/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/alpine/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/guides/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/installation/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/tutorial/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-10a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-10/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-09/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/security/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/our-new-demos/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-08b/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/beta/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/feedback/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/nightly/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/nightly-tests-bs5/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/testing/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-08/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-07a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/welcome-new-blog/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-07/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-06/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-05d/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-05/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/2022-04-info/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-04/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-03a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-03/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/policy/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/docs-update-2.0/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/docs/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/documentation/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-01a/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/mailcow-twitter/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/social-media/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/categories/social-media/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2022/release-2022-01/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2021/log4j-dec2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/log4j/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2021/moovember2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2021/mooctober2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2021/moore_october21/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2021/xubium_recommend/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/recommendations/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/posts/2021/rspamd_memleak_sep2021/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/tags/memoryleak/2024-01-16T11:16:31+01:00weekly1https://mailcow.email/imprint/2024-01-16T11:16:31+01:00weekly1 \ No newline at end of file diff --git a/images/fixit.min.svg b/images/fixit.min.svg new file mode 100644 index 000000000..1146da79c --- /dev/null +++ b/images/fixit.min.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/hugo.min.svg b/images/hugo.min.svg new file mode 100644 index 000000000..03c3e60b5 --- /dev/null +++ b/images/hugo.min.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/images/loading.min.svg b/images/loading.min.svg new file mode 100644 index 000000000..efb119408 --- /dev/null +++ b/images/loading.min.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/imprint/index.html b/imprint/index.html index 182a6c9f9..e5d0a6e4b 100644 --- a/imprint/index.html +++ b/imprint/index.html @@ -1,298 +1,47 @@ - - - - - - - - Imprint - mailcow: dockerized - Blog - -Imprint - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
-

Imprint

Information according to ยง 5 German Telemedia Act:

-

The Infrastructure Company GmbH
-Parkstrasse 42
-47877 Willich, Germany

-

Phone: +49 2154-9304 600
-info@tinc.gmbh
-www.tinc.gmbh
-CEO: Martin Vogt
-Register entry: Entry in the commercial register
-Register court: Local court Krefeld (Germany)
-Registration number: HRB 15904
-VAT ID No.: DE308854956

-
0% -
-
- +VAT ID No.: DE308854956">

Imprint

Information according to ยง 5 German Telemedia Act:

The Infrastructure Company GmbH
Parkstrasse 42
47877 Willich, Germany

Phone: +49 2154-9304 600
info@tinc.gmbh
www.tinc.gmbh
CEO: Martin Vogt
Register entry: Entry in the commercial register
Register court: Local court Krefeld (Germany)
Registration number: HRB 15904
VAT ID No.: DE308854956

0%
\ No newline at end of file diff --git a/index.html b/index.html index f1eb6c8b1..4dcb81798 100644 --- a/index.html +++ b/index.html @@ -1,383 +1,42 @@ - - - - - - - - - - - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
Moohoo

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

- -

- ๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes -

Moohoo everyone! -A small but important update for or against the current SOGo Sieve/mail sending problems is here! -We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. -For those who are interested: It’s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah… however, this bug should be fixed now.
-
-

- Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5 -

It took long enough, but here it is finally: The new mailcow UI! -Currently it’s still exclusively in the nightly builds because we want to optimize the UI. -And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know!
-
-

- ๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changes -

Moohoo everyone! -Yeah, a August Update in September… kinda sus if you ask me! -This time there are even some changes regarding the Update sources! So stay curious. -Let’s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.
-
-

- โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changes -

Moohoo everyone! -We’ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). -Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) -Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).
-
-

- Welcome to the new mailcow blog! -

Happy new day to you! -Welcome to the new blog page. -Some of you may have already stumbled across the site on Twitter or on Telegram in the last update announcement, but now here again officially! -Built with the fast and beautiful Static Site Generator Hugo and the LoveIt Theme, this site can keep up with WordPress and even outperform it. -What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.
-
-

- โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changelog -

Moohoo everyone! -It’s update time once again, a little later than before (I’ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.
-
-

- ๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changes -

Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let’s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.
-
-

- โš ๏ธ 2022-05d Important Security Update! โš ๏ธ -

Hello all, -Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. -It is strongly recommended to install the update as soon as possible to prevent exploitation. -As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!
-
-

- ๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changelog -

2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.
-
-
  • - - 1 - -
  • - - 2 - -
  • - - 3 - -
0% -
-
- +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpoint

2023-12a (Release 29th December 2023)

Changelog


2023-12 (Release 19th December 2023)

Moo hoo everyone!

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixes

2023-11a (Release 07th December 2023)

Changelog


2023-11 (Release 21st November 2023)

Moo hoo everyone!

The holiday season is slowly approaching, and here we are with another update at our doorstep.

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision A

2023-10a (Released 12th October 2023)

Changelog

  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)

2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

This time it’s quite huge!

๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)

2023-09Moohoo everyone! +We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. +That’s all there is this month. More content will come in early October with update 2023-10. +Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.

๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authentication

Moohoo - Good News, everyone! +With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. +mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. +To enable this, we have made some changes to the way authentication works. +Let’s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.

๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixes

2023-08 (Release 3rd August 2023)Moohoo everyone! +I hope you are not tired yet of performing updates. +The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. +If you are not using Spamhaus DQS and haven’t experienced any issues with the 2023-07 update, you don’t have to install this update. +As this release only contains hotfixes, there is not much to say about it, except for one thing.

๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvements

2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +Changelog dns_blocklists.cf isn’t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.

๐Ÿค”๐Ÿฎ What's up? - ARM64 Integration

Moohoo everyone! +It has been more than a month since you heard from us and today we have a shadowdrop as an update. +Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What’s up?. +Today we start with the first topic, namely ARM64: +Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn’t work out so well.
0%
\ No newline at end of file diff --git a/index.xml b/index.xml index 86050366b..a817b79d2 100644 --- a/index.xml +++ b/index.xml @@ -1,200 +1,52 @@ -mailcow: dockerized - Bloghttps://mailcow.email/Recent content on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-12/<h2 id="2023-12a-release-29th-december-2023">2023-12a (Release 29th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-19th-december-2023">2023-12 (Release 19th December 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>We have some new Netfilter features for you before the holidays. -In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables <code>WATCHDOG_NOTIFY_WEBHOOK</code> and <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in <code>mailcow.conf</code> accordingly.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-11/<h2 id="2023-11a-release-07th-december-2023">2023-11a (Release 07th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-21st-november-2023">2023-11 (Release 21st November 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>The holiday season is slowly approaching, and here we are with another update at our doorstep.</p> -<p>First things first: It&rsquo;s advisable to update (especially if using Quarantine) due to a critical security patch.</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-delay/<p><strong>Moohoo everyone!</strong></p> -<p>We are back with new information on the current ARM64 topic.</p> -<p>Unfortunately, it&rsquo;s not good news, as you might have guessed from the headline&hellip;</p>๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-10/<h2 id="2023-10a-released-12th-october-2023">2023-10a (Released 12th October 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>We&rsquo;ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!</li> -<li>We&rsquo;ve removed the restart action from the <code>depends_on</code> section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-released-12th-october-2023">2023-10 (Released 12th October 2023)</h2> -<p><strong><del>Moo</del>Boo hoo everyone!</strong></p> -<p>It&rsquo;s spooky season again and we hope you&rsquo;re all ready to celebrate the Halloween season this year.</p> -<p>However mailcow is also delivering you with some treats (tricks &ldquo;sold&rdquo; seperately and not included in this update) regarding the stack.</p> -<p>This time it&rsquo;s quite huge!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +mailcow: dockerized - Bloghttps://mailcow.email/The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’• | Official Blog PageHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/posts/2023/release-2023-12/ + 2023-12a (Release 29th December 2023)

+ Changelog

+
+

+ 2023-12 (Release 19th December 2023)

Moo hoo everyone!

+

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-11/ + 2023-11a (Release 07th December 2023)

+ Changelog

+
+

+ 2023-11 (Release 21st November 2023)

Moo hoo everyone!

+

The holiday season is slowly approaching, and here we are with another update at our doorstep.

+

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-delay/Moohoo everyone!

+

We are back with new information on the current ARM64 topic.

+

Unfortunately, it’s not good news, as you might have guessed from the headline…

]]>
๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-10/ + 2023-10a (Released 12th October 2023)

+ Changelog

    +
  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • +
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)
  • +
+
+

+ 2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

+

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

+

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

+

This time it’s quite huge!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! -With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. -mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. -To enable this, we have made some changes to the way authentication works. -Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-open-beta/<p><strong>Moohoo everyone!</strong></p> -<p>No you are not dreaming, yes you are awake and no this is no joke:</p> -<p>mailcow&rsquo;s ARM64 support can now be tested in nightly as <strong>BETA</strong>!</p>๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! -I hope you are not tired yet of performing updates. -The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. -If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! -It has been more than a month since you heard from us and today we have a shadowdrop as an update. -Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. -Today we start with the first topic, namely ARM64: -Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo everyone!</strong></p> -<p>With the mailcow update 2023-07, there&rsquo;s a somewhat significant change regarding Spamhaus DNS blocklists.</p> -<p>This blog post is here to provide information for those interested.</p>โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p>๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! -It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. -Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:</p> -<p><strong>mailcow gets ARM64 support</strong></p>๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-04/Update 2023-04a We&rsquo;ve just released a hotfix update for the 2023-04 update. -It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. -Update 2023-04 Moohoo everyone -It&rsquo;s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. -Let&rsquo;s get started: -SOGo has been updated to version 5.๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/ldap-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The time of waiting is over and many have shared their solution with us on the contact options below.</p> -<p>Today we finally have the pleasure to let it out into the world!</p>๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/letters-mystery/Moohoo everyone! -First of all, a big, big sorry for the long radio silence here. -We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of &ldquo;ONLY&rdquo; bug fixes, etc.. -But in this blogpost we would like to draw your attention to a mysterious thing:๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-01/Introduction Moohoo everyone! -The mailcow team is back with some exciting news about our beloved mailcow project! -But this time we are doing something a bit different than usual (at least here with the blog post entry) -As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. -So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-12/Introduction Moohoo everyone! -To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! -As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. -Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-feat-alpine/โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10/<p><strong>Moohoo everyone!</strong></p> -<p>We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>The new Demos are here!https://mailcow.email/posts/2022/our-new-demos/Sat, 24 Sep 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/our-new-demos/<p>Moohoo everyone!</p> -<p>Itยดs finally time: Our new mailcow Demos are here and live for you to test!</p>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! -A small but important update for or against the current SOGo Sieve/mail sending problems is here! -We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. -For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know!๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! -Yeah, a August Update in September&hellip; kinda sus if you ask me! -This time there are even some changes regarding the Update sources! So stay curious. -Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! -We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). -Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) -Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).Welcome to the new mailcow blog!https://mailcow.email/posts/2022/welcome-new-blog/Fri, 15 Jul 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/welcome-new-blog/Happy new day to you! -Welcome to the new blog page. -Some of you may have already stumbled across the site on Twitter or on Telegram in the last update announcement, but now here again officially! -Built with the fast and beautiful Static Site Generator Hugo and the LoveIt Theme, this site can keep up with WordPress and even outperform it. -What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! -It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, -Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. -It is strongly recommended to install the update as soon as possible to prevent exploitation. -As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. -So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. -Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!Policyhttps://mailcow.email/policy/Wed, 16 Feb 2022 11:44:33 +0100info@servercow.de (Moohoo)https://mailcow.email/policy/Contract creation in accordance with order processing under the General Data Protection Regulation (EU-DSGVO). In your Servercow profile, you can create, delete and modify a contract at any time. If you have any questions, please do not hesitate to contact us. -Notes on data retention on this website Accesses to this website are stored for one day in order to filter malicious calls and block corresponding IP addresses. Furthermore, the returned status code is used for internal monitoring.๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) -We have an exciting news to share with you! -We present you the newly released mailcow: dockerized Docs 2.0! -Not much may have changed at first glance (you would think) but under the hood a lot has changed! -So we present you from today: -Multi-language support (English and German are supported and updated by Servercow itself ) Light-/Darkmode New organized structure (interesting for contributors) All in all a remake of the existing docs.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-twitter/Moohoo everyone! -Our dear mailcow has taken the plunge into social media: Twitter! -There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. -Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. -We look forward to getting in touch with you there and keeping you up to date.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01/Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn&rsquo;t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. -Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! -For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moovember2021/Moohoo everyone! -Niklas here to present you the latest news around our lovely mailcow :) -Let&rsquo;s get started, shall we? -Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. -Furthermore we introduce our new cold standby solution. -With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moore_october21/Girls, guys and cows, -Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress. -We are also reworking the design a bit, that&rsquo;s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.From Peru with moo!https://mailcow.email/posts/2021/xubium_recommend/Wed, 29 Sep 2021 20:13:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/xubium_recommend/Dear cows, -For organizations in Spanish-speaking countries I would recommend you check out Xubium. -They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses. -Xubium is an amazing company to work with, it has our recommendation by all means.mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, -If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now. -Besides that, we also heavily reduced the map hammering with another change in the map generator. -Update time! -AndrรฉImprinthttps://mailcow.email/imprint/Mon, 01 Jan 0001 00:00:00 +0000info@servercow.de (Moohoo)https://mailcow.email/imprint/Information according to ยง 5 German Telemedia Act: The Infrastructure Company GmbH -Parkstrasse 42 -47877 Willich, Germany -Phone: +49 2154-9304 600 -info@tinc.gmbh -www.tinc.gmbh -CEO: Martin Vogt -Register entry: Entry in the commercial register -Register court: Local court Krefeld (Germany) -Registration number: HRB 15904 -VAT ID No.: DE308854956
\ No newline at end of file +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.
\ No newline at end of file diff --git a/js/theme.min.js b/js/theme.min.js index 8fca150ef..10cd17b5a 100644 --- a/js/theme.min.js +++ b/js/theme.min.js @@ -1,3 +1,2 @@ -"use strict";function _objectDestructuringEmpty(obj){if(obj==null)throw new TypeError("Cannot destructure undefined")}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e2){didErr=true;err=_e2},f:function f(){try{if(!normalCompletion&&it.return!=null)it.return()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter)}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i.nested-item"),function($nestedItem){$nestedItem.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open");this.querySelector(".dropdown-icon").classList.toggle("open")})})}},{key:"initSwitchTheme",value:function initSwitchTheme(){var _this5=this;this.util.forEach(document.getElementsByClassName("theme-switch"),function($themeSwitch){$themeSwitch.addEventListener("click",function(){var _window$localStorage;document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark";_this5.isDark=!_this5.isDark;(_window$localStorage=window.localStorage)===null||_window$localStorage===void 0?void 0:_window$localStorage.setItem("theme",_this5.isDark?"dark":"light");var _iterator=_createForOfIteratorHelper(_this5.switchThemeEventSet),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var event=_step.value;event()}}catch(err){_iterator.e(err)}finally{_iterator.f()}},false)})}},{key:"initSearch",value:function initSearch(){var _this6=this;var searchConfig=this.config.search;var isMobile=this.util.isMobile();if(!searchConfig||isMobile&&this._searchMobileOnce||!isMobile&&this._searchDesktopOnce){return}var maxResultLength=searchConfig.maxResultLength||10;var snippetLength=searchConfig.snippetLength||50;var highlightTag=searchConfig.highlightTag||"em";var suffix=isMobile?"mobile":"desktop";var $header=document.getElementById("header-".concat(suffix));var $searchInput=document.getElementById("search-input-".concat(suffix));var $searchToggle=document.getElementById("search-toggle-".concat(suffix));var $searchLoading=document.getElementById("search-loading-".concat(suffix));var $searchClear=document.getElementById("search-clear-".concat(suffix));if(isMobile){this._searchMobileOnce=true;$searchInput.addEventListener("focus",function(){_this6.disableScrollEvent=true;document.body.classList.add("blur");$header.classList.add("open")},false);document.getElementById("search-cancel-mobile").addEventListener("click",function(){_this6.disableScrollEvent=false;$header.classList.remove("open");document.body.classList.remove("blur");document.getElementById("menu-toggle-mobile").classList.remove("active");document.getElementById("menu-mobile").classList.remove("active");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")},false);this._searchMobileOnClickMask=this._searchMobileOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchMobile&&_this6._searchMobile.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchMobileOnClickMask)}else{this._searchDesktopOnce=true;$searchToggle.addEventListener("click",function(){document.body.classList.add("blur");$header.classList.add("open");$searchInput.focus()},false);$searchClear.addEventListener("click",function(){$searchClear.style.display="none";_this6._searchDesktop&&_this6._searchDesktop.autocomplete.setVal("")},false);this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||function(){$header.classList.remove("open");$searchLoading.style.display="none";$searchClear.style.display="none";_this6._searchDesktop&&_this6._searchDesktop.autocomplete.setVal("")};this.clickMaskEventSet.add(this._searchDesktopOnClickMask)}$searchInput.addEventListener("input",function(){if($searchInput.value==="")$searchClear.style.display="none";else $searchClear.style.display="inline"},false);var initAutosearch=function initAutosearch(){var autosearch=autocomplete("#search-input-".concat(suffix),{hint:false,autoselect:true,dropdownMenuContainer:"#search-dropdown-".concat(suffix),clearOnSelected:true,cssClasses:{noPrefix:true},debug:true},{name:"search",source:function source(query,callback){$searchLoading.style.display="inline";$searchClear.style.display="none";var finish=function finish(results){$searchLoading.style.display="none";$searchClear.style.display="inline";callback(results)};if(searchConfig.type==="lunr"){var search=function search(){if(lunr.queryHandler){query=lunr.queryHandler(query)}var results={};_this6._index.search(query).forEach(function(_ref){var ref=_ref.ref,metadata=_ref.matchData.metadata;var matchData=_this6._indexData[ref];var uri=matchData.uri,title=matchData.title,context=matchData.content;if(results[uri]){return}var position=0;Object.values(metadata).forEach(function(_ref2){var content=_ref2.content;if(content){var matchPosition=content.position[0][0];if(matchPosition0){position+=context.substr(position,20).lastIndexOf(" ")+1;context="..."+context.substr(position,snippetLength)}else{context=context.substr(0,snippetLength)}Object.keys(metadata).forEach(function(key){title=title.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"));context=context.replace(new RegExp("(".concat(key,")"),"gi"),"<".concat(highlightTag,">$1"))});results[uri]={uri:uri,title:title,date:matchData.date,context:context}});return Object.values(results).slice(0,maxResultLength)};if(!_this6._index){fetch(searchConfig.lunrIndexURL).then(function(response){return response.json()}).then(function(data){var indexData={};_this6._index=lunr(function(){var _this7=this;if(searchConfig.lunrLanguageCode)this.use(lunr[searchConfig.lunrLanguageCode]);this.ref("objectID");this.field("title",{boost:50});this.field("tags",{boost:20});this.field("categories",{boost:20});this.field("content",{boost:10});this.metadataWhitelist=["position"];data.forEach(function(record){indexData[record.objectID]=record;_this7.add(record)})});_this6._indexData=indexData;finish(search())}).catch(function(err){console.error(err);finish([])})}else finish(search())}else if(searchConfig.type==="algolia"){_this6._algoliaIndex=_this6._algoliaIndex||algoliasearch(searchConfig.algoliaAppID,searchConfig.algoliaSearchKey).initIndex(searchConfig.algoliaIndex);_this6._algoliaIndex.search(query,{offset:0,length:maxResultLength*8,attributesToHighlight:["title"],attributesToSnippet:["content:".concat(snippetLength)],highlightPreTag:"<".concat(highlightTag,">"),highlightPostTag:"")}).then(function(_ref3){var hits=_ref3.hits;var results={};hits.forEach(function(_ref4){var uri=_ref4.uri,date=_ref4.date,title=_ref4._highlightResult.title,content=_ref4._snippetResult.content;if(results[uri]&&results[uri].context.length>content.value){return}results[uri]={uri:uri,title:title.value,date:date,context:content.value}});finish(Object.values(results).slice(0,maxResultLength))}).catch(function(err){console.error(err);finish([])})}},templates:{suggestion:function suggestion(_ref5){var title=_ref5.title,date=_ref5.date,context=_ref5.context;return"
".concat(title,"").concat(date,"
").concat(context,"
")},empty:function empty(_ref6){var query=_ref6.query;return"
".concat(searchConfig.noResultsFound,": \"").concat(query,"\"
")},footer:function footer(_ref7){_objectDestructuringEmpty(_ref7);var _ref8=searchConfig.type==="algolia"?{searchType:"algolia",icon:"",href:"https://www.algolia.com/"}:{searchType:"Lunr.js",icon:"",href:"https://lunrjs.com/"},searchType=_ref8.searchType,icon=_ref8.icon,href=_ref8.href;return"")}}});autosearch.on("autocomplete:selected",function(_event,suggestion,_dataset,_context){window.location.assign(suggestion.uri)});if(isMobile){_this6._searchMobile=autosearch}else{_this6._searchDesktop=autosearch}};if(searchConfig.lunrSegmentitURL&&!document.getElementById("lunr-segmentit")){var script=document.createElement("script");script.id="lunr-segmentit";script.src=searchConfig.lunrSegmentitURL;script.async=true;if(script.readyState){script.onreadystatechange=function(){if(script.readyState=="loaded"||script.readyState=="complete"){script.onreadystatechange=null;initAutosearch()}}}else{script.onload=function(){initAutosearch()}}document.body.appendChild(script)}else{initAutosearch()}}},{key:"initDetails",value:function initDetails(){this.util.forEach(document.getElementsByClassName("details"),function($details){var $summary=$details.querySelector(".details-summary");$summary.addEventListener("click",function(){$details.classList.toggle("open")},false)})}},{key:"initLightGallery",value:function initLightGallery(){if(this.config.lightgallery){lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2000,allowMediaOverlap:true,exThumbImage:"data-thumbnail",toggleThumb:true,thumbWidth:80,thumbHeight:"60px",actualSize:false,showZoomInOutIcons:true,licenseKey:"none"})}}},{key:"initHighlight",value:function initHighlight(){var _this8=this;this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),function($preChroma){var $chroma=document.createElement("div");$chroma.className=$preChroma.className;var $table=document.createElement("table");$chroma.appendChild($table);var $tbody=document.createElement("tbody");$table.appendChild($tbody);var $tr=document.createElement("tr");$tbody.appendChild($tr);var $td=document.createElement("td");$tr.appendChild($td);$preChroma.parentElement.replaceChild($chroma,$preChroma);$td.appendChild($preChroma)});this.util.forEach(document.querySelectorAll(".highlight > .chroma"),function($chroma){var $codeElements=$chroma.querySelectorAll("pre.chroma > code");if($codeElements.length){var $code=$codeElements[$codeElements.length-1];var $header=document.createElement("div");$header.className="code-header "+$code.className.toLowerCase();var $title=document.createElement("span");$title.classList.add("code-title");$title.insertAdjacentHTML("afterbegin","");$title.addEventListener("click",function(){$chroma.classList.toggle("open")},false);$header.appendChild($title);var $ellipses=document.createElement("span");$ellipses.insertAdjacentHTML("afterbegin","");$ellipses.classList.add("ellipses");$ellipses.addEventListener("click",function(){$chroma.classList.add("open")},false);$header.appendChild($ellipses);if(_this8.config.code.editable){var $edit=document.createElement("span");$edit.classList.add("edit");$edit.insertAdjacentHTML("afterbegin",""));$edit.addEventListener("click",function(){var $iconKey=$edit.querySelector(".fa-key");var $iconLock=$edit.querySelector(".fa-lock");var $preChromas=$edit.parentElement.parentElement.querySelectorAll("pre.chroma");var $preChroma=$preChromas.length===2?$preChromas[1]:$preChromas[0];if($iconKey){$iconKey.classList.add("fa-lock");$iconKey.classList.remove("fa-key");$iconKey.title=_this8.config.code.editLockTitle;$preChroma.setAttribute("contenteditable",true);$preChroma.focus()}else{$iconLock.classList.add("fa-key");$iconLock.classList.remove("fa-lock");$iconLock.title=_this8.config.code.editUnLockTitle;$preChroma.setAttribute("contenteditable",false);$preChroma.blur()}},false);$header.appendChild($edit)}if(_this8.config.code.copyTitle){var $copy=document.createElement("span");$copy.insertAdjacentHTML("afterbegin","");$copy.classList.add("copy");var code=$code.innerText;if(_this8.config.code.maxShownLines<0||code.split("\n").length<_this8.config.code.maxShownLines+2){$chroma.classList.add("open")}$copy.title=_this8.config.code.copyTitle;$copy.addEventListener("click",function(){navigator.clipboard.writeText(code).then(function(){_this8.util.animateCSS($code,"animate__flash")},function(){console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},false);$header.appendChild($copy)}$chroma.insertBefore($header,$chroma.firstChild)}})}},{key:"initTable",value:function initTable(){this.util.forEach(document.querySelectorAll(".content table"),function($table){var $wrapper=document.createElement("div");$wrapper.className="table-wrapper";$table.parentElement.replaceChild($wrapper,$table);$wrapper.appendChild($table)})}},{key:"initHeaderLink",value:function initHeaderLink(){for(var num=1;num<=6;num++){this.util.forEach(document.querySelectorAll(".single .content > h"+num),function($header){$header.classList.add("header-link");$header.insertAdjacentHTML("afterbegin",""))})}}},{key:"initToc",value:function initToc(){var _this9=this;var $tocCore=document.getElementById("TableOfContents");if($tocCore===null){return}if(document.getElementById("toc-static").getAttribute("date-kept")==="true"||this.util.isTocStatic()){var $tocContentStatic=document.getElementById("toc-content-static");if($tocCore.parentElement!==$tocContentStatic){$tocCore.parentElement.removeChild($tocCore);$tocContentStatic.appendChild($tocCore)}this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{var $tocContentAuto=document.getElementById("toc-content-auto");if($tocCore.parentElement!==$tocContentAuto){$tocCore.parentElement.removeChild($tocCore);$tocContentAuto.appendChild($tocCore)}var $toc=document.getElementById("toc-auto");$toc.style.visibility="visible";this.util.animateCSS($toc,["animate__fadeIn","animate__faster"],true);$toc.style.marginTop=document.querySelector(".single-title").clientHeight+document.querySelector(".post-meta").clientHeight+"px";$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+"px";var $tocLinkElements=$tocCore.querySelectorAll("a:first-child");var $tocLiElements=$tocCore.getElementsByTagName("li");var $headerLinkElements=document.getElementsByClassName("header-link");var headerIsFixed=document.body.getAttribute("data-header-desktop")!=="normal";var headerHeight=document.getElementById("header-desktop").offsetHeight;this._tocOnScroll=this._tocOnScroll||function(){var $comments=document.getElementById("comments");if($comments){$toc.style.marginBottom=document.getElementById("post-footer").clientHeight+$comments.clientHeight+"px"}_this9.util.forEach($tocLinkElements,function($tocLink){$tocLink.classList.remove("active")});_this9.util.forEach($tocLiElements,function($tocLi){$tocLi.classList.remove("has-active")});var INDEX_SPACING=20+(headerIsFixed?headerHeight:0);var activeTocIndex=$headerLinkElements.length-1;for(var i=0;i<$headerLinkElements.length-1;i++){var thisTop=$headerLinkElements[i].getBoundingClientRect().top;var nextTop=$headerLinkElements[i+1].getBoundingClientRect().top;if(i==0&&thisTop>INDEX_SPACING||thisTop<=INDEX_SPACING&&nextTop>INDEX_SPACING){activeTocIndex=i;break}}if(activeTocIndex!==-1){$tocLinkElements[activeTocIndex].classList.add("active");var $parent=$tocLinkElements[activeTocIndex].parentElement;while($parent!==$tocCore){$parent.classList.add("has-active");$parent=$parent.parentElement.parentElement}}};this._tocOnScroll();this.scrollEventSet.add(this._tocOnScroll)}}},{key:"initTocListener",value:function initTocListener(){var _document$querySelect,_this10=this;var $toc=document.getElementById("toc-auto");var $tocContentAuto=document.getElementById("toc-content-auto");(_document$querySelect=document.querySelector("#toc-auto>.toc-title"))===null||_document$querySelect===void 0?void 0:_document$querySelect.addEventListener("click",function(){var animation=["animate__faster"];var tocHidden=$toc.classList.contains("toc-hidden");animation.push(tocHidden?"animate__fadeIn":"animate__fadeOut");$tocContentAuto.classList.remove(tocHidden?"animate__fadeOut":"animate__fadeIn");_this10.util.animateCSS($tocContentAuto,animation,true);$toc.classList.toggle("toc-hidden")},false)}},{key:"initMath",value:function initMath(){if(this.config.math){renderMathInElement(document.body,this.config.math)}}},{key:"initMermaid",value:function initMermaid(){var _this11=this;this._mermaidOnSwitchTheme=this._mermaidOnSwitchTheme||function(){var $mermaidElements=document.getElementsByClassName("mermaid");if($mermaidElements.length){var _this11$config$mermai;var themes=(_this11$config$mermai=_this11.config.mermaid.themes)!==null&&_this11$config$mermai!==void 0?_this11$config$mermai:["neutral","dark"];mermaid.initialize({startOnLoad:false,theme:_this11.isDark?themes[1]:themes[0],securityLevel:"loose"});_this11.util.forEach($mermaidElements,function($mermaid){mermaid.render("svg-"+$mermaid.id,_this11.data[$mermaid.id],function(svgCode){$mermaid.innerHTML=svgCode},$mermaid)})}};this.switchThemeEventSet.add(this._mermaidOnSwitchTheme);this._mermaidOnSwitchTheme()}},{key:"initEcharts",value:function initEcharts(){var _this12=this;if(!this.config.echarts){return}echarts.registerTheme("light",this.config.echarts.lightTheme);echarts.registerTheme("dark",this.config.echarts.darkTheme);this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||function(){_this12._echartsArr=_this12._echartsArr||[];for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].dispose()}_this12._echartsArr=[];_this12.util.forEach(document.getElementsByClassName("echarts"),function($echarts){var chart=echarts.init($echarts,_this12.isDark?"dark":"light",{renderer:"svg"});chart.setOption(JSON.parse(_this12.data[$echarts.id]));_this12._echartsArr.push(chart)})};this.switchThemeEventSet.add(this._echartsOnSwitchTheme);this._echartsOnSwitchTheme();this._echartsOnResize=this._echartsOnResize||function(){for(var i=0;i<_this12._echartsArr.length;i++){_this12._echartsArr[i].resize()}};this.resizeEventSet.add(this._echartsOnResize)}},{key:"initMapbox",value:function initMapbox(){var _this13=this;if(this.config.mapbox){mapboxgl.accessToken=this.config.mapbox.accessToken;mapboxgl.setRTLTextPlugin(this.config.mapbox.RTLTextPlugin);this._mapboxArr=this._mapboxArr||[];this.util.forEach(document.getElementsByClassName("mapbox"),function($mapbox){var _this13$data$$mapbox$=_this13.data[$mapbox.id],lng=_this13$data$$mapbox$.lng,lat=_this13$data$$mapbox$.lat,zoom=_this13$data$$mapbox$.zoom,lightStyle=_this13$data$$mapbox$.lightStyle,darkStyle=_this13$data$$mapbox$.darkStyle,marked=_this13$data$$mapbox$.marked,navigation=_this13$data$$mapbox$.navigation,geolocate=_this13$data$$mapbox$.geolocate,scale=_this13$data$$mapbox$.scale,fullscreen=_this13$data$$mapbox$.fullscreen;var mapbox=new mapboxgl.Map({container:$mapbox,center:[lng,lat],zoom:zoom,minZoom:0.2,style:_this13.isDark?darkStyle:lightStyle,attributionControl:false});if(marked){new mapboxgl.Marker().setLngLat([lng,lat]).addTo(mapbox)}if(navigation){mapbox.addControl(new mapboxgl.NavigationControl,"bottom-right")}if(geolocate){mapbox.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:true},showUserLocation:true,trackUserLocation:true}),"bottom-right")}if(scale){mapbox.addControl(new mapboxgl.ScaleControl)}if(fullscreen){mapbox.addControl(new mapboxgl.FullscreenControl)}mapbox.addControl(new MapboxLanguage);_this13._mapboxArr.push(mapbox)});this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||function(){_this13.util.forEach(_this13._mapboxArr,function(mapbox){var $mapbox=mapbox.getContainer();var _this13$data$$mapbox$2=_this13.data[$mapbox.id],lightStyle=_this13$data$$mapbox$2.lightStyle,darkStyle=_this13$data$$mapbox$2.darkStyle;mapbox.setStyle(_this13.isDark?darkStyle:lightStyle);mapbox.addControl(new MapboxLanguage)})};this.switchThemeEventSet.add(this._mapboxOnSwitchTheme)}}},{key:"initTypeit",value:function initTypeit(){var _this14=this;if(this.config.typeit){var typeitConfig=this.config.typeit;var speed=typeitConfig.speed||100;var cursorSpeed=typeitConfig.cursorSpeed||1000;var cursorChar=typeitConfig.cursorChar||"|";Object.values(typeitConfig.data).forEach(function(group){var typeone=function typeone(i){var id=group[i];var instance=new TypeIt("#".concat(id),{strings:_this14.data[id],speed:speed,lifeLike:true,cursorSpeed:cursorSpeed,cursorChar:cursorChar,waitUntilVisible:true,afterComplete:function afterComplete(){if(i===group.length-1){if(typeitConfig.duration>=0){window.setTimeout(function(){instance.destroy()},typeitConfig.duration)}return}instance.destroy();typeone(i+1)}}).go()};typeone(0)})}}},{key:"initCommentLightGallery",value:function initCommentLightGallery(comments,images){if(!this.config.lightGallery){return}document.querySelectorAll(comments).forEach(function($content){var $imgs=$content.querySelectorAll(images+":not([lightgallery-loaded])");$imgs.forEach(function($img){$img.setAttribute("lightgallery-loaded","");var $link=document.createElement("a");$link.setAttribute("class","comment-lightgallery");$link.setAttribute("href",$img.src);$link.append($img.cloneNode());$img.replaceWith($link)});if($imgs.length){lightGallery($content,{selector:".comment-lightgallery",actualSize:false,hideBarsDelay:2000,speed:400})}})}},{key:"initComment",value:function initComment(){var _this$config$comment,_this15=this;if(!((_this$config$comment=this.config.comment)!==null&&_this$config$comment!==void 0&&_this$config$comment.enable)){return}if(document.querySelector("#comments")){var $viewCommentsBtn=document.querySelector(".view-comments");$viewCommentsBtn.classList.remove("d-none");$viewCommentsBtn.addEventListener("click",function(){_this15.util.scrollIntoView("#comments")},false)}if(this.config.comment.artalk){var artalk=new Artalk(this.config.comment.artalk);artalk.setDarkMode(this.isDark);this.switchThemeEventSet.add(function(){artalk.setDarkMode(_this15.isDark)});artalk.on("comments-loaded",function(){_this15.config.comment.artalk.lightgallery&&_this15.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")});return artalk}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);var gitalk=new Gitalk(this.config.comment.gitalk);gitalk.render("gitalk");return gitalk}if(this.config.comment.valine){return new Valine(this.config.comment.valine)}if(this.config.comment.waline){return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){var utterancesConfig=this.config.comment.utterances;var script=document.createElement("script");script.src="https://utteranc.es/client.js";script.setAttribute("repo",utterancesConfig.repo);script.setAttribute("issue-term",utterancesConfig.issueTerm);if(utterancesConfig.label)script.setAttribute("label",utterancesConfig.label);script.setAttribute("theme",this.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme);script.crossOrigin="anonymous";script.async=true;document.getElementById("utterances").appendChild(script);this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||function(){var _document$querySelect2;var message={type:"set-theme",theme:_this15.isDark?utterancesConfig.darkTheme:utterancesConfig.lightTheme};(_document$querySelect2=document.querySelector(".utterances-frame"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.contentWindow.postMessage(message,"https://utteranc.es")};this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){var twikooConfig=this.config.comment.twikoo;if(twikooConfig.lightgallery){twikooConfig.onCommentLoaded=function(){_this15.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}}twikoo.init(twikooConfig);if(twikooConfig.commentCount){twikoo.getCommentsCount({envId:twikooConfig.envId,region:twikooConfig.region,urls:[window.location.pathname],includeReply:false}).then(function(response){var twikooCommentCount=document.getElementById("twikoo-comment-count");if(twikooCommentCount)twikooCommentCount.innerHTML=response[0].count})}return}if(this.config.comment.giscus){var giscusConfig=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||function(){var _document$querySelect3;var message={setConfig:{theme:_this15.isDark?giscusConfig.darkTheme:giscusConfig.lightTheme}};(_document$querySelect3=document.querySelector(".giscus-frame"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.contentWindow.postMessage({giscus:message},"https://giscus.app")};this.switchThemeEventSet.add(this._giscusOnSwitchTheme);var _this=this;_this.giscus2parentMsg=window.addEventListener("message",function(event){var $script=document.querySelector("#giscus>script");if($script){_this._giscusOnSwitchTheme();$script.parentElement.removeChild($script)}window.removeEventListener("message",_this.giscus2parentMsg)});return}}},{key:"initCookieconsent",value:function initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}},{key:"initSiteTime",value:function initSiteTime(){var _this16=this;if(this.config.siteTime){this.siteTime=setInterval(this.getSiteTime,500);document.addEventListener("visibilitychange",function(){if(document.hidden){return clearInterval(_this16.siteTime)}_this16.siteTime=setInterval(_this16.getSiteTime,500)},false)}}},{key:"initServiceWorker",value:function initServiceWorker(){if(this.config.enablePWA&&"serviceWorker"in navigator){navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(registration){}).catch(function(error){console.error("error: ",error)});navigator.serviceWorker.ready.then(function(registration){})}}},{key:"initWatermark",value:function initWatermark(){var _this$config$watermar,_document$querySelect4,_document$querySelect5;((_this$config$watermar=this.config.watermark)===null||_this$config$watermar===void 0?void 0:_this$config$watermar.enable)&&new Watermark({content:this.config.watermark.content||"".concat((_document$querySelect4=(_document$querySelect5=document.querySelector("footer .fixit-icon"))===null||_document$querySelect5===void 0?void 0:_document$querySelect5.outerHTML)!==null&&_document$querySelect4!==void 0?_document$querySelect4:""," FixIt Theme"),appendTo:this.config.watermark.appendto||".wrapper>main",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}},{key:"initPangu",value:function initPangu(){this.config.enablePangu&&pangu.autoSpacingPage()}},{key:"initFixItDecryptor",value:function initFixItDecryptor(){var _this17=this,_this$config$encrypti,_this$config$encrypti2;var $tocNodes=document.querySelectorAll("#toc-auto>.d-none, #toc-static.d-none");this.decryptor=new FixItDecryptor({decrypted:function decrypted(){_this17.initTwemoji();_this17.initDetails();_this17.initLightGallery();_this17.initHighlight();_this17.initTable();_this17.initHeaderLink();_this17.initMath();_this17.initMermaid();_this17.initEcharts();_this17.initTypeit();_this17.initMapbox();_this17.util.forEach($tocNodes,function($element){$element.classList.remove("d-none")});_this17.initToc();_this17.initTocListener();_this17.initPangu()},reset:function reset(){_this17.util.forEach($tocNodes,function($element){$element.classList.add("d-none")})}});if((_this$config$encrypti=this.config.encryption)!==null&&_this$config$encrypti!==void 0&&_this$config$encrypti.shortcode){this.decryptor.addEventListener("decrypted",function(){_this17.decryptor.initShortcodes()});this.decryptor.initShortcodes()}((_this$config$encrypti2=this.config.encryption)===null||_this$config$encrypti2===void 0?void 0:_this$config$encrypti2.all)&&this.decryptor.init()}},{key:"initMDevtools",value:function initMDevtools(){var _this$config,_this18=this;var type=(_this$config=this.config)===null||_this$config===void 0?void 0:_this$config.mDevtools;if(typeof window.orientation==="undefined"){return}if(type==="vConsole"){var vConsole=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||function(){vConsole.setOption("theme",_this18.isDark?"dark":"light")};this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}if(type==="eruda"){eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}});this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||function(){eruda.util.evalCss.setTheme(_this18.isDark?"Dark":"Light")};this.switchThemeEventSet.add(this._erudaOnSwitchTheme)}}},{key:"initAutoMark",value:function initAutoMark(){var _this19=this,_window$localStorage3;if(!this.config.autoBookmark){return}window.addEventListener("beforeunload",function(){var _window$localStorage2;(_window$localStorage2=window.localStorage)===null||_window$localStorage2===void 0?void 0:_window$localStorage2.setItem("fixit-bookmark/#".concat(location.pathname),_this19.util.getScrollTop())});var scrollTop=Number((_window$localStorage3=window.localStorage)===null||_window$localStorage3===void 0?void 0:_window$localStorage3.getItem("fixit-bookmark/#".concat(location.pathname)));if(scrollTop&&location.hash===""){window.scrollTo({top:scrollTop,behavior:"smooth"})}}},{key:"onScroll",value:function onScroll(){var _this20=this;var $headers=[];var ACCURACY=20;var $fixedButtons=document.querySelector(".fixed-buttons");var $backToTop=document.querySelector(".back-to-top");var $readingProgressBar=document.querySelector(".reading-progress-bar");if(document.body.dataset.headerDesktop==="auto"){$headers.push(document.getElementById("header-desktop"))}if(document.body.dataset.headerMobile==="auto"){$headers.push(document.getElementById("header-mobile"))}$backToTop===null||$backToTop===void 0?void 0:$backToTop.addEventListener("click",function(){_this20.util.scrollIntoView("body")});window.addEventListener("scroll",function(event){if(_this20.disableScrollEvent){event.preventDefault();return}var $mask=document.getElementById("mask");_this20.newScrollTop=_this20.util.getScrollTop();var scroll=_this20.newScrollTop-_this20.oldScrollTop;_this20.util.forEach($headers,function($header){if(scroll>ACCURACY){$header.classList.remove("animate__fadeInDown");_this20.util.animateCSS($header,["animate__fadeOutUp"],true);$mask.click()}else if(scroll<-ACCURACY){$header.classList.remove("animate__fadeOutUp");_this20.util.animateCSS($header,["animate__fadeInDown"],true);$mask.click()}});var contentHeight=document.body.scrollHeight-window.innerHeight;var scrollPercent=Math.max(Math.min(100*Math.max(_this20.newScrollTop,0)/contentHeight,100),0);if($readingProgressBar){$readingProgressBar.style.setProperty("--progress","".concat(scrollPercent.toFixed(2),"%"))}if($fixedButtons){if(scrollPercent>1){$fixedButtons.classList.remove("d-none","animate__fadeOut");_this20.util.animateCSS($fixedButtons,["animate__fadeIn"],true)}else{$fixedButtons.classList.remove("animate__fadeIn");_this20.util.animateCSS($fixedButtons,["animate__fadeOut"],true,function(){$fixedButtons.classList.contains("animate__fadeOut")&&$fixedButtons.classList.add("d-none")})}if($backToTop){$backToTop.querySelector("span").innerText="".concat(Math.round(scrollPercent),"%")}}var _iterator2=_createForOfIteratorHelper(_this20.scrollEventSet),_step2;try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){var _event2=_step2.value;_event2()}}catch(err){_iterator2.e(err)}finally{_iterator2.f()}_this20.oldScrollTop=_this20.newScrollTop},false)}},{key:"onResize",value:function onResize(){var _this21=this;var resizeBefore=this.util.isMobile();window.addEventListener("resize",function(){if(!_this21._resizeTimeout){_this21._resizeTimeout=window.setTimeout(function(){_this21._resizeTimeout=null;var _iterator3=_createForOfIteratorHelper(_this21.resizeEventSet),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var event=_step3.value;event()}}catch(err){_iterator3.e(err)}finally{_iterator3.f()}_this21.initToc();_this21.initMermaid();_this21.initSearch();var isMobile=_this21.util.isMobile();if(isMobile!==resizeBefore){document.getElementById("mask").click();resizeBefore=isMobile}},100)}},false)}},{key:"onClickMask",value:function onClickMask(){var _this22=this;document.getElementById("mask").addEventListener("click",function(){if(!document.body.classList.contains("blur")){return}var _iterator4=_createForOfIteratorHelper(_this22.clickMaskEventSet),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var event=_step4.value;event()}}catch(err){_iterator4.e(err)}finally{_iterator4.f()}_this22.disableScrollEvent=false;document.body.classList.remove("blur")},false)}},{key:"init",value:function init(){var _this23=this;try{var _this$config$encrypti3;if(this.config.encryption){this.initFixItDecryptor()}else if(!((_this$config$encrypti3=this.config.encryption)!==null&&_this$config$encrypti3!==void 0&&_this$config$encrypti3.all)){this.initTwemoji();this.initDetails();this.initLightGallery();this.initHighlight();this.initTable();this.initHeaderLink();this.initMath();this.initMermaid();this.initEcharts();this.initTypeit();this.initMapbox();this.initPangu()}this.initThemeColor();this.initSVGIcon();this.initMenu();this.initSwitchTheme();this.initSearch();this.initCookieconsent();this.initSiteTime();this.initServiceWorker();this.initWatermark();this.initMDevtools();this.initAutoMark();window.setTimeout(function(){var _this23$config$encryp;_this23.initComment();if(!((_this23$config$encryp=_this23.config.encryption)!==null&&_this23$config$encryp!==void 0&&_this23$config$encryp.all)){_this23.initToc();_this23.initTocListener()}_this23.onScroll();_this23.onResize();_this23.onClickMask()},100)}catch(err){console.error(err)}}}]);return FixIt}();var themeInit=function themeInit(){window.fixit=new FixIt;window.fixit.init()};if(document.readyState!=="loading"){themeInit()}else{document.addEventListener("DOMContentLoaded",themeInit,false)} - -//# sourceMappingURL=theme.min.js.map \ No newline at end of file +(()=>{var _=class{forEach(e,t){e=e||[];for(let i=0;i{!i&&e.classList.remove("animate__animated",...t),typeof n=="function"&&n()},{once:!0})}isValidDate(e){return e instanceof Date&&!isNaN(e.getTime())}scrollIntoView(e){(e.startsWith("#")?document.getElementById(e.slice(1)):document.querySelector(e))?.scrollIntoView({behavior:"smooth"})}};var D=class{constructor(){this.config=window.config,this.data=this.config.data||[],this.isDark=document.body.dataset.theme==="dark",this.util=new _,this.newScrollTop=this.util.getScrollTop(),this.oldScrollTop=this.newScrollTop,this.scrollEventSet=new Set,this.resizeEventSet=new Set,this.switchThemeEventSet=new Set,this.clickMaskEventSet=new Set,this.beforeprintEventSet=new Set,this.disableScrollEvent=!1,window.objectFitImages&&objectFitImages()}initThemeColor(){let e=document.querySelector('[name="theme-color"]');e&&(this._themeColorOnSwitchTheme=this._themeColorOnSwitchTheme||(()=>{e.content=this.isDark?e.dataset.dark:e.dataset.light}),this.switchThemeEventSet.add(this._themeColorOnSwitchTheme),this._themeColorOnSwitchTheme())}initSVGIcon(){this.util.forEach(document.querySelectorAll("[data-svg-src]"),e=>{fetch(e.dataset.svgSrc).then(t=>t.text()).then(t=>{let i=document.createElement("div");i.insertAdjacentHTML("afterbegin",t);let n=i.firstChild;n.dataset.svgSrc=e.dataset.svgSrc,n.classList.add("icon");let s=n.getElementsByTagName("title");s.length&&n.removeChild(s[0]),e.parentElement.replaceChild(n,e)}).catch(t=>{console.error(t)})})}initTwemoji(){this.config.twemoji&&twemoji.parse(document.body)}initMenu(){this.initMenuDesktop(),this.initMenuMobile()}initMenuDesktop(){this.util.forEach(document.querySelectorAll(".has-children"),e=>{e.querySelector(".sub-menu").style.minWidth=`${e.offsetWidth-8}px`})}initMenuMobile(){let e=document.getElementById("menu-toggle-mobile"),t=document.getElementById("menu-mobile");e.addEventListener("click",i=>{document.body.classList.toggle("blur"),e.classList.toggle("active"),t.classList.toggle("active"),this.disableScrollEvent=document.body.classList.contains("blur")},!1),this._menuMobileOnClickMask=this._menuMobileOnClickMask||(()=>{e.classList.remove("active"),t.classList.remove("active")}),this.clickMaskEventSet.add(this._menuMobileOnClickMask),this.util.forEach(document.querySelectorAll(".menu-item>.nested-item"),i=>{i.addEventListener("click",function(){this.parentNode.querySelector(".sub-menu").classList.toggle("open"),this.querySelector(".dropdown-icon").classList.toggle("open")})})}initSwitchTheme(){this.util.forEach(document.getElementsByClassName("theme-switch"),e=>{e.addEventListener("click",()=>{document.body.dataset.theme=document.body.dataset.theme==="dark"?"light":"dark",this.isDark=!this.isDark,window.localStorage?.setItem("theme",this.isDark?"dark":"light");for(let t of this.switchThemeEventSet)t()},!1)})}initSearch(){let e=this.config.search,t=this.util.isMobile();if(!e||t&&this._searchMobileOnce||!t&&this._searchDesktopOnce)return;let i=e.maxResultLength??10,n=e.snippetLength??50,s=e.highlightTag??"em",c=e.isCaseSensitive??!1,h=e.minMatchCharLength??1,a=e.findAllMatches??!1,l=e.location??0,d=e.threshold??.3,o=e.distance??100,r=e.ignoreLocation??!1,x=e.useExtendedSearch??!1,R=e.ignoreFieldNorm??!1,v=t?"mobile":"desktop",L=document.getElementById(`header-${v}`),M=document.getElementById(`search-input-${v}`),z=document.getElementById(`search-toggle-${v}`),C=document.getElementById(`search-loading-${v}`),f=document.getElementById(`search-clear-${v}`);t?(this._searchMobileOnce=!0,M.addEventListener("focus",()=>{this.disableScrollEvent=!0,document.body.classList.add("blur"),L.classList.add("open")},!1),document.getElementById("search-cancel-mobile").addEventListener("click",()=>{this.disableScrollEvent=!1,L.classList.remove("open"),document.body.classList.remove("blur"),document.getElementById("menu-toggle-mobile").classList.remove("active"),document.getElementById("menu-mobile").classList.remove("active"),C.style.display="none",f.style.display="none",this._searchMobile&&this._searchMobile.autocomplete.setVal("")},!1),f.addEventListener("click",()=>{f.style.display="none",this._searchMobile&&this._searchMobile.autocomplete.setVal("")},!1),this._searchMobileOnClickMask=this._searchMobileOnClickMask||(()=>{L.classList.remove("open"),C.style.display="none",f.style.display="none",this._searchMobile&&this._searchMobile.autocomplete.setVal("")}),this.clickMaskEventSet.add(this._searchMobileOnClickMask)):(this._searchDesktopOnce=!0,z.addEventListener("click",()=>{document.body.classList.add("blur"),L.classList.add("open"),M.focus()},!1),f.addEventListener("click",()=>{f.style.display="none",this._searchDesktop&&this._searchDesktop.autocomplete.setVal("")},!1),this._searchDesktopOnClickMask=this._searchDesktopOnClickMask||(()=>{L.classList.remove("open"),C.style.display="none",f.style.display="none",this._searchDesktop&&this._searchDesktop.autocomplete.setVal("")}),this.clickMaskEventSet.add(this._searchDesktopOnClickMask)),M.addEventListener("input",()=>{M.value===""?f.style.display="none":f.style.display="inline"},!1),(()=>{let I=autocomplete(`#search-input-${v}`,{hint:!1,autoselect:!0,dropdownMenuContainer:`#search-dropdown-${v}`,clearOnSelected:!0,cssClasses:{noPrefix:!0},debug:!0},{name:"search",source:(S,E)=>{C.style.display="inline",f.style.display="none";let y=b=>{C.style.display="none",f.style.display="inline",E(b)};if(e.type==="algolia")this._algoliaIndex=this._algoliaIndex||algoliasearch(e.algoliaAppID,e.algoliaSearchKey).initIndex(e.algoliaIndex),this._algoliaIndex.search(S,{offset:0,length:i*8,attributesToHighlight:["title"],attributesToSnippet:[`content:${n}`],highlightPreTag:`<${s}>`,highlightPostTag:``}).then(({hits:b})=>{let m={};b.forEach(({uri:g,date:B,_highlightResult:{title:A},_snippetResult:{content:k}})=>{m[g]&&m[g].context.length>k.value||(m[g]={uri:g,title:A.value,date:B,context:k.value})}),y(Object.values(m).slice(0,i))}).catch(b=>{console.error(b),y([])});else if(e.type==="fuse"){let b=()=>{let m={};return window._index.search(S).forEach(({item:g,refIndex:B,matches:A})=>{let k=g.title,T=g.content;A.forEach(({indices:w,value:j,key:q})=>{if(q==="content"){let p=0;for(let u=0;u`+$+``;T=T.substring(0,w[u][0]+p)+O+T.substring(w[u][1]+1+p,T.length),p+=s.length*2+5}}else if(q==="title"){let p=0;for(let u=0;u`+$+``;k=k.substring(0,w[u][0]+p)+O+k.substring(w[u][1]+1+p,T.length),p+=s.length*2+5}}}),m[g.uri]={uri:g.uri,title:k,date:g.date,context:T}}),Object.values(m).slice(0,i)};window._index?y(b()):fetch(e.fuseIndexURL).then(m=>m.json()).then(m=>{let g={isCaseSensitive:c,findAllMatches:a,minMatchCharLength:h,location:l,threshold:d,distance:o,ignoreLocation:r,useExtendedSearch:x,ignoreFieldNorm:R,includeScore:!1,shouldSort:!0,includeMatches:!0,keys:["content","title"]};window._index=new Fuse(m,g),y(b())}).catch(m=>{console.error(m),y([])})}},templates:{suggestion:({title:S,date:E,context:y})=>`
${S}${E}
${y}
`,empty:({query:S})=>`
${e.noResultsFound}: "${S}"
`,footer:({})=>{let{searchType:S,icon:E,href:y}=e.type==="algolia"?{searchType:"algolia",icon:'',href:"https://www.algolia.com/"}:{searchType:"Fuse.js",icon:"",href:"https://fusejs.io/"};return``}}});I.on("autocomplete:selected",(S,E,y,b)=>{window.location.assign(E.uri)}),t?this._searchMobile=I:this._searchDesktop=I})()}initBreadcrumb(){let e=document.querySelector(".breadcrumb-container.sticky");this.breadcrumbHeight=e?.clientHeight??0,this.breadcrumbHeight&&document.querySelector("main.container")?.style.setProperty("--fi-breadcrumb-height",`${this.breadcrumbHeight}px`)}initDetails(){this.util.forEach(document.getElementsByClassName("details"),e=>{e.querySelector(".details-summary").addEventListener("click",()=>{e.classList.toggle("open")},!1)})}initLightGallery(){this.config.lightgallery&&lightGallery(document.getElementById("content"),{plugins:[lgThumbnail,lgZoom],selector:".lightgallery",speed:400,hideBarsDelay:2e3,allowMediaOverlap:!0,exThumbImage:"data-thumbnail",toggleThumb:!0,thumbWidth:80,thumbHeight:"60px",actualSize:!1,showZoomInOutIcons:!0,licenseKey:"none"})}initHighlight(){this.util.forEach(document.querySelectorAll(".highlight > pre.chroma"),e=>{let t=document.createElement("div");t.className=e.className;let i=document.createElement("table");t.appendChild(i);let n=document.createElement("tbody");i.appendChild(n);let s=document.createElement("tr");n.appendChild(s);let c=document.createElement("td");s.appendChild(c),e.parentElement.replaceChild(t,e),c.appendChild(e)}),this.util.forEach(document.querySelectorAll(".highlight > .chroma"),e=>{let t=e.querySelectorAll("pre.chroma > code");if(t.length){let i=t[t.length-1],n=document.createElement("div");n.className="code-header "+i.className.toLowerCase();let s=document.createElement("span");s.classList.add("code-title");let c=this.data[e.parentNode.id];s.insertAdjacentHTML("afterbegin",`${c?.title??""}`),s.addEventListener("click",()=>{e.classList.toggle("open")},!1),n.appendChild(s);let h=document.createElement("span");if(h.insertAdjacentHTML("afterbegin",''),h.classList.add("ellipses"),h.addEventListener("click",()=>{e.classList.add("open")},!1),n.appendChild(h),this.config.code.editable){let a=document.createElement("span");a.classList.add("edit"),a.insertAdjacentHTML("afterbegin",``),a.addEventListener("click",()=>{let l=a.querySelector(".fa-key"),d=a.querySelector(".fa-lock"),o=a.parentElement.parentElement.querySelectorAll("pre.chroma"),r=o.length===2?o[1]:o[0];l?(l.classList.add("fa-lock"),l.classList.remove("fa-key"),l.title=this.config.code.editLockTitle,r.setAttribute("contenteditable",!0),r.focus()):(d.classList.add("fa-key"),d.classList.remove("fa-lock"),d.title=this.config.code.editUnLockTitle,r.setAttribute("contenteditable",!1),r.blur())},!1),n.appendChild(a)}if(this.config.code.copyTitle){let a=document.createElement("span");a.insertAdjacentHTML("afterbegin",''),a.classList.add("copy");let l=i.innerText.trim();(this.config.code.maxShownLines<0||l.split(` +`).length{navigator.clipboard.writeText(l).then(()=>{this.util.animateCSS(i,"animate__flash")},()=>{console.error("Clipboard write failed!","Your browser does not support clipboard API!")})},!1),n.appendChild(a)}e.insertBefore(n,e.firstChild)}})}initTable(){this.util.forEach(document.querySelectorAll(".content table"),e=>{let t=document.createElement("div");t.className="table-wrapper",e.parentElement.replaceChild(t,e),t.appendChild(e)})}initToc(){let e=document.getElementById("TableOfContents");if(e!==null){if(typeof APlayer=="function"){let t=e.cloneNode(!0);e.parentElement.replaceChild(t,e),e=t}if(document.getElementById("toc-static").dataset.kept==="true"||this.util.isTocStatic()){let t=document.getElementById("toc-content-static");e.parentElement!==t&&(e.parentElement.removeChild(e),t.appendChild(e)),this._tocOnScroll&&this.scrollEventSet.delete(this._tocOnScroll)}else{let t=document.getElementById("toc-content-auto");e.parentElement!==t&&(e.parentElement.removeChild(e),t.appendChild(e));let i=document.getElementById("toc-auto");i.style.visibility="visible",this.util.animateCSS(i,["animate__fadeIn","animate__faster"],!0);let n=document.querySelector(".post-meta");i.style.marginTop=`${n.offsetTop+n.clientHeight}px`;let s=e.querySelectorAll("a:first-child"),c=e.getElementsByTagName("li"),h=document.getElementsByClassName("heading-element"),a=document.getElementById("header-desktop").offsetHeight;document.querySelector(".container").addEventListener("resize",()=>{i.style.marginBottom=`${document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop}px`}),this._tocOnScroll=this._tocOnScroll||(()=>{i.style.marginBottom=`${document.querySelector(".container").clientHeight-document.querySelector(".post-footer").offsetTop}px`,this.util.forEach(s,o=>{o.classList.remove("active")}),this.util.forEach(c,o=>{o.classList.remove("has-active")});let l=20+(document.body.dataset.headerDesktop!=="normal"?a:0)+this.breadcrumbHeight,d=h.length-1;for(let o=0;ol||r<=l&&x>l){d=o;break}}if(d!==-1&&s[d]){s[d].classList.add("active");let o=s[d].parentElement;for(;o!==e;)o.classList.add("has-active"),o=o.parentElement.parentElement}}),this._tocOnScroll(),this.scrollEventSet.add(this._tocOnScroll)}}}initTocListener(){let e=document.getElementById("toc-auto"),t=document.getElementById("toc-content-auto");document.querySelector("#toc-auto>.toc-title")?.addEventListener("click",()=>{let i=["animate__faster"],n=e.classList.contains("toc-hidden");i.push(n?"animate__fadeIn":"animate__fadeOut"),t.classList.remove(n?"animate__fadeOut":"animate__fadeIn"),this.util.animateCSS(t,i,!0),e.classList.toggle("toc-hidden")},!1)}initMath(){this.config.math&&renderMathInElement(document.body,this.config.math)}switchMermaidTheme(e){let t=document.getElementsByClassName("mermaid");if(t.length){let i=this.config.mermaid.themes??["default","dark","neutral"];mermaid.initialize({startOnLoad:!1,theme:e??(this.isDark?i[1]:i[0]),securityLevel:"loose"}),this.util.forEach(t,n=>{mermaid.render("svg-"+n.id,this.data[n.id],s=>{n.innerHTML=s},n)})}}initMermaid(){this.switchMermaidTheme(),this.switchThemeEventSet.add(()=>{this.switchMermaidTheme()}),this.beforeprintEventSet.add(()=>{this.switchMermaidTheme("neutral")})}initEcharts(){this.config.echarts&&(echarts.registerTheme("light",this.config.echarts.lightTheme),echarts.registerTheme("dark",this.config.echarts.darkTheme),this._echartsOnSwitchTheme=this._echartsOnSwitchTheme||(()=>{this._echartsArr=this._echartsArr||[];for(let e=0;e{let t=echarts.init(e,this.isDark?"dark":"light",{renderer:"svg"});t.setOption(JSON.parse(this.data[e.id])),this._echartsArr.push(t)})}),this.switchThemeEventSet.add(this._echartsOnSwitchTheme),this._echartsOnSwitchTheme(),this._echartsOnResize=this._echartsOnResize||(()=>{for(let e=0;e{let{lng:t,lat:i,zoom:n,lightStyle:s,darkStyle:c,marked:h,navigation:a,geolocate:l,scale:d,fullscreen:o}=this.data[e.id],r=new mapboxgl.Map({container:e,center:[t,i],zoom:n,minZoom:.2,style:this.isDark?c:s,attributionControl:!1});h&&new mapboxgl.Marker().setLngLat([t,i]).addTo(r),a&&r.addControl(new mapboxgl.NavigationControl,"bottom-right"),l&&r.addControl(new mapboxgl.GeolocateControl({positionOptions:{enableHighAccuracy:!0},showUserLocation:!0,trackUserLocation:!0}),"bottom-right"),d&&r.addControl(new mapboxgl.ScaleControl),o&&r.addControl(new mapboxgl.FullscreenControl),r.addControl(new MapboxLanguage),this._mapboxArr.push(r)}),this._mapboxOnSwitchTheme=this._mapboxOnSwitchTheme||(()=>{this.util.forEach(this._mapboxArr,e=>{let t=e.getContainer(),{lightStyle:i,darkStyle:n}=this.data[t.id];e.setStyle(this.isDark?n:i),e.addControl(new MapboxLanguage)})}),this.switchThemeEventSet.add(this._mapboxOnSwitchTheme))}initTypeit(){if(this.config.typeit){let e=this.config.typeit,t=e.speed||100,i=e.cursorSpeed||1e3,n=e.cursorChar||"|",s=e.loop??!1;Object.values(e.data).forEach(c=>{let h=a=>{let l=c[a],d=document.querySelector(`#${l}`).parentElement.dataset.loop,o=new TypeIt(`#${l}`,{strings:this.data[l],speed:t,lifeLike:!0,cursorSpeed:i,cursorChar:n,waitUntilVisible:!0,loop:d?JSON.parse(d):s,afterComplete:()=>{if(a===c.length-1){e.duration>=0&&window.setTimeout(()=>{o.destroy()},e.duration);return}o.destroy(),h(a+1)}}).go()};h(0)})}}initCommentLightGallery(e,t){document.querySelectorAll(e).forEach(i=>{let n=i.querySelectorAll(t+":not([lightgallery-loaded])");n.forEach(s=>{s.setAttribute("lightgallery-loaded","");let c=document.createElement("a");c.setAttribute("class","comment-lightgallery"),c.setAttribute("href",s.src),c.append(s.cloneNode()),s.replaceWith(c)}),n.length&&lightGallery(i,{selector:".comment-lightgallery",actualSize:!1,hideBarsDelay:2e3,speed:400})})}initComment(){if(this.config.comment?.enable){if(document.querySelector("#comments")){let e=document.querySelector(".view-comments");e.classList.remove("d-none"),e.addEventListener("click",()=>{this.util.scrollIntoView("#comments")},!1)}if(this.config.comment.expired&&document.querySelector("#comments").remove(),this.config.comment.artalk){if(this.config.comment.expired)return Artalk.LoadCountWidget({server:this.config.comment.artalk.server,site:this.config.comment.artalk.site,pvEl:this.config.comment.artalk.pvEl,countEl:this.config.comment.artalk.countEl});let e=Artalk.init(this.config.comment.artalk);return e.setDarkMode(this.isDark),this.switchThemeEventSet.add(()=>{e.setDarkMode(this.isDark)}),e.on("comments-loaded",()=>{this.config.comment.artalk.lightgallery&&this.initCommentLightGallery(".atk-comment .atk-content","img:not([atk-emoticon])")}),e}if(this.config.comment.gitalk){this.config.comment.gitalk.body=decodeURI(window.location.href);let e=new Gitalk(this.config.comment.gitalk);return e.render("gitalk"),e}if(this.config.comment.valine)return new Valine(this.config.comment.valine);if(this.config.comment.waline){if(this.config.comment.expired){this.config.comment.waline.pageview&&Waline.pageviewCount({serverURL:this.config.comment.waline.serverURL,path:window.location.pathname});return}return Waline.init(this.config.comment.waline)}if(this.config.comment.utterances){let e=this.config.comment.utterances,t=document.createElement("script");t.src="https://utteranc.es/client.js",t.setAttribute("repo",e.repo),t.setAttribute("issue-term",e.issueTerm),e.label&&t.setAttribute("label",e.label),t.setAttribute("theme",this.isDark?e.darkTheme:e.lightTheme),t.crossOrigin="anonymous",t.async=!0,document.getElementById("utterances").appendChild(t),this._utterancesOnSwitchTheme=this._utterancesOnSwitchTheme||(()=>{let i={type:"set-theme",theme:this.isDark?e.darkTheme:e.lightTheme};document.querySelector(".utterances-frame")?.contentWindow.postMessage(i,"https://utteranc.es")}),this.switchThemeEventSet.add(this._utterancesOnSwitchTheme);return}if(this.config.comment.twikoo){let e=this.config.comment.twikoo;e.lightgallery&&(e.onCommentLoaded=()=>{this.initCommentLightGallery(".tk-comments .tk-content","img:not(.tk-owo-emotion)")}),twikoo.init(e),e.commentCount&&twikoo.getCommentsCount({envId:e.envId,region:e.region,urls:[window.location.pathname],includeReply:!1}).then(function(t){let i=document.getElementById("twikoo-comment-count");i&&(i.innerHTML=t[0].count)});return}if(this.config.comment.giscus){let e=this.config.comment.giscus;this._giscusOnSwitchTheme=this._giscusOnSwitchTheme||(()=>{let t={setConfig:{theme:this.isDark?e.darkTheme:e.lightTheme}};document.querySelector(".giscus-frame")?.contentWindow.postMessage({giscus:t},"https://giscus.app")}),this.switchThemeEventSet.add(this._giscusOnSwitchTheme),this.giscus2parentMsg=window.addEventListener("message",t=>{let i=document.querySelector("#giscus>script");i&&(this._giscusOnSwitchTheme(),i.parentElement.removeChild(i))},{once:!0});return}}}initCookieconsent(){this.config.cookieconsent&&cookieconsent.initialise(this.config.cookieconsent)}getSiteTime=()=>{let e=new Date,t=new Date(this.config.siteTime),i=document.querySelector(".run-times");if(!this.util.isValidDate(t)||!i){clearInterval(this.siteTime),i&&i.parentNode.remove();return}let n=(e-t)/1e3,s=Math.floor(n/60/60/24),c=Math.floor(n/60/60-24*s),h=Math.floor(n/60-24*60*s-60*c),a=Math.floor((e-t)/1e3-24*60*60*s-60*60*c-60*h);i.innerHTML=`${s}, ${String(c).padStart(2,0)}:${String(h).padStart(2,0)}:${String(a).padStart(2,0)}`,document.querySelector(".site-time .d-none")?.classList.remove("d-none")};initSiteTime(){this.config.siteTime&&(this.siteTime=setInterval(this.getSiteTime,500),document.addEventListener("visibilitychange",()=>{if(document.hidden)return clearInterval(this.siteTime);this.siteTime=setInterval(this.getSiteTime,500)},!1))}initServiceWorker(){this.config.enablePWA&&"serviceWorker"in navigator&&(navigator.serviceWorker.register("/service-worker.min.js",{scope:"/"}).then(function(e){}).catch(function(e){console.error("error: ",e)}),navigator.serviceWorker.ready.then(function(e){}))}initWatermark(){this.config.watermark?.enable&&new Watermark({content:this.config.watermark.content||`${document.querySelector("footer .fixit-icon")?.outerHTML??""} FixIt Theme`,appendTo:".widgets",opacity:this.config.watermark.opacity,width:this.config.watermark.width,height:this.config.watermark.height,rowSpacing:this.config.watermark.rowspacing,colSpacing:this.config.watermark.colspacing,rotate:this.config.watermark.rotate,fontSize:this.config.watermark.fontsize,fontFamily:this.config.watermark.fontfamily})}initPangu(){if(!this.config.pangu?.enable)return;let e=this.config.pangu.selector;if(e){e.startsWith("#")?pangu.spacingElementById(e.slice(1)):e.startsWith(".")?pangu.spacingElementByClassName(e.slice(1)):pangu.spacingElementByTagName(e);return}pangu.autoSpacingPage()}initFixItDecryptor(){this.decryptor=new FixItDecryptor({decrypted:()=>{this.initTwemoji(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.util.forEach(document.querySelectorAll(".encrypted-hidden"),e=>{e.classList.replace("encrypted-hidden","decrypted-shown")}),this.initToc(),this.initTocListener(),this.initPangu()},reset:()=>{this.util.forEach(document.querySelectorAll(".decrypted-shown"),e=>{e.classList.replace("decrypted-shown","encrypted-hidden")})}}),this.config.encryption?.shortcode&&(this.decryptor.addEventListener("decrypted",()=>{this.decryptor.initShortcodes()}),this.decryptor.initShortcodes()),this.config.encryption?.all&&this.decryptor.init()}initMDevtools(){let e=this.config?.mDevtools;if(!(typeof window.orientation>"u")){if(e==="vConsole"){let t=new VConsole({target:".widgets",theme:this.isDark?"dark":"light"});this._vConsoleOnSwitchTheme=this._vConsoleOnSwitchTheme||(()=>{t.setOption("theme",this.isDark?"dark":"light")}),this.switchThemeEventSet.add(this._vConsoleOnSwitchTheme)}e==="eruda"&&(eruda.init({defaults:{theme:this.isDark?"Dark":"Light"}}),this._erudaOnSwitchTheme=this._erudaOnSwitchTheme||(()=>{eruda.util.evalCss.setTheme(this.isDark?"Dark":"Light")}),this.switchThemeEventSet.add(this._erudaOnSwitchTheme))}}initAutoMark(){if(!this.config.autoBookmark)return;window.addEventListener("beforeunload",()=>{window.localStorage?.setItem(`fixit-bookmark/#${location.pathname}`,this.util.getScrollTop())});let e=Number(window.localStorage?.getItem(`fixit-bookmark/#${location.pathname}`));e&&location.hash===""&&window.scrollTo({top:e,behavior:"smooth"})}initReward(){let e=document.querySelectorAll('.post-reward [data-mode="fixed"]');if(!e.length)return;if(this.util.isMobile()){this.util.forEach(e,i=>{i.removeAttribute("data-mode")});return}let t=i=>{this.util.forEach(e,n=>{let s=n.parentElement.querySelector(".reward-input");s.id!==i&&(s.checked=!1)})};this.util.forEach(e,i=>{i.previousElementSibling.addEventListener("click",function(){t(this.getAttribute("for"))},!1)}),this.scrollEventSet.add(t)}onScroll(){let e=[],i=document.querySelector(".fixed-buttons"),n=document.querySelector(".back-to-top"),s=document.querySelector(".reading-progress-bar"),c;document.body.dataset.headerDesktop==="auto"&&e.push(document.getElementById("header-desktop")),document.body.dataset.headerMobile==="auto"&&e.push(document.getElementById("header-mobile")),n?.addEventListener("click",()=>{this.util.scrollIntoView("body")}),window.addEventListener("scroll",h=>{if(this.disableScrollEvent){h.preventDefault();return}let a=document.getElementById("mask");this.newScrollTop=this.util.getScrollTop();let l=this.newScrollTop-this.oldScrollTop;document.body.toggleAttribute("data-scroll",!0),c&&window.clearTimeout(c),c=window.setTimeout(()=>{document.body.toggleAttribute("data-scroll")},500),this.util.forEach(e,r=>{l>20?(r.classList.remove("animate__fadeInDown"),this.util.animateCSS(r,["animate__fadeOutUp"],!0),a.click()):l<-20&&(r.classList.remove("animate__fadeOutUp"),this.util.animateCSS(r,["animate__fadeInDown"],!0),a.click())});let d=document.body.scrollHeight-window.innerHeight,o=Math.max(Math.min(100*Math.max(this.newScrollTop,0)/d,100),0);s&&s.style.setProperty("--progress",`${o.toFixed(2)}%`),i&&(o>1?(i.classList.remove("d-none","animate__fadeOut"),this.util.animateCSS(i,["animate__fadeIn"],!0)):(i.classList.remove("animate__fadeIn"),this.util.animateCSS(i,["animate__fadeOut"],!0,()=>{i.classList.contains("animate__fadeOut")&&i.classList.add("d-none")})),n&&(n.querySelector("span").innerText=`${Math.round(o)}%`));for(let r of this.scrollEventSet)r();this.oldScrollTop=this.newScrollTop},!1)}onResize(){let e=this.util.isMobile();window.addEventListener("resize",()=>{this._resizeTimeout||(this._resizeTimeout=window.setTimeout(()=>{this._resizeTimeout=null;for(let i of this.resizeEventSet)i();this.initToc(),this.switchMermaidTheme(),this.initSearch();let t=this.util.isMobile();t!==e&&(document.getElementById("mask").click(),e=t)},100))},!1)}onClickMask(){document.getElementById("mask").addEventListener("click",()=>{if(document.body.classList.contains("blur")){for(let e of this.clickMaskEventSet)e();this.disableScrollEvent=!1,document.body.classList.remove("blur")}},!1)}beforeprint(){window.addEventListener("beforeprint",()=>{this.util.forEach(document.querySelectorAll(".chroma"),e=>{e.classList.toggle("open",!0)});for(let e of this.beforeprintEventSet)e()},!1)}init(){try{this.config.encryption?this.initFixItDecryptor():this.config.encryption?.all||(this.initTwemoji(),this.initDetails(),this.initLightGallery(),this.initHighlight(),this.initTable(),this.initMath(),this.initMermaid(),this.initEcharts(),this.initTypeit(),this.initMapbox(),this.initPangu()),this.initThemeColor(),this.initSVGIcon(),this.initMenu(),this.initSwitchTheme(),this.initSearch(),this.initBreadcrumb(),this.initCookieconsent(),this.initSiteTime(),this.initServiceWorker(),this.initWatermark(),this.initMDevtools(),this.initAutoMark(),this.initReward(),window.setTimeout(()=>{this.initComment(),this.config.encryption?.all||(this.initToc(),this.initTocListener()),this.onScroll(),this.onResize(),this.onClickMask(),this.beforeprint()},100)}catch(e){console.error(e)}}},N=()=>{window.fixit=new D,window.fixit.init()};document.readyState!=="loading"?N():document.addEventListener("DOMContentLoaded",N,!1);})(); diff --git a/lib/fontawesome-free/all.min.css b/lib/fontawesome-free/all.min.css index 5dddbd50c..d949e4f28 100644 --- a/lib/fontawesome-free/all.min.css +++ b/lib/fontawesome-free/all.min.css @@ -1,6 +1,9 @@ /*! - * Font Awesome Free 6.2.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2022 Fonticons, Inc. + * Copyright 2023 Fonticons, Inc. */ -.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-child-rifle:before{content:"\e4e0"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file +.fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-classic,.fa-regular,.fa-sharp,.fa-solid,.fab,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-classic,.fa-regular,.fa-solid,.far,.fas{font-family:"Font Awesome 6 Free"}.fa-brands,.fab{font-family:"Font Awesome 6 Brands"}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)} + +.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-fill-drip:before{content:"\f576"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-at:before{content:"\40"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-text-height:before{content:"\f034"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-stethoscope:before{content:"\f0f1"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-info:before{content:"\f129"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-explosion:before{content:"\e4e9"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-wave-square:before{content:"\f83e"}.fa-ring:before{content:"\f70b"}.fa-building-un:before{content:"\e4d9"}.fa-dice-three:before{content:"\f527"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-door-open:before{content:"\f52b"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-atom:before{content:"\f5d2"}.fa-soap:before{content:"\e06e"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-pump-medical:before{content:"\e06a"}.fa-fingerprint:before{content:"\f577"}.fa-hand-point-right:before{content:"\f0a4"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-flag-checkered:before{content:"\f11e"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-crop:before{content:"\f125"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-users-rectangle:before{content:"\e594"}.fa-people-roof:before{content:"\e537"}.fa-people-line:before{content:"\e534"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-diagram-predecessor:before{content:"\e477"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-laptop:before{content:"\f109"}.fa-file-csv:before{content:"\f6dd"}.fa-menorah:before{content:"\f676"}.fa-truck-plane:before{content:"\e58f"}.fa-record-vinyl:before{content:"\f8d9"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-bong:before{content:"\f55c"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-jar-wheat:before{content:"\e517"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-pager:before{content:"\f815"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-strikethrough:before{content:"\f0cc"}.fa-k:before{content:"\4b"}.fa-landmark-flag:before{content:"\e51c"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-backward:before{content:"\f04a"}.fa-caret-right:before{content:"\f0da"}.fa-comments:before{content:"\f086"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-code-pull-request:before{content:"\e13c"}.fa-clipboard-list:before{content:"\f46d"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-user-check:before{content:"\f4fc"}.fa-vial-virus:before{content:"\e597"}.fa-sheet-plastic:before{content:"\e571"}.fa-blog:before{content:"\f781"}.fa-user-ninja:before{content:"\f504"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-toggle-off:before{content:"\f204"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-person-drowning:before{content:"\e545"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-spray-can:before{content:"\f5bd"}.fa-truck-monster:before{content:"\f63b"}.fa-w:before{content:"\57"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-rainbow:before{content:"\f75b"}.fa-circle-notch:before{content:"\f1ce"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-paw:before{content:"\f1b0"}.fa-cloud:before{content:"\f0c2"}.fa-trowel-bricks:before{content:"\e58a"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-hospital-user:before{content:"\f80d"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-binoculars:before{content:"\f1e5"}.fa-microphone-slash:before{content:"\f131"}.fa-box-tissue:before{content:"\e05b"}.fa-motorcycle:before{content:"\f21c"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-toilets-portable:before{content:"\e584"}.fa-hockey-puck:before{content:"\f453"}.fa-table:before{content:"\f0ce"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-users-slash:before{content:"\e073"}.fa-clover:before{content:"\e139"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-star-and-crescent:before{content:"\f699"}.fa-house-fire:before{content:"\e50c"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-helicopter:before{content:"\f533"}.fa-compass:before{content:"\f14e"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-file-circle-question:before{content:"\e4ef"}.fa-laptop-code:before{content:"\f5fc"}.fa-swatchbook:before{content:"\f5c3"}.fa-prescription-bottle:before{content:"\f485"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-people-group:before{content:"\e533"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-film:before{content:"\f008"}.fa-ruler-horizontal:before{content:"\f547"}.fa-people-robbery:before{content:"\e536"}.fa-lightbulb:before{content:"\f0eb"}.fa-caret-left:before{content:"\f0d9"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-sitemap:before{content:"\f0e8"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-memory:before{content:"\f538"}.fa-road-spikes:before{content:"\e568"}.fa-fire-burner:before{content:"\e4f1"}.fa-flag:before{content:"\f024"}.fa-hanukiah:before{content:"\f6e6"}.fa-feather:before{content:"\f52d"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-comment-slash:before{content:"\f4b3"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-compress:before{content:"\f066"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-ankh:before{content:"\f644"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-asterisk:before{content:"\2a"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-peseta-sign:before{content:"\e221"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-ghost:before{content:"\f6e2"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-cart-plus:before{content:"\f217"}.fa-gamepad:before{content:"\f11b"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-egg:before{content:"\f7fb"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-campground:before{content:"\f6bb"}.fa-folder-plus:before{content:"\f65e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-lock:before{content:"\f023"}.fa-gas-pump:before{content:"\f52f"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-house-flood-water:before{content:"\e50e"}.fa-tree:before{content:"\f1bb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-sack-dollar:before{content:"\f81d"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-car-side:before{content:"\f5e4"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-microscope:before{content:"\f610"}.fa-sink:before{content:"\e06d"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-mitten:before{content:"\f7b5"}.fa-person-rays:before{content:"\e54d"}.fa-users:before{content:"\f0c0"}.fa-eye-slash:before{content:"\f070"}.fa-flask-vial:before{content:"\e4f3"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-om:before{content:"\f679"}.fa-worm:before{content:"\e599"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-plug:before{content:"\f1e6"}.fa-chevron-up:before{content:"\f077"}.fa-hand-spock:before{content:"\f259"}.fa-stopwatch:before{content:"\f2f2"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-chess-bishop:before{content:"\f43a"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-road-circle-check:before{content:"\e564"}.fa-dice-five:before{content:"\f523"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-land-mine-on:before{content:"\e51b"}.fa-i-cursor:before{content:"\f246"}.fa-stamp:before{content:"\f5bf"}.fa-stairs:before{content:"\e289"}.fa-i:before{content:"\49"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-pills:before{content:"\f484"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-tooth:before{content:"\f5c9"}.fa-v:before{content:"\56"}.fa-bangladeshi-taka-sign:before{content:"\e2e6"}.fa-bicycle:before{content:"\f206"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-snowman:before{content:"\f7d0"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-road-barrier:before{content:"\e562"}.fa-school:before{content:"\f549"}.fa-igloo:before{content:"\f7ae"}.fa-joint:before{content:"\f595"}.fa-angle-right:before{content:"\f105"}.fa-horse:before{content:"\f6f0"}.fa-q:before{content:"\51"}.fa-g:before{content:"\47"}.fa-notes-medical:before{content:"\f481"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-dong-sign:before{content:"\e169"}.fa-capsules:before{content:"\f46b"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-hand-point-up:before{content:"\f0a6"}.fa-money-bill:before{content:"\f0d6"}.fa-bookmark:before{content:"\f02e"}.fa-align-justify:before{content:"\f039"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-helmet-un:before{content:"\e503"}.fa-bullseye:before{content:"\f140"}.fa-bacon:before{content:"\f7e5"}.fa-hand-point-down:before{content:"\f0a7"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-radiation:before{content:"\f7b9"}.fa-chart-simple:before{content:"\e473"}.fa-mars-stroke:before{content:"\f229"}.fa-vial:before{content:"\f492"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-e:before{content:"\45"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-user:before{content:"\f007"}.fa-school-circle-check:before{content:"\e56b"}.fa-dumpster:before{content:"\f793"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-building-user:before{content:"\e4da"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-highlighter:before{content:"\f591"}.fa-key:before{content:"\f084"}.fa-bullhorn:before{content:"\f0a1"}.fa-globe:before{content:"\f0ac"}.fa-synagogue:before{content:"\f69b"}.fa-person-half-dress:before{content:"\e548"}.fa-road-bridge:before{content:"\e563"}.fa-location-arrow:before{content:"\f124"}.fa-c:before{content:"\43"}.fa-tablet-button:before{content:"\f10a"}.fa-building-lock:before{content:"\e4d6"}.fa-pizza-slice:before{content:"\f818"}.fa-money-bill-wave:before{content:"\f53a"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-house-flag:before{content:"\e50d"}.fa-person-circle-minus:before{content:"\e540"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-camera-rotate:before{content:"\e0d8"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-star:before{content:"\f005"}.fa-repeat:before{content:"\f363"}.fa-cross:before{content:"\f654"}.fa-box:before{content:"\f466"}.fa-venus-mars:before{content:"\f228"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-charging-station:before{content:"\f5e7"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-mobile-retro:before{content:"\e527"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-spider:before{content:"\f717"}.fa-hands-bound:before{content:"\e4f9"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-x-ray:before{content:"\f497"}.fa-spell-check:before{content:"\f891"}.fa-slash:before{content:"\f715"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-server:before{content:"\f233"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-shop-lock:before{content:"\e4a5"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-blender-phone:before{content:"\f6b6"}.fa-building-wheat:before{content:"\e4db"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-venus:before{content:"\f221"}.fa-passport:before{content:"\f5ab"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-temperature-high:before{content:"\f769"}.fa-microchip:before{content:"\f2db"}.fa-crown:before{content:"\f521"}.fa-weight-hanging:before{content:"\f5cd"}.fa-xmarks-lines:before{content:"\e59a"}.fa-file-prescription:before{content:"\f572"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-chess-knight:before{content:"\f441"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-wheelchair:before{content:"\f193"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-toggle-on:before{content:"\f205"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-l:before{content:"\4c"}.fa-fire:before{content:"\f06d"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-folder-open:before{content:"\f07c"}.fa-heart-circle-plus:before{content:"\e500"}.fa-code-fork:before{content:"\e13b"}.fa-city:before{content:"\f64f"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-pepper-hot:before{content:"\f816"}.fa-unlock:before{content:"\f09c"}.fa-colon-sign:before{content:"\e140"}.fa-headset:before{content:"\f590"}.fa-store-slash:before{content:"\e071"}.fa-road-circle-xmark:before{content:"\e566"}.fa-user-minus:before{content:"\f503"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-clipboard:before{content:"\f328"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-underline:before{content:"\f0cd"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-signature:before{content:"\f5b7"}.fa-stroopwafel:before{content:"\f551"}.fa-bold:before{content:"\f032"}.fa-anchor-lock:before{content:"\e4ad"}.fa-building-ngo:before{content:"\e4d7"}.fa-manat-sign:before{content:"\e1d5"}.fa-not-equal:before{content:"\f53e"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-jedi:before{content:"\f669"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-mug-hot:before{content:"\f7b6"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-gift:before{content:"\f06b"}.fa-dice-two:before{content:"\f528"}.fa-chess-queen:before{content:"\f445"}.fa-glasses:before{content:"\f530"}.fa-chess-board:before{content:"\f43c"}.fa-building-circle-check:before{content:"\e4d2"}.fa-person-chalkboard:before{content:"\e53d"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-less-than-equal:before{content:"\f537"}.fa-train:before{content:"\f238"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-crow:before{content:"\f520"}.fa-sailboat:before{content:"\e445"}.fa-window-restore:before{content:"\f2d2"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-torii-gate:before{content:"\f6a1"}.fa-frog:before{content:"\f52e"}.fa-bucket:before{content:"\e4cf"}.fa-image:before{content:"\f03e"}.fa-microphone:before{content:"\f130"}.fa-cow:before{content:"\f6c8"}.fa-caret-up:before{content:"\f0d8"}.fa-screwdriver:before{content:"\f54a"}.fa-folder-closed:before{content:"\e185"}.fa-house-tsunami:before{content:"\e515"}.fa-square-nfi:before{content:"\e576"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-lemon:before{content:"\f094"}.fa-head-side-mask:before{content:"\e063"}.fa-handshake:before{content:"\f2b5"}.fa-gem:before{content:"\f3a5"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-smoking:before{content:"\f48d"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-monument:before{content:"\f5a6"}.fa-snowplow:before{content:"\f7d2"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-cannabis:before{content:"\f55f"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-tablets:before{content:"\f490"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-chair:before{content:"\f6c0"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-plate-wheat:before{content:"\e55a"}.fa-icicles:before{content:"\f7ad"}.fa-person-shelter:before{content:"\e54f"}.fa-neuter:before{content:"\f22c"}.fa-id-badge:before{content:"\f2c1"}.fa-marker:before{content:"\f5a1"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-helicopter-symbol:before{content:"\e502"}.fa-universal-access:before{content:"\f29a"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-lari-sign:before{content:"\e1c8"}.fa-volcano:before{content:"\f770"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-viruses:before{content:"\e076"}.fa-square-person-confined:before{content:"\e577"}.fa-user-tie:before{content:"\f508"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-certificate:before{content:"\f0a3"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-suitcase:before{content:"\f0f2"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-camera-retro:before{content:"\f083"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-box-open:before{content:"\f49e"}.fa-scroll:before{content:"\f70e"}.fa-spa:before{content:"\f5bb"}.fa-location-pin-lock:before{content:"\e51f"}.fa-pause:before{content:"\f04c"}.fa-hill-avalanche:before{content:"\e507"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-bomb:before{content:"\f1e2"}.fa-registered:before{content:"\f25d"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-subscript:before{content:"\f12c"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-burst:before{content:"\e4dc"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-money-bills:before{content:"\e1f3"}.fa-smog:before{content:"\f75f"}.fa-crutch:before{content:"\f7f7"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-palette:before{content:"\f53f"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-vest:before{content:"\e085"}.fa-ferry:before{content:"\e4ea"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-boxes-packing:before{content:"\e4c7"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-bowl-food:before{content:"\e4c6"}.fa-candy-cane:before{content:"\f786"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-file-word:before{content:"\f1c2"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-house-lock:before{content:"\e510"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-children:before{content:"\e4e1"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-envelope-open:before{content:"\f2b6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-mattress-pillow:before{content:"\e525"}.fa-guarani-sign:before{content:"\e19a"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-fire-extinguisher:before{content:"\f134"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-greater-than-equal:before{content:"\f532"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-virus:before{content:"\e074"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-layer-group:before{content:"\f5fd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-archway:before{content:"\f557"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-square:before{content:"\f0c8"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-couch:before{content:"\f4b8"}.fa-cedi-sign:before{content:"\e0df"}.fa-italic:before{content:"\f033"}.fa-church:before{content:"\f51d"}.fa-comments-dollar:before{content:"\f653"}.fa-democrat:before{content:"\f747"}.fa-z:before{content:"\5a"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-road-lock:before{content:"\e567"}.fa-a:before{content:"\41"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-p:before{content:"\50"}.fa-snowflake:before{content:"\f2dc"}.fa-newspaper:before{content:"\f1ea"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-locust:before{content:"\e520"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-person-dress-burst:before{content:"\e544"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-vector-square:before{content:"\f5cb"}.fa-bread-slice:before{content:"\f7ec"}.fa-language:before{content:"\f1ab"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-filter:before{content:"\f0b0"}.fa-question:before{content:"\3f"}.fa-file-signature:before{content:"\f573"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-house-chimney-user:before{content:"\e065"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-puzzle-piece:before{content:"\f12e"}.fa-money-check:before{content:"\f53c"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-code:before{content:"\f121"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-virus-covid:before{content:"\e4a8"}.fa-austral-sign:before{content:"\e0a9"}.fa-f:before{content:"\46"}.fa-leaf:before{content:"\f06c"}.fa-road:before{content:"\f018"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-person-circle-plus:before{content:"\e541"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-sack-xmark:before{content:"\e56a"}.fa-file-excel:before{content:"\f1c3"}.fa-file-contract:before{content:"\f56c"}.fa-fish-fins:before{content:"\e4f2"}.fa-building-flag:before{content:"\e4d5"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-object-ungroup:before{content:"\f248"}.fa-poop:before{content:"\f619"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-kaaba:before{content:"\f66b"}.fa-toilet-paper:before{content:"\f71e"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-eject:before{content:"\f052"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-plane-circle-check:before{content:"\e555"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-object-group:before{content:"\f247"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-mask-ventilator:before{content:"\e524"}.fa-arrow-right:before{content:"\f061"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-cash-register:before{content:"\f788"}.fa-person-circle-question:before{content:"\e542"}.fa-h:before{content:"\48"}.fa-tarp:before{content:"\e57b"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-heart:before{content:"\f004"}.fa-mars-and-venus:before{content:"\f224"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-dumpster-fire:before{content:"\f794"}.fa-house-crack:before{content:"\e3b1"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-bottle-water:before{content:"\e4c5"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-kitchen-set:before{content:"\e51a"}.fa-r:before{content:"\52"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-cube:before{content:"\f1b2"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-shield-dog:before{content:"\e573"}.fa-solar-panel:before{content:"\f5ba"}.fa-lock-open:before{content:"\f3c1"}.fa-elevator:before{content:"\e16d"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-circle:before{content:"\f111"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-recycle:before{content:"\f1b8"}.fa-user-astronaut:before{content:"\f4fb"}.fa-plane-slash:before{content:"\e069"}.fa-trademark:before{content:"\f25c"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-satellite-dish:before{content:"\f7c0"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-users-rays:before{content:"\e593"}.fa-wallet:before{content:"\f555"}.fa-clipboard-check:before{content:"\f46c"}.fa-file-audio:before{content:"\f1c7"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-wrench:before{content:"\f0ad"}.fa-bugs:before{content:"\e4d0"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-file-image:before{content:"\f1c5"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-plane-departure:before{content:"\f5b0"}.fa-handshake-slash:before{content:"\e060"}.fa-book-bookmark:before{content:"\e0bb"}.fa-code-branch:before{content:"\f126"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-bridge:before{content:"\e4c8"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-truck-front:before{content:"\e2b7"}.fa-cat:before{content:"\f6be"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-truck-field:before{content:"\e58d"}.fa-route:before{content:"\f4d7"}.fa-clipboard-question:before{content:"\e4e3"}.fa-panorama:before{content:"\e209"}.fa-comment-medical:before{content:"\f7f5"}.fa-teeth-open:before{content:"\f62f"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-tags:before{content:"\f02c"}.fa-wine-glass:before{content:"\f4e3"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-house-signal:before{content:"\e012"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-faucet-drip:before{content:"\e006"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-terminal:before{content:"\f120"}.fa-mobile-button:before{content:"\f10b"}.fa-house-medical-flag:before{content:"\e514"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-tape:before{content:"\f4db"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-eye:before{content:"\f06e"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-audio-description:before{content:"\f29e"}.fa-person-military-to-person:before{content:"\e54c"}.fa-file-shield:before{content:"\e4f0"}.fa-user-slash:before{content:"\f506"}.fa-pen:before{content:"\f304"}.fa-tower-observation:before{content:"\e586"}.fa-file-code:before{content:"\f1c9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-bus:before{content:"\f207"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-window-maximize:before{content:"\f2d0"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-prescription:before{content:"\f5b1"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-vihara:before{content:"\f6a7"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-plant-wilt:before{content:"\e5aa"}.fa-diamond:before{content:"\f219"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-bacterium:before{content:"\e05a"}.fa-hand-pointer:before{content:"\f25a"}.fa-drum-steelpan:before{content:"\f56a"}.fa-hand-scissors:before{content:"\f257"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-biohazard:before{content:"\f780"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-mars-double:before{content:"\f227"}.fa-child-dress:before{content:"\e59c"}.fa-users-between-lines:before{content:"\e591"}.fa-lungs-virus:before{content:"\e067"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-phone:before{content:"\f095"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-child-reaching:before{content:"\e59d"}.fa-head-side-virus:before{content:"\e064"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-door-closed:before{content:"\f52a"}.fa-shield-virus:before{content:"\e06c"}.fa-dice-six:before{content:"\f526"}.fa-mosquito-net:before{content:"\e52c"}.fa-bridge-water:before{content:"\e4ce"}.fa-person-booth:before{content:"\f756"}.fa-text-width:before{content:"\f035"}.fa-hat-wizard:before{content:"\f6e8"}.fa-pen-fancy:before{content:"\f5ac"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-trash:before{content:"\f1f8"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-book-medical:before{content:"\f7e6"}.fa-poo:before{content:"\f2fe"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-cubes:before{content:"\f1b3"}.fa-divide:before{content:"\f529"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-headphones:before{content:"\f025"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-clapping:before{content:"\e1a8"}.fa-republican:before{content:"\f75e"}.fa-arrow-left:before{content:"\f060"}.fa-person-circle-xmark:before{content:"\e543"}.fa-ruler:before{content:"\f545"}.fa-align-left:before{content:"\f036"}.fa-dice-d6:before{content:"\f6d1"}.fa-restroom:before{content:"\f7bd"}.fa-j:before{content:"\4a"}.fa-users-viewfinder:before{content:"\e595"}.fa-file-video:before{content:"\f1c8"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-file-pdf:before{content:"\f1c1"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-o:before{content:"\4f"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-user-secret:before{content:"\f21b"}.fa-otter:before{content:"\f700"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-comment-dollar:before{content:"\f651"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-book-tanakh:before,.fa-tanakh:before{content:"\f827"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-clipboard-user:before{content:"\f7f3"}.fa-child:before{content:"\f1ae"}.fa-lira-sign:before{content:"\f195"}.fa-satellite:before{content:"\f7bf"}.fa-plane-lock:before{content:"\e558"}.fa-tag:before{content:"\f02b"}.fa-comment:before{content:"\f075"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-envelope:before{content:"\f0e0"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-paperclip:before{content:"\f0c6"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-ribbon:before{content:"\f4d6"}.fa-lungs:before{content:"\f604"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-border-none:before{content:"\f850"}.fa-circle-nodes:before{content:"\e4e2"}.fa-parachute-box:before{content:"\f4cd"}.fa-indent:before{content:"\f03c"}.fa-truck-field-un:before{content:"\e58e"}.fa-hourglass-empty:before,.fa-hourglass:before{content:"\f254"}.fa-mountain:before{content:"\f6fc"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-cloud-meatball:before{content:"\f73b"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-square-virus:before{content:"\e578"}.fa-meteor:before{content:"\f753"}.fa-car-on:before{content:"\e4dd"}.fa-sleigh:before{content:"\f7cc"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-water:before{content:"\f773"}.fa-calendar-check:before{content:"\f274"}.fa-braille:before{content:"\f2a1"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-landmark:before{content:"\f66f"}.fa-truck:before{content:"\f0d1"}.fa-crosshairs:before{content:"\f05b"}.fa-person-cane:before{content:"\e53c"}.fa-tent:before{content:"\e57d"}.fa-vest-patches:before{content:"\e086"}.fa-check-double:before{content:"\f560"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-cookie:before{content:"\f563"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-dumbbell:before{content:"\f44b"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-tarp-droplet:before{content:"\e57c"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-calendar-plus:before{content:"\f271"}.fa-plane-arrival:before{content:"\f5af"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-chart-gantt:before{content:"\e0e4"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-dna:before{content:"\f471"}.fa-virus-slash:before{content:"\e075"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-chess:before{content:"\f439"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-plug-circle-check:before{content:"\e55c"}.fa-street-view:before{content:"\f21d"}.fa-franc-sign:before{content:"\e18f"}.fa-volume-off:before{content:"\f026"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-star-of-david:before{content:"\f69a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-vials:before{content:"\f493"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-place-of-worship:before{content:"\f67f"}.fa-grip-vertical:before{content:"\f58e"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-u:before{content:"\55"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-pallet:before{content:"\f482"}.fa-faucet:before{content:"\e005"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-s:before{content:"\53"}.fa-timeline:before{content:"\e29c"}.fa-keyboard:before{content:"\f11c"}.fa-caret-down:before{content:"\f0d7"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-plane-up:before{content:"\e22d"}.fa-piggy-bank:before{content:"\f4d3"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-mountain-city:before{content:"\e52e"}.fa-coins:before{content:"\f51e"}.fa-khanda:before{content:"\f66d"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-folder-tree:before{content:"\f802"}.fa-network-wired:before{content:"\f6ff"}.fa-map-pin:before{content:"\f276"}.fa-hamsa:before{content:"\f665"}.fa-cent-sign:before{content:"\e3f5"}.fa-flask:before{content:"\f0c3"}.fa-person-pregnant:before{content:"\e31e"}.fa-wand-sparkles:before{content:"\f72b"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-ticket:before{content:"\f145"}.fa-power-off:before{content:"\f011"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-flag-usa:before{content:"\f74d"}.fa-laptop-file:before{content:"\e51d"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-diagram-next:before{content:"\e476"}.fa-person-rifle:before{content:"\e54e"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-closed-captioning:before{content:"\f20a"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-venus-double:before{content:"\f226"}.fa-images:before{content:"\f302"}.fa-calculator:before{content:"\f1ec"}.fa-people-pulling:before{content:"\e535"}.fa-n:before{content:"\4e"}.fa-cable-car:before,.fa-tram:before{content:"\f7da"}.fa-cloud-rain:before{content:"\f73d"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-ship:before{content:"\f21a"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-download:before{content:"\f019"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-file-circle-check:before{content:"\e5a0"}.fa-forward:before{content:"\f04e"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-align-center:before{content:"\f037"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-calendar-week:before{content:"\f784"}.fa-laptop-medical:before{content:"\f812"}.fa-b:before{content:"\42"}.fa-file-medical:before{content:"\f477"}.fa-dice-one:before{content:"\f525"}.fa-kiwi-bird:before{content:"\f535"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-mill-sign:before{content:"\e1ed"}.fa-bowl-rice:before{content:"\e2eb"}.fa-skull:before{content:"\f54c"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-truck-pickup:before{content:"\f63c"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-stop:before{content:"\f04d"}.fa-code-merge:before{content:"\f387"}.fa-upload:before{content:"\f093"}.fa-hurricane:before{content:"\f751"}.fa-mound:before{content:"\e52d"}.fa-toilet-portable:before{content:"\e583"}.fa-compact-disc:before{content:"\f51f"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-caravan:before{content:"\f8ff"}.fa-shield-cat:before{content:"\e572"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-glass-water:before{content:"\e4f4"}.fa-oil-well:before{content:"\e532"}.fa-vault:before{content:"\e2c5"}.fa-mars:before{content:"\f222"}.fa-toilet:before{content:"\f7d8"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-sun:before{content:"\f185"}.fa-guitar:before{content:"\f7a6"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-horse-head:before{content:"\f7ab"}.fa-bore-hole:before{content:"\e4c3"}.fa-industry:before{content:"\f275"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-florin-sign:before{content:"\e184"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-less-than:before{content:"\3c"}.fa-angle-down:before{content:"\f107"}.fa-car-tunnel:before{content:"\e4de"}.fa-head-side-cough:before{content:"\e061"}.fa-grip-lines:before{content:"\f7a4"}.fa-thumbs-down:before{content:"\f165"}.fa-user-lock:before{content:"\f502"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-chess-pawn:before{content:"\f443"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-person-through-window:before{content:"\e5a9"}.fa-toolbox:before{content:"\f552"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-bug:before{content:"\f188"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-mountain-sun:before{content:"\e52f"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-dice-d20:before{content:"\f6cf"}.fa-truck-droplet:before{content:"\e58c"}.fa-file-circle-xmark:before{content:"\e5a1"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-medal:before{content:"\f5a2"}.fa-bed:before{content:"\f236"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-podcast:before{content:"\f2ce"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-bell:before{content:"\f0f3"}.fa-superscript:before{content:"\f12b"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-star-of-life:before{content:"\f621"}.fa-phone-slash:before{content:"\f3dd"}.fa-paint-roller:before{content:"\f5aa"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-file:before{content:"\f15b"}.fa-greater-than:before{content:"\3e"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-arrow-down:before{content:"\f063"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-eraser:before{content:"\f12d"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-person-burst:before{content:"\e53b"}.fa-dove:before{content:"\f4ba"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-socks:before{content:"\f696"}.fa-inbox:before{content:"\f01c"}.fa-section:before{content:"\e447"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-envelope-open-text:before{content:"\f658"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-wine-bottle:before{content:"\f72f"}.fa-chess-rook:before{content:"\f447"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-dharmachakra:before{content:"\f655"}.fa-hotdog:before{content:"\f80f"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-drum:before{content:"\f569"}.fa-ice-cream:before{content:"\f810"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-fax:before{content:"\f1ac"}.fa-paragraph:before{content:"\f1dd"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-star-half:before{content:"\f089"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-tree-city:before{content:"\e587"}.fa-play:before{content:"\f04b"}.fa-font:before{content:"\f031"}.fa-rupiah-sign:before{content:"\e23d"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-naira-sign:before{content:"\e1f6"}.fa-cart-arrow-down:before{content:"\f218"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-receipt:before{content:"\f543"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-chevron-down:before{content:"\f078"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-skull-crossbones:before{content:"\f714"}.fa-code-compare:before{content:"\e13a"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-school-lock:before{content:"\e56f"}.fa-tower-cell:before{content:"\e585"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-ranking-star:before{content:"\e561"}.fa-chess-king:before{content:"\f43f"}.fa-person-harassing:before{content:"\e549"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-arrow-up:before{content:"\f062"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-shrimp:before{content:"\e448"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-jug-detergent:before{content:"\e519"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-user-shield:before{content:"\f505"}.fa-wind:before{content:"\f72e"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-y:before{content:"\59"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-fish:before{content:"\f578"}.fa-user-graduate:before{content:"\f501"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-clapperboard:before{content:"\e131"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-jet-fighter-up:before{content:"\e518"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-copy:before{content:"\f0c5"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-hand-sparkles:before{content:"\e05d"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-child-combatant:before,.fa-child-rifle:before{content:"\e4e0"}.fa-gun:before{content:"\e19b"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-expand:before{content:"\f065"}.fa-computer:before{content:"\e4e5"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-peso-sign:before{content:"\e222"}.fa-building-shield:before{content:"\e4d8"}.fa-baby:before{content:"\f77c"}.fa-users-line:before{content:"\e592"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-tractor:before{content:"\f722"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-lines-leaning:before{content:"\e51e"}.fa-ruler-combined:before{content:"\f546"}.fa-copyright:before{content:"\f1f9"}.fa-equals:before{content:"\3d"}.fa-blender:before{content:"\f517"}.fa-teeth:before{content:"\f62e"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-map:before{content:"\f279"}.fa-rocket:before{content:"\f135"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-folder-minus:before{content:"\f65d"}.fa-store:before{content:"\f54e"}.fa-arrow-trend-up:before{content:"\e098"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-bezier-curve:before{content:"\f55b"}.fa-bell-slash:before{content:"\f1f6"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-school-flag:before{content:"\e56e"}.fa-fill:before{content:"\f575"}.fa-angle-up:before{content:"\f106"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-holly-berry:before{content:"\f7aa"}.fa-chevron-left:before{content:"\f053"}.fa-bacteria:before{content:"\e059"}.fa-hand-lizard:before{content:"\f258"}.fa-notdef:before{content:"\e1fe"}.fa-disease:before{content:"\f7fa"}.fa-briefcase-medical:before{content:"\f469"}.fa-genderless:before{content:"\f22d"}.fa-chevron-right:before{content:"\f054"}.fa-retweet:before{content:"\f079"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-pump-soap:before{content:"\e06b"}.fa-video-slash:before{content:"\f4e2"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-radio:before{content:"\f8d7"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-traffic-light:before{content:"\f637"}.fa-thermometer:before{content:"\f491"}.fa-vr-cardboard:before{content:"\f729"}.fa-hand-middle-finger:before{content:"\f806"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-truck-moving:before{content:"\f4df"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-display:before{content:"\e163"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-trophy:before{content:"\f091"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-hammer:before{content:"\f6e3"}.fa-hand-peace:before{content:"\f25b"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-spinner:before{content:"\f110"}.fa-robot:before{content:"\f544"}.fa-peace:before{content:"\f67c"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-warehouse:before{content:"\f494"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-splotch:before{content:"\f5bc"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-dice-four:before{content:"\f524"}.fa-sim-card:before{content:"\f7c4"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-mercury:before{content:"\f223"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-person-falling-burst:before{content:"\e547"}.fa-award:before{content:"\f559"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-building:before{content:"\f1ad"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-qrcode:before{content:"\f029"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-house-medical:before{content:"\e3b2"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-house-chimney-window:before{content:"\e00d"}.fa-pen-nib:before{content:"\f5ad"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tents:before{content:"\e582"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-dog:before{content:"\f6d3"}.fa-carrot:before{content:"\f787"}.fa-moon:before{content:"\f186"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-cheese:before{content:"\f7ef"}.fa-yin-yang:before{content:"\f6ad"}.fa-music:before{content:"\f001"}.fa-code-commit:before{content:"\f386"}.fa-temperature-low:before{content:"\f76b"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-broom:before{content:"\f51a"}.fa-shield-heart:before{content:"\e574"}.fa-gopuram:before{content:"\f664"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-hashtag:before{content:"\23"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-oil-can:before{content:"\f613"}.fa-t:before{content:"\54"}.fa-hippo:before{content:"\f6ed"}.fa-chart-column:before{content:"\e0e3"}.fa-infinity:before{content:"\f534"}.fa-vial-circle-check:before{content:"\e596"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-voicemail:before{content:"\f897"}.fa-fan:before{content:"\f863"}.fa-person-walking-luggage:before{content:"\e554"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-calendar:before{content:"\f133"}.fa-trailer:before{content:"\e041"}.fa-bahai:before,.fa-haykal:before{content:"\f666"}.fa-sd-card:before{content:"\f7c2"}.fa-dragon:before{content:"\f6d5"}.fa-shoe-prints:before{content:"\f54b"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-hand-holding:before{content:"\f4bd"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-clone:before{content:"\f24d"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-tornado:before{content:"\f76f"}.fa-file-circle-plus:before{content:"\e494"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-anchor:before{content:"\f13d"}.fa-border-all:before{content:"\f84c"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-cookie-bite:before{content:"\f564"}.fa-arrow-trend-down:before{content:"\e097"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-draw-polygon:before{content:"\f5ee"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-shower:before{content:"\f2cc"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-m:before{content:"\4d"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-book:before{content:"\f02d"}.fa-user-plus:before{content:"\f234"}.fa-check:before{content:"\f00c"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-house-circle-check:before{content:"\e509"}.fa-angle-left:before{content:"\f104"}.fa-diagram-successor:before{content:"\e47a"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-cloud-moon:before{content:"\f6c3"}.fa-briefcase:before{content:"\f0b1"}.fa-person-falling:before{content:"\e546"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-user-tag:before{content:"\f507"}.fa-rug:before{content:"\e569"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-baht-sign:before{content:"\e0ac"}.fa-book-open:before{content:"\f518"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-handcuffs:before{content:"\e4f8"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-database:before{content:"\f1c0"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-mask-face:before{content:"\e1d7"}.fa-hill-rockslide:before{content:"\e508"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-paper-plane:before{content:"\f1d8"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-dungeon:before{content:"\f6d9"}.fa-align-right:before{content:"\f038"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-life-ring:before{content:"\f1cd"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-calendar-day:before{content:"\f783"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-dice:before{content:"\f522"}.fa-bowling-ball:before{content:"\f436"}.fa-brain:before{content:"\f5dc"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-calendar-minus:before{content:"\f272"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-gifts:before{content:"\f79c"}.fa-hotel:before{content:"\f594"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-thumbs-up:before{content:"\f164"}.fa-user-clock:before{content:"\f4fd"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-file-invoice:before{content:"\f570"}.fa-window-minimize:before{content:"\f2d1"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-brush:before{content:"\f55d"}.fa-mask:before{content:"\f6fa"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-ruler-vertical:before{content:"\f548"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-train-tram:before{content:"\e5b4"}.fa-user-nurse:before{content:"\f82f"}.fa-syringe:before{content:"\f48e"}.fa-cloud-sun:before{content:"\f6c4"}.fa-stopwatch-20:before{content:"\e06f"}.fa-square-full:before{content:"\f45c"}.fa-magnet:before{content:"\f076"}.fa-jar:before{content:"\e516"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-bug-slash:before{content:"\e490"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-bone:before{content:"\f5d7"}.fa-user-injured:before{content:"\f728"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-plane:before{content:"\f072"}.fa-tent-arrows-down:before{content:"\e581"}.fa-exclamation:before{content:"\21"}.fa-arrows-spin:before{content:"\e4bb"}.fa-print:before{content:"\f02f"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-x:before{content:"\58"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-person-military-pointing:before{content:"\e54a"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-umbrella:before{content:"\f0e9"}.fa-trowel:before{content:"\e589"}.fa-d:before{content:"\44"}.fa-stapler:before{content:"\e5af"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-kip-sign:before{content:"\e1c4"}.fa-hand-point-left:before{content:"\f0a5"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-barcode:before{content:"\f02a"}.fa-plus-minus:before{content:"\e43c"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-person-circle-check:before{content:"\e53e"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"} +.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-weight:400}.fa-monero:before{content:"\f3d0"}.fa-hooli:before{content:"\f427"}.fa-yelp:before{content:"\f1e9"}.fa-cc-visa:before{content:"\f1f0"}.fa-lastfm:before{content:"\f202"}.fa-shopware:before{content:"\f5b5"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-aws:before{content:"\f375"}.fa-redhat:before{content:"\f7bc"}.fa-yoast:before{content:"\f2b1"}.fa-cloudflare:before{content:"\e07d"}.fa-ups:before{content:"\f7e0"}.fa-wpexplorer:before{content:"\f2de"}.fa-dyalog:before{content:"\f399"}.fa-bity:before{content:"\f37a"}.fa-stackpath:before{content:"\f842"}.fa-buysellads:before{content:"\f20d"}.fa-first-order:before{content:"\f2b0"}.fa-modx:before{content:"\f285"}.fa-guilded:before{content:"\e07e"}.fa-vnv:before{content:"\f40b"}.fa-js-square:before,.fa-square-js:before{content:"\f3b9"}.fa-microsoft:before{content:"\f3ca"}.fa-qq:before{content:"\f1d6"}.fa-orcid:before{content:"\f8d2"}.fa-java:before{content:"\f4e4"}.fa-invision:before{content:"\f7b0"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-centercode:before{content:"\f380"}.fa-glide-g:before{content:"\f2a6"}.fa-drupal:before{content:"\f1a9"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-unity:before{content:"\e049"}.fa-whmcs:before{content:"\f40d"}.fa-rocketchat:before{content:"\f3e8"}.fa-vk:before{content:"\f189"}.fa-untappd:before{content:"\f405"}.fa-mailchimp:before{content:"\f59e"}.fa-css3-alt:before{content:"\f38b"}.fa-reddit-square:before,.fa-square-reddit:before{content:"\f1a2"}.fa-vimeo-v:before{content:"\f27d"}.fa-contao:before{content:"\f26d"}.fa-square-font-awesome:before{content:"\e5ad"}.fa-deskpro:before{content:"\f38f"}.fa-sistrix:before{content:"\f3ee"}.fa-instagram-square:before,.fa-square-instagram:before{content:"\e055"}.fa-battle-net:before{content:"\f835"}.fa-the-red-yeti:before{content:"\f69d"}.fa-hacker-news-square:before,.fa-square-hacker-news:before{content:"\f3af"}.fa-edge:before{content:"\f282"}.fa-threads:before{content:"\e618"}.fa-napster:before{content:"\f3d2"}.fa-snapchat-square:before,.fa-square-snapchat:before{content:"\f2ad"}.fa-google-plus-g:before{content:"\f0d5"}.fa-artstation:before{content:"\f77a"}.fa-markdown:before{content:"\f60f"}.fa-sourcetree:before{content:"\f7d3"}.fa-google-plus:before{content:"\f2b3"}.fa-diaspora:before{content:"\f791"}.fa-foursquare:before{content:"\f180"}.fa-stack-overflow:before{content:"\f16c"}.fa-github-alt:before{content:"\f113"}.fa-phoenix-squadron:before{content:"\f511"}.fa-pagelines:before{content:"\f18c"}.fa-algolia:before{content:"\f36c"}.fa-red-river:before{content:"\f3e3"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-safari:before{content:"\f267"}.fa-google:before{content:"\f1a0"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-atlassian:before{content:"\f77b"}.fa-linkedin-in:before{content:"\f0e1"}.fa-digital-ocean:before{content:"\f391"}.fa-nimblr:before{content:"\f5a8"}.fa-chromecast:before{content:"\f838"}.fa-evernote:before{content:"\f839"}.fa-hacker-news:before{content:"\f1d4"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-adversal:before{content:"\f36a"}.fa-creative-commons:before{content:"\f25e"}.fa-watchman-monitoring:before{content:"\e087"}.fa-fonticons:before{content:"\f280"}.fa-weixin:before{content:"\f1d7"}.fa-shirtsinbulk:before{content:"\f214"}.fa-codepen:before{content:"\f1cb"}.fa-git-alt:before{content:"\f841"}.fa-lyft:before{content:"\f3c3"}.fa-rev:before{content:"\f5b2"}.fa-windows:before{content:"\f17a"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-square-viadeo:before,.fa-viadeo-square:before{content:"\f2aa"}.fa-meetup:before{content:"\f2e0"}.fa-centos:before{content:"\f789"}.fa-adn:before{content:"\f170"}.fa-cloudsmith:before{content:"\f384"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-dribbble-square:before,.fa-square-dribbble:before{content:"\f397"}.fa-codiepie:before{content:"\f284"}.fa-node:before{content:"\f419"}.fa-mix:before{content:"\f3cb"}.fa-steam:before{content:"\f1b6"}.fa-cc-apple-pay:before{content:"\f416"}.fa-scribd:before{content:"\f28a"}.fa-debian:before{content:"\e60b"}.fa-openid:before{content:"\f19b"}.fa-instalod:before{content:"\e081"}.fa-expeditedssl:before{content:"\f23e"}.fa-sellcast:before{content:"\f2da"}.fa-square-twitter:before,.fa-twitter-square:before{content:"\f081"}.fa-r-project:before{content:"\f4f7"}.fa-delicious:before{content:"\f1a5"}.fa-freebsd:before{content:"\f3a4"}.fa-vuejs:before{content:"\f41f"}.fa-accusoft:before{content:"\f369"}.fa-ioxhost:before{content:"\f208"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-app-store:before{content:"\f36f"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-itunes-note:before{content:"\f3b5"}.fa-golang:before{content:"\e40f"}.fa-kickstarter:before{content:"\f3bb"}.fa-grav:before{content:"\f2d6"}.fa-weibo:before{content:"\f18a"}.fa-uncharted:before{content:"\e084"}.fa-firstdraft:before{content:"\f3a1"}.fa-square-youtube:before,.fa-youtube-square:before{content:"\f431"}.fa-wikipedia-w:before{content:"\f266"}.fa-rendact:before,.fa-wpressr:before{content:"\f3e4"}.fa-angellist:before{content:"\f209"}.fa-galactic-republic:before{content:"\f50c"}.fa-nfc-directional:before{content:"\e530"}.fa-skype:before{content:"\f17e"}.fa-joget:before{content:"\f3b7"}.fa-fedora:before{content:"\f798"}.fa-stripe-s:before{content:"\f42a"}.fa-meta:before{content:"\e49b"}.fa-laravel:before{content:"\f3bd"}.fa-hotjar:before{content:"\f3b1"}.fa-bluetooth-b:before{content:"\f294"}.fa-sticker-mule:before{content:"\f3f7"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-hips:before{content:"\f452"}.fa-behance:before{content:"\f1b4"}.fa-reddit:before{content:"\f1a1"}.fa-discord:before{content:"\f392"}.fa-chrome:before{content:"\f268"}.fa-app-store-ios:before{content:"\f370"}.fa-cc-discover:before{content:"\f1f2"}.fa-wpbeginner:before{content:"\f297"}.fa-confluence:before{content:"\f78d"}.fa-mdb:before{content:"\f8ca"}.fa-dochub:before{content:"\f394"}.fa-accessible-icon:before{content:"\f368"}.fa-ebay:before{content:"\f4f4"}.fa-amazon:before{content:"\f270"}.fa-unsplash:before{content:"\e07c"}.fa-yarn:before{content:"\f7e3"}.fa-square-steam:before,.fa-steam-square:before{content:"\f1b7"}.fa-500px:before{content:"\f26e"}.fa-square-vimeo:before,.fa-vimeo-square:before{content:"\f194"}.fa-asymmetrik:before{content:"\f372"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-gratipay:before{content:"\f184"}.fa-apple:before{content:"\f179"}.fa-hive:before{content:"\e07f"}.fa-gitkraken:before{content:"\f3a6"}.fa-keybase:before{content:"\f4f5"}.fa-apple-pay:before{content:"\f415"}.fa-padlet:before{content:"\e4a0"}.fa-amazon-pay:before{content:"\f42c"}.fa-github-square:before,.fa-square-github:before{content:"\f092"}.fa-stumbleupon:before{content:"\f1a4"}.fa-fedex:before{content:"\f797"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-shopify:before{content:"\e057"}.fa-neos:before{content:"\f612"}.fa-square-threads:before{content:"\e619"}.fa-hackerrank:before{content:"\f5f7"}.fa-researchgate:before{content:"\f4f8"}.fa-swift:before{content:"\f8e1"}.fa-angular:before{content:"\f420"}.fa-speakap:before{content:"\f3f3"}.fa-angrycreative:before{content:"\f36e"}.fa-y-combinator:before{content:"\f23b"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-gitlab-square:before,.fa-square-gitlab:before{content:"\e5ae"}.fa-studiovinari:before{content:"\f3f8"}.fa-pied-piper:before{content:"\f2ae"}.fa-wordpress:before{content:"\f19a"}.fa-product-hunt:before{content:"\f288"}.fa-firefox:before{content:"\f269"}.fa-linode:before{content:"\f2b8"}.fa-goodreads:before{content:"\f3a8"}.fa-odnoklassniki-square:before,.fa-square-odnoklassniki:before{content:"\f264"}.fa-jsfiddle:before{content:"\f1cc"}.fa-sith:before{content:"\f512"}.fa-themeisle:before{content:"\f2b2"}.fa-page4:before{content:"\f3d7"}.fa-hashnode:before{content:"\e499"}.fa-react:before{content:"\f41b"}.fa-cc-paypal:before{content:"\f1f4"}.fa-squarespace:before{content:"\f5be"}.fa-cc-stripe:before{content:"\f1f5"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-bitcoin:before{content:"\f379"}.fa-keycdn:before{content:"\f3ba"}.fa-opera:before{content:"\f26a"}.fa-itch-io:before{content:"\f83a"}.fa-umbraco:before{content:"\f8e8"}.fa-galactic-senate:before{content:"\f50d"}.fa-ubuntu:before{content:"\f7df"}.fa-draft2digital:before{content:"\f396"}.fa-stripe:before{content:"\f429"}.fa-houzz:before{content:"\f27c"}.fa-gg:before{content:"\f260"}.fa-dhl:before{content:"\f790"}.fa-pinterest-square:before,.fa-square-pinterest:before{content:"\f0d3"}.fa-xing:before{content:"\f168"}.fa-blackberry:before{content:"\f37b"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-playstation:before{content:"\f3df"}.fa-quinscape:before{content:"\f459"}.fa-less:before{content:"\f41d"}.fa-blogger-b:before{content:"\f37d"}.fa-opencart:before{content:"\f23d"}.fa-vine:before{content:"\f1ca"}.fa-paypal:before{content:"\f1ed"}.fa-gitlab:before{content:"\f296"}.fa-typo3:before{content:"\f42b"}.fa-reddit-alien:before{content:"\f281"}.fa-yahoo:before{content:"\f19e"}.fa-dailymotion:before{content:"\e052"}.fa-affiliatetheme:before{content:"\f36b"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-bootstrap:before{content:"\f836"}.fa-odnoklassniki:before{content:"\f263"}.fa-nfc-symbol:before{content:"\e531"}.fa-ethereum:before{content:"\f42e"}.fa-speaker-deck:before{content:"\f83c"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-patreon:before{content:"\f3d9"}.fa-avianex:before{content:"\f374"}.fa-ello:before{content:"\f5f1"}.fa-gofore:before{content:"\f3a7"}.fa-bimobject:before{content:"\f378"}.fa-facebook-f:before{content:"\f39e"}.fa-google-plus-square:before,.fa-square-google-plus:before{content:"\f0d4"}.fa-mandalorian:before{content:"\f50f"}.fa-first-order-alt:before{content:"\f50a"}.fa-osi:before{content:"\f41a"}.fa-google-wallet:before{content:"\f1ee"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-periscope:before{content:"\f3da"}.fa-fulcrum:before{content:"\f50b"}.fa-cloudscale:before{content:"\f383"}.fa-forumbee:before{content:"\f211"}.fa-mizuni:before{content:"\f3cc"}.fa-schlix:before{content:"\f3ea"}.fa-square-xing:before,.fa-xing-square:before{content:"\f169"}.fa-bandcamp:before{content:"\f2d5"}.fa-wpforms:before{content:"\f298"}.fa-cloudversify:before{content:"\f385"}.fa-usps:before{content:"\f7e1"}.fa-megaport:before{content:"\f5a3"}.fa-magento:before{content:"\f3c4"}.fa-spotify:before{content:"\f1bc"}.fa-optin-monster:before{content:"\f23c"}.fa-fly:before{content:"\f417"}.fa-aviato:before{content:"\f421"}.fa-itunes:before{content:"\f3b4"}.fa-cuttlefish:before{content:"\f38c"}.fa-blogger:before{content:"\f37c"}.fa-flickr:before{content:"\f16e"}.fa-viber:before{content:"\f409"}.fa-soundcloud:before{content:"\f1be"}.fa-digg:before{content:"\f1a6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-symfony:before{content:"\f83d"}.fa-maxcdn:before{content:"\f136"}.fa-etsy:before{content:"\f2d7"}.fa-facebook-messenger:before{content:"\f39f"}.fa-audible:before{content:"\f373"}.fa-think-peaks:before{content:"\f731"}.fa-bilibili:before{content:"\e3d9"}.fa-erlang:before{content:"\f39d"}.fa-x-twitter:before{content:"\e61b"}.fa-cotton-bureau:before{content:"\f89e"}.fa-dashcube:before{content:"\f210"}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-stack-exchange:before{content:"\f18d"}.fa-elementor:before{content:"\f430"}.fa-pied-piper-square:before,.fa-square-pied-piper:before{content:"\e01e"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-palfed:before{content:"\f3d8"}.fa-superpowers:before{content:"\f2dd"}.fa-resolving:before{content:"\f3e7"}.fa-xbox:before{content:"\f412"}.fa-searchengin:before{content:"\f3eb"}.fa-tiktok:before{content:"\e07b"}.fa-facebook-square:before,.fa-square-facebook:before{content:"\f082"}.fa-renren:before{content:"\f18b"}.fa-linux:before{content:"\f17c"}.fa-glide:before{content:"\f2a5"}.fa-linkedin:before{content:"\f08c"}.fa-hubspot:before{content:"\f3b2"}.fa-deploydog:before{content:"\f38e"}.fa-twitch:before{content:"\f1e8"}.fa-ravelry:before{content:"\f2d9"}.fa-mixer:before{content:"\e056"}.fa-lastfm-square:before,.fa-square-lastfm:before{content:"\f203"}.fa-vimeo:before{content:"\f40a"}.fa-mendeley:before{content:"\f7b3"}.fa-uniregistry:before{content:"\f404"}.fa-figma:before{content:"\f799"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-dropbox:before{content:"\f16b"}.fa-instagram:before{content:"\f16d"}.fa-cmplid:before{content:"\e360"}.fa-facebook:before{content:"\f09a"}.fa-gripfire:before{content:"\f3ac"}.fa-jedi-order:before{content:"\f50e"}.fa-uikit:before{content:"\f403"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-phabricator:before{content:"\f3db"}.fa-ussunnah:before{content:"\f407"}.fa-earlybirds:before{content:"\f39a"}.fa-trade-federation:before{content:"\f513"}.fa-autoprefixer:before{content:"\f41c"}.fa-whatsapp:before{content:"\f232"}.fa-slideshare:before{content:"\f1e7"}.fa-google-play:before{content:"\f3ab"}.fa-viadeo:before{content:"\f2a9"}.fa-line:before{content:"\f3c0"}.fa-google-drive:before{content:"\f3aa"}.fa-servicestack:before{content:"\f3ec"}.fa-simplybuilt:before{content:"\f215"}.fa-bitbucket:before{content:"\f171"}.fa-imdb:before{content:"\f2d8"}.fa-deezer:before{content:"\e077"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-jira:before{content:"\f7b1"}.fa-docker:before{content:"\f395"}.fa-screenpal:before{content:"\e570"}.fa-bluetooth:before{content:"\f293"}.fa-gitter:before{content:"\f426"}.fa-d-and-d:before{content:"\f38d"}.fa-microblog:before{content:"\e01a"}.fa-cc-diners-club:before{content:"\f24c"}.fa-gg-circle:before{content:"\f261"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-yandex:before{content:"\f413"}.fa-readme:before{content:"\f4d5"}.fa-html5:before{content:"\f13b"}.fa-sellsy:before{content:"\f213"}.fa-sass:before{content:"\f41e"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-buromobelexperte:before{content:"\f37f"}.fa-salesforce:before{content:"\f83b"}.fa-octopus-deploy:before{content:"\e082"}.fa-medapps:before{content:"\f3c6"}.fa-ns8:before{content:"\f3d5"}.fa-pinterest-p:before{content:"\f231"}.fa-apper:before{content:"\f371"}.fa-fort-awesome:before{content:"\f286"}.fa-waze:before{content:"\f83f"}.fa-cc-jcb:before{content:"\f24b"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-rust:before{content:"\e07a"}.fa-wix:before{content:"\f5cf"}.fa-behance-square:before,.fa-square-behance:before{content:"\f1b5"}.fa-supple:before{content:"\f3f9"}.fa-rebel:before{content:"\f1d0"}.fa-css3:before{content:"\f13c"}.fa-staylinked:before{content:"\f3f5"}.fa-kaggle:before{content:"\f5fa"}.fa-space-awesome:before{content:"\e5ac"}.fa-deviantart:before{content:"\f1bd"}.fa-cpanel:before{content:"\f388"}.fa-goodreads-g:before{content:"\f3a9"}.fa-git-square:before,.fa-square-git:before{content:"\f1d2"}.fa-square-tumblr:before,.fa-tumblr-square:before{content:"\f174"}.fa-trello:before{content:"\f181"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-get-pocket:before{content:"\f265"}.fa-perbyte:before{content:"\e083"}.fa-grunt:before{content:"\f3ad"}.fa-weebly:before{content:"\f5cc"}.fa-connectdevelop:before{content:"\f20e"}.fa-leanpub:before{content:"\f212"}.fa-black-tie:before{content:"\f27e"}.fa-themeco:before{content:"\f5c6"}.fa-python:before{content:"\f3e2"}.fa-android:before{content:"\f17b"}.fa-bots:before{content:"\e340"}.fa-free-code-camp:before{content:"\f2c5"}.fa-hornbill:before{content:"\f592"}.fa-js:before{content:"\f3b8"}.fa-ideal:before{content:"\e013"}.fa-git:before{content:"\f1d3"}.fa-dev:before{content:"\f6cc"}.fa-sketch:before{content:"\f7c6"}.fa-yandex-international:before{content:"\f414"}.fa-cc-amex:before{content:"\f1f3"}.fa-uber:before{content:"\f402"}.fa-github:before{content:"\f09b"}.fa-php:before{content:"\f457"}.fa-alipay:before{content:"\f642"}.fa-youtube:before{content:"\f167"}.fa-skyatlas:before{content:"\f216"}.fa-firefox-browser:before{content:"\e007"}.fa-replyd:before{content:"\f3e6"}.fa-suse:before{content:"\f7d6"}.fa-jenkins:before{content:"\f3b6"}.fa-twitter:before{content:"\f099"}.fa-rockrms:before{content:"\f3e9"}.fa-pinterest:before{content:"\f0d2"}.fa-buffer:before{content:"\f837"}.fa-npm:before{content:"\f3d4"}.fa-yammer:before{content:"\f840"}.fa-btc:before{content:"\f15a"}.fa-dribbble:before{content:"\f17d"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-internet-explorer:before{content:"\f26b"}.fa-stubber:before{content:"\e5c7"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-old-republic:before{content:"\f510"}.fa-odysee:before{content:"\e5c6"}.fa-square-whatsapp:before,.fa-whatsapp-square:before{content:"\f40c"}.fa-node-js:before{content:"\f3d3"}.fa-edge-legacy:before{content:"\e078"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-medrt:before{content:"\f3c8"}.fa-usb:before{content:"\f287"}.fa-tumblr:before{content:"\f173"}.fa-vaadin:before{content:"\f408"}.fa-quora:before{content:"\f2c4"}.fa-square-x-twitter:before{content:"\e61a"}.fa-reacteurope:before{content:"\f75d"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-amilia:before{content:"\f36d"}.fa-mixcloud:before{content:"\f289"}.fa-flipboard:before{content:"\f44d"}.fa-viacoin:before{content:"\f237"}.fa-critical-role:before{content:"\f6c9"}.fa-sitrox:before{content:"\e44a"}.fa-discourse:before{content:"\f393"}.fa-joomla:before{content:"\f1aa"}.fa-mastodon:before{content:"\f4f6"}.fa-airbnb:before{content:"\f834"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-buy-n-large:before{content:"\f8a6"}.fa-gulp:before{content:"\f3ae"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-strava:before{content:"\f428"}.fa-ember:before{content:"\f423"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-teamspeak:before{content:"\f4f9"}.fa-pushed:before{content:"\f3e1"}.fa-wordpress-simple:before{content:"\f411"}.fa-nutritionix:before{content:"\f3d6"}.fa-wodu:before{content:"\e088"}.fa-google-pay:before{content:"\e079"}.fa-intercom:before{content:"\f7af"}.fa-zhihu:before{content:"\f63f"}.fa-korvue:before{content:"\f42f"}.fa-pix:before{content:"\e43a"}.fa-steam-symbol:before{content:"\f3f6"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a} \ No newline at end of file diff --git a/lib/katex/katex.min.css b/lib/katex/katex.min.css index 3bab0afae..73a8c0a2f 100644 --- a/lib/katex/katex.min.css +++ b/lib/katex/katex.min.css @@ -1 +1 @@ -@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.2"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.9"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/lib/katex/katex.min.js b/lib/katex/katex.min.js index f5fc1c151..18c62f708 100644 --- a/lib/katex/katex.min.js +++ b/lib/katex/katex.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.katex=t():e.katex=t()}("undefined"!=typeof self?self:this,(function(){return function(){"use strict";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return Qn}});var r=function e(t,r){this.position=void 0;var n,a="KaTeX parse error: "+t,i=r&&r.loc;if(i&&i.start<=i.end){var o=i.lexer.input;n=i.start;var s=i.end;n===o.length?a+=" at end of input: ":a+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332");a+=(n>15?"\u2026"+o.slice(n-15,n):o.slice(0,n))+l+(s+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var m=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},h)if(h.hasOwnProperty(t)){var r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:c(r)}}var t=e.prototype;return t.reportNonstrict=function(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+t+" ["+e+"]")}},t.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))},t.isTrusted=function(e){e.url&&!e.protocol&&(e.protocol=l.protocolFromUrl(e.url));var t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)},e}(),u=function(){function e(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}var t=e.prototype;return t.sup=function(){return p[d[this.id]]},t.sub=function(){return p[f[this.id]]},t.fracNum=function(){return p[g[this.id]]},t.fracDen=function(){return p[v[this.id]]},t.cramp=function(){return p[y[this.id]]},t.text=function(){return p[b[this.id]]},t.isTight=function(){return this.size>=2},e}(),p=[new u(0,0,!1),new u(1,0,!0),new u(2,1,!1),new u(3,1,!0),new u(4,2,!1),new u(5,2,!0),new u(6,3,!1),new u(7,3,!0)],d=[4,5,4,5,6,7,6,7],f=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],y=[1,1,3,3,5,5,7,7],b=[0,1,2,3,2,3,2,3],x={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},w=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var k=[];function S(e){for(var t=0;t=k[t]&&e<=k[t+1])return!0;return!1}w.forEach((function(e){return e.blocks.forEach((function(e){return k.push.apply(k,e)}))}));var M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function e(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t=5?0:e>=3?1:2]){var r=q[t]={cssEmPerMu:B.quad[t]/18};for(var n in B)B.hasOwnProperty(n)&&(r[n]=B[n][t])}return q[t]}(this.size)),this._fontMetrics},t.getColor=function(){return this.phantom?"transparent":this.color},e}();O.BASESIZE=6;var E=O,L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},V=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},P=function(e,t){var r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var a;if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=a.fontMetrics().quad}a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},F=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((function(e){return e})).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Y=function(e){var t=document.createElement(e);for(var r in t.className=G(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var a=0;a"},W=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"span")},t.toMarkup=function(){return X.call(this,"span")},e}(),_=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"a")},t.toMarkup=function(){return X.call(this,"a")},e}(),j=function(){function e(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e},t.toMarkup=function(){var e=""+this.alt+"=a[0]&&e<=a[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=F(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=G(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e},t.toMarkup=function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(n)&&(r+=l.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');var a=l.escape(this.text);return e?(t+=">",t+=a,t+=""):a},e}(),K=function(){function e(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""},e}(),Q=function(){function e(e){this.attributes=void 0,this.attributes=e||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e},t.toMarkup=function(){var e="","\\gt",!0),ie(oe,le,ye,"\u2208","\\in",!0),ie(oe,le,ye,"\ue020","\\@not"),ie(oe,le,ye,"\u2282","\\subset",!0),ie(oe,le,ye,"\u2283","\\supset",!0),ie(oe,le,ye,"\u2286","\\subseteq",!0),ie(oe,le,ye,"\u2287","\\supseteq",!0),ie(oe,he,ye,"\u2288","\\nsubseteq",!0),ie(oe,he,ye,"\u2289","\\nsupseteq",!0),ie(oe,le,ye,"\u22a8","\\models"),ie(oe,le,ye,"\u2190","\\leftarrow",!0),ie(oe,le,ye,"\u2264","\\le"),ie(oe,le,ye,"\u2264","\\leq",!0),ie(oe,le,ye,"<","\\lt",!0),ie(oe,le,ye,"\u2192","\\rightarrow",!0),ie(oe,le,ye,"\u2192","\\to"),ie(oe,he,ye,"\u2271","\\ngeq",!0),ie(oe,he,ye,"\u2270","\\nleq",!0),ie(oe,le,be,"\xa0","\\ "),ie(oe,le,be,"\xa0","\\space"),ie(oe,le,be,"\xa0","\\nobreakspace"),ie(se,le,be,"\xa0","\\ "),ie(se,le,be,"\xa0"," "),ie(se,le,be,"\xa0","\\space"),ie(se,le,be,"\xa0","\\nobreakspace"),ie(oe,le,be,null,"\\nobreak"),ie(oe,le,be,null,"\\allowbreak"),ie(oe,le,ve,",",","),ie(oe,le,ve,";",";"),ie(oe,he,me,"\u22bc","\\barwedge",!0),ie(oe,he,me,"\u22bb","\\veebar",!0),ie(oe,le,me,"\u2299","\\odot",!0),ie(oe,le,me,"\u2295","\\oplus",!0),ie(oe,le,me,"\u2297","\\otimes",!0),ie(oe,le,xe,"\u2202","\\partial",!0),ie(oe,le,me,"\u2298","\\oslash",!0),ie(oe,he,me,"\u229a","\\circledcirc",!0),ie(oe,he,me,"\u22a1","\\boxdot",!0),ie(oe,le,me,"\u25b3","\\bigtriangleup"),ie(oe,le,me,"\u25bd","\\bigtriangledown"),ie(oe,le,me,"\u2020","\\dagger"),ie(oe,le,me,"\u22c4","\\diamond"),ie(oe,le,me,"\u22c6","\\star"),ie(oe,le,me,"\u25c3","\\triangleleft"),ie(oe,le,me,"\u25b9","\\triangleright"),ie(oe,le,ge,"{","\\{"),ie(se,le,xe,"{","\\{"),ie(se,le,xe,"{","\\textbraceleft"),ie(oe,le,ue,"}","\\}"),ie(se,le,xe,"}","\\}"),ie(se,le,xe,"}","\\textbraceright"),ie(oe,le,ge,"{","\\lbrace"),ie(oe,le,ue,"}","\\rbrace"),ie(oe,le,ge,"[","\\lbrack",!0),ie(se,le,xe,"[","\\lbrack",!0),ie(oe,le,ue,"]","\\rbrack",!0),ie(se,le,xe,"]","\\rbrack",!0),ie(oe,le,ge,"(","\\lparen",!0),ie(oe,le,ue,")","\\rparen",!0),ie(se,le,xe,"<","\\textless",!0),ie(se,le,xe,">","\\textgreater",!0),ie(oe,le,ge,"\u230a","\\lfloor",!0),ie(oe,le,ue,"\u230b","\\rfloor",!0),ie(oe,le,ge,"\u2308","\\lceil",!0),ie(oe,le,ue,"\u2309","\\rceil",!0),ie(oe,le,xe,"\\","\\backslash"),ie(oe,le,xe,"\u2223","|"),ie(oe,le,xe,"\u2223","\\vert"),ie(se,le,xe,"|","\\textbar",!0),ie(oe,le,xe,"\u2225","\\|"),ie(oe,le,xe,"\u2225","\\Vert"),ie(se,le,xe,"\u2225","\\textbardbl"),ie(se,le,xe,"~","\\textasciitilde"),ie(se,le,xe,"\\","\\textbackslash"),ie(se,le,xe,"^","\\textasciicircum"),ie(oe,le,ye,"\u2191","\\uparrow",!0),ie(oe,le,ye,"\u21d1","\\Uparrow",!0),ie(oe,le,ye,"\u2193","\\downarrow",!0),ie(oe,le,ye,"\u21d3","\\Downarrow",!0),ie(oe,le,ye,"\u2195","\\updownarrow",!0),ie(oe,le,ye,"\u21d5","\\Updownarrow",!0),ie(oe,le,fe,"\u2210","\\coprod"),ie(oe,le,fe,"\u22c1","\\bigvee"),ie(oe,le,fe,"\u22c0","\\bigwedge"),ie(oe,le,fe,"\u2a04","\\biguplus"),ie(oe,le,fe,"\u22c2","\\bigcap"),ie(oe,le,fe,"\u22c3","\\bigcup"),ie(oe,le,fe,"\u222b","\\int"),ie(oe,le,fe,"\u222b","\\intop"),ie(oe,le,fe,"\u222c","\\iint"),ie(oe,le,fe,"\u222d","\\iiint"),ie(oe,le,fe,"\u220f","\\prod"),ie(oe,le,fe,"\u2211","\\sum"),ie(oe,le,fe,"\u2a02","\\bigotimes"),ie(oe,le,fe,"\u2a01","\\bigoplus"),ie(oe,le,fe,"\u2a00","\\bigodot"),ie(oe,le,fe,"\u222e","\\oint"),ie(oe,le,fe,"\u222f","\\oiint"),ie(oe,le,fe,"\u2230","\\oiiint"),ie(oe,le,fe,"\u2a06","\\bigsqcup"),ie(oe,le,fe,"\u222b","\\smallint"),ie(se,le,pe,"\u2026","\\textellipsis"),ie(oe,le,pe,"\u2026","\\mathellipsis"),ie(se,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u22ef","\\@cdots",!0),ie(oe,le,pe,"\u22f1","\\ddots",!0),ie(oe,le,xe,"\u22ee","\\varvdots"),ie(oe,le,ce,"\u02ca","\\acute"),ie(oe,le,ce,"\u02cb","\\grave"),ie(oe,le,ce,"\xa8","\\ddot"),ie(oe,le,ce,"~","\\tilde"),ie(oe,le,ce,"\u02c9","\\bar"),ie(oe,le,ce,"\u02d8","\\breve"),ie(oe,le,ce,"\u02c7","\\check"),ie(oe,le,ce,"^","\\hat"),ie(oe,le,ce,"\u20d7","\\vec"),ie(oe,le,ce,"\u02d9","\\dot"),ie(oe,le,ce,"\u02da","\\mathring"),ie(oe,le,de,"\ue131","\\@imath"),ie(oe,le,de,"\ue237","\\@jmath"),ie(oe,le,xe,"\u0131","\u0131"),ie(oe,le,xe,"\u0237","\u0237"),ie(se,le,xe,"\u0131","\\i",!0),ie(se,le,xe,"\u0237","\\j",!0),ie(se,le,xe,"\xdf","\\ss",!0),ie(se,le,xe,"\xe6","\\ae",!0),ie(se,le,xe,"\u0153","\\oe",!0),ie(se,le,xe,"\xf8","\\o",!0),ie(se,le,xe,"\xc6","\\AE",!0),ie(se,le,xe,"\u0152","\\OE",!0),ie(se,le,xe,"\xd8","\\O",!0),ie(se,le,ce,"\u02ca","\\'"),ie(se,le,ce,"\u02cb","\\`"),ie(se,le,ce,"\u02c6","\\^"),ie(se,le,ce,"\u02dc","\\~"),ie(se,le,ce,"\u02c9","\\="),ie(se,le,ce,"\u02d8","\\u"),ie(se,le,ce,"\u02d9","\\."),ie(se,le,ce,"\xb8","\\c"),ie(se,le,ce,"\u02da","\\r"),ie(se,le,ce,"\u02c7","\\v"),ie(se,le,ce,"\xa8",'\\"'),ie(se,le,ce,"\u02dd","\\H"),ie(se,le,ce,"\u25ef","\\textcircled");var we={"--":!0,"---":!0,"``":!0,"''":!0};ie(se,le,xe,"\u2013","--",!0),ie(se,le,xe,"\u2013","\\textendash"),ie(se,le,xe,"\u2014","---",!0),ie(se,le,xe,"\u2014","\\textemdash"),ie(se,le,xe,"\u2018","`",!0),ie(se,le,xe,"\u2018","\\textquoteleft"),ie(se,le,xe,"\u2019","'",!0),ie(se,le,xe,"\u2019","\\textquoteright"),ie(se,le,xe,"\u201c","``",!0),ie(se,le,xe,"\u201c","\\textquotedblleft"),ie(se,le,xe,"\u201d","''",!0),ie(se,le,xe,"\u201d","\\textquotedblright"),ie(oe,le,xe,"\xb0","\\degree",!0),ie(se,le,xe,"\xb0","\\degree"),ie(se,le,xe,"\xb0","\\textdegree",!0),ie(oe,le,xe,"\xa3","\\pounds"),ie(oe,le,xe,"\xa3","\\mathsterling",!0),ie(se,le,xe,"\xa3","\\pounds"),ie(se,le,xe,"\xa3","\\textsterling",!0),ie(oe,he,xe,"\u2720","\\maltese"),ie(se,he,xe,"\u2720","\\maltese");for(var ke='0123456789/@."',Se=0;Set&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>n&&(n=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Xe=function(e,t,r,n){var a=new W(e,t,r,n);return Ye(a),a},We=function(e,t,r,n){return new W(e,t,r,n)},_e=function(e){var t=new A(e);return Ye(t),t},je=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},$e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ke={fontMap:$e,makeSymbol:Ge,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Fe(e,"Main-Bold",t).metrics?Ge(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?Ge(e,"Main-Regular",t,r,n):Ge(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Xe,makeSvgSpan:We,makeLineSpan:function(e,t,r){var n=Xe([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=F(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new _(e,t,r,n);return Ye(a),a},makeFragment:_e,wrapFragment:function(e,t){return e instanceof A?Xe([],[e],t):e},makeVList:function(e,t){for(var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i0&&(o.push(kt(s,t)),s=[]),o.push(a[l]));s.length>0&&o.push(kt(s,t)),r?((i=kt(ft(r,t,!0))).classes=["tag"],o.push(i)):n&&o.push(n);var c=ct(["katex-html"],o);if(c.setAttribute("aria-hidden","true"),i){var m=i.children[0];m.style.height=F(c.height+c.depth),c.depth&&(m.style.verticalAlign=F(-c.depth))}return c}function Mt(e){return new A(e)}var zt=function(){function e(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.getAttribute=function(e){return this.attributes[e]},t.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(var r=0;r0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(var r=0;r"},t.toText=function(){return this.children.map((function(e){return e.toText()})).join("")},e}(),At=function(){function e(e){this.text=void 0,this.text=e}var t=e.prototype;return t.toNode=function(){return document.createTextNode(this.text)},t.toMarkup=function(){return l.escape(this.toText())},t.toText=function(){return this.text},e}(),Tt={MathNode:zt,TextNode:At,SpaceNode:function(){function e(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}var t=e.prototype;return t.toNode=function(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",F(this.width)),e},t.toMarkup=function(){return this.character?""+this.character+"":''},t.toText=function(){return this.character?this.character:" "},e}(),newDocumentFragment:Mt},Bt=function(e,t,r){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||we.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(e=ae[t][e].replace),new Tt.TextNode(e)},Ct=function(e){return 1===e.length?e[0]:new Tt.MathNode("mrow",e)},Nt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var a=e.text;return l.contains(["\\imath","\\jmath"],a)?null:(ae[n][a]&&ae[n][a].replace&&(a=ae[n][a].replace),N(a,Ke.fontMap[r].fontName,n)?Ke.fontMap[r].variant:null)},qt=function(e,t,r){if(1===e.length){var n=Rt(e[0],t);return r&&n instanceof zt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),a=s}return i},It=function(e,t,r){return Ct(qt(e,t,r))},Rt=function(e,t){if(!e)return new Tt.MathNode("mrow");if(it[e.type])return it[e.type](e,t);throw new n("Got group of unknown type: '"+e.type+"'")};function Ht(e,t,r,n,a){var i,o=qt(e,r);i=1===o.length&&o[0]instanceof zt&&l.contains(["mrow","mtable"],o[0].type)?o[0]:new Tt.MathNode("mrow",o);var s=new Tt.MathNode("annotation",[new Tt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var h=new Tt.MathNode("semantics",[i,s]),c=new Tt.MathNode("math",[h]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");var m=a?"katex":"katex-mathml";return Ke.makeSpan([m],[c])}var Ot=function(e){return new E({style:e.displayMode?x.DISPLAY:x.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Et=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ke.makeSpan(r,[e])}return e},Lt=function(e,t,r){var n,a=Ot(r);if("mathml"===r.output)return Ht(e,t,a,r.displayMode,!0);if("html"===r.output){var i=St(e,a);n=Ke.makeSpan(["katex"],[i])}else{var o=Ht(e,t,a,r.displayMode,!1),s=St(e,a);n=Ke.makeSpan(["katex"],[o,s])}return Et(n,r)},Dt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Vt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Pt=function(e,t,r,n,a){var i,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(i=Ke.makeSpan(["stretchy",t],[],a),"fbox"===t){var s=a.color&&a.getColor();s&&(i.style.borderColor=s)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new K(l,{width:"100%",height:F(o)});i=Ke.makeSvgSpan([],[h],a)}return i.height=o,i.style.height=F(o),i},Ft=function(e){var t=new Tt.MathNode("mo",[new Tt.TextNode(Dt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Gt=function(e,t){var r=function(){var r=4e5,n=e.label.slice(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){var a,i,o,s="ordgroup"===(d=e.base).type?d.body.length:1;if(s>5)"widehat"===n||"widecheck"===n?(a=420,r=2364,o=.42,i=n+"4"):(a=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][h],a=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=n+h):(r=[0,600,1033,2339,2340][h],a=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var c=new J(i),m=new K([c],{width:"100%",height:F(o),viewBox:"0 0 "+r+" "+a,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[m],t),minWidth:0,height:o}}var u,p,d,f=[],g=Vt[n],v=g[0],y=g[1],b=g[2],x=b/1e3,w=v.length;if(1===w)u=["hide-tail"],p=[g[3]];else if(2===w)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==w)throw new Error("Correct katexImagesData or update code here to support\n "+w+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var k=0;k0&&(n.style.minWidth=F(a)),n};function Ut(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Yt(e){var t=Xt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Xt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}var Wt=function(e,t){var r,n,a;e&&"supsub"===e.type?(r=(n=Ut(e.base,"accent")).base,e.base=r,a=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(wt(e,t)),e.base=n):r=(n=Ut(e,"accent")).base;var i=wt(r,t.havingCrampedStyle()),o=0;if(n.isShifty&&l.isCharacterBox(r)){var s=l.getBaseElem(r);o=ee(wt(s,t.havingCrampedStyle())).skew}var h,c="\\c"===n.label,m=c?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Gt(n,t),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+F(2*o)+")",marginLeft:F(2*o)}:void 0}]},t);else{var u,p;"\\vec"===n.label?(u=Ke.staticSvg("vec",t),p=Ke.svgData.vec[1]):((u=ee(u=Ke.makeOrd({mode:n.mode,text:n.label},t,"textord"))).italic=0,p=u.width,c&&(m+=u.depth)),h=Ke.makeSpan(["accent-body"],[u]);var d="\\textcircled"===n.label;d&&(h.classes.push("accent-full"),m=i.height);var f=o;d||(f-=p/2),h.style.left=F(f),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-m},{type:"elem",elem:h}]},t)}var g=Ke.makeSpan(["mord","accent"],[h],t);return a?(a.children[0]=g,a.height=Math.max(g.height,a.height),a.classes[0]="mord",a):g},_t=function(e,t){var r=e.isStretchy?Ft(e.label):new Tt.MathNode("mo",[Bt(e.label,e.mode)]),n=new Tt.MathNode("mover",[Rt(e.base,t),r]);return n.setAttribute("accent","true"),n},jt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((function(e){return"\\"+e})).join("|"));ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var r=lt(t[0]),n=!jt.test(e.funcName),a=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var r=t[0],n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:function(e,t){var r=wt(e.base,t),n=Gt(e,t),a="\\utilde"===e.label?.12:0,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:function(e,t){var r=Ft(e.label),n=new Tt.MathNode("munder",[Rt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var $t=function(e){var t=new Tt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,a=e.funcName;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r,n=t.style,a=t.havingStyle(n.sup()),i=Ke.wrapFragment(wt(e.body,a,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(o+"-arrow-pad"),e.below&&(a=t.havingStyle(n.sub()),(r=Ke.wrapFragment(wt(e.below,a,t),t)).classes.push(o+"-arrow-pad"));var s,l=Gt(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,c=-t.fontMetrics().axisHeight-.5*l.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(c-=i.depth),r){var m=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:m}]},t)}else s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:l,shift:h}]},t);return s.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[s],t)},mathmlBuilder:function(e,t){var r,n=Ft(e.label);if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var a=$t(Rt(e.body,t));if(e.below){var i=$t(Rt(e.below,t));r=new Tt.MathNode("munderover",[n,i,a])}else r=new Tt.MathNode("mover",[n,a])}else if(e.below){var o=$t(Rt(e.below,t));r=new Tt.MathNode("munder",[n,o])}else r=$t(),r=new Tt.MathNode("mover",[n,r]);return r}});var Zt=Ke.makeSpan;function Kt(e,t){var r=ft(e.body,t,!0);return Zt([e.mclass],r,t)}function Jt(e,t){var r,n=qt(e.body,t);return"minner"===e.mclass?r=new Tt.MathNode("mpadded",n):"mord"===e.mclass?e.isCharacterBox?(r=n[0]).type="mi":r=new Tt.MathNode("mi",n):(e.isCharacterBox?(r=n[0]).type="mo":r=new Tt.MathNode("mo",n),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}ot({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:ht(a),isCharacterBox:l.isCharacterBox(a)}},htmlBuilder:Kt,mathmlBuilder:Jt});var Qt=function(e){var t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"!==t.type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family};ot({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler:function(e,t){return{type:"mclass",mode:e.parser.mode,mclass:Qt(t[0]),body:ht(t[1]),isCharacterBox:l.isCharacterBox(t[1])}}}),ot({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler:function(e,t){var r,n=e.parser,a=e.funcName,i=t[1],o=t[0];r="\\stackrel"!==a?Qt(i):"mrel";var s={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==a,body:ht(i)},h={type:"supsub",mode:o.mode,base:s,sup:"\\underset"===a?null:o,sub:"\\underset"===a?o:null};return{type:"mclass",mode:n.mode,mclass:r,body:[h],isCharacterBox:l.isCharacterBox(h)}},htmlBuilder:Kt,mathmlBuilder:Jt}),ot({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"pmb",mode:e.parser.mode,mclass:Qt(t[0]),body:ht(t[0])}},htmlBuilder:function(e,t){var r=ft(e.body,t,!0),n=Ke.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder:function(e,t){var r=qt(e.body,t),n=new Tt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});var er={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},tr=function(e){return"textord"===e.type&&"@"===e.text};function rr(e,t,r){var n=er[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[i],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),n=Ke.wrapFragment(wt(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=F(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mrow",[Rt(e.label,t)]);return(r=new Tt.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Tt.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){var r=Ke.wrapFragment(wt(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:function(e,t){return new Tt.MathNode("mrow",[Rt(e.fragment,t)])}}),ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var r=e.parser,a=Ut(t[0],"ordgroup").body,i="",o=0;o=1114111)throw new n("\\@char with invalid code point "+i);return l<=65535?s=String.fromCharCode(l):(l-=65536,s=String.fromCharCode(55296+(l>>10),56320+(1023&l))),{type:"textord",mode:r.mode,text:s}}});var nr=function(e,t){var r=ft(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},ar=function(e,t){var r=qt(e.body,t.withColor(e.color)),n=new Tt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var r=e.parser,n=Ut(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:ht(a)}},htmlBuilder:nr,mathmlBuilder:ar}),ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,n=e.breakOnTokenText,a=Ut(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:nr,mathmlBuilder:ar}),ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:1,argTypes:["size"],allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=r[0],i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&Ut(a,"size").value}},htmlBuilder:function(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=F(P(e.size,t)))),r},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",F(P(e.size,t)))),r}});var ir={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},or=function(e){var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},sr=function(e,t,r,n){var a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,r=e.funcName;t.consumeSpaces();var a=t.fetch();if(ir[a.text])return"\\global"!==r&&"\\\\globallong"!==r||(a.text=ir[a.text]),Ut(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",a)}}),ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,a=t.gullet.popToken(),i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new n("Expected a control sequence",a);for(var o,s=0,l=[[]];"{"!==t.gullet.future().text;)if("#"===(a=t.gullet.popToken()).text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new n('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new n('Argument number "'+a.text+'" out of order');s++,l.push([])}else{if("EOF"===a.text)throw new n("Expected a macro definition");l[s].push(a.text)}var h=t.gullet.consumeArg().tokens;return o&&h.unshift(o),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h)).reverse(),t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===ir[r]),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=or(t.gullet.popToken());t.gullet.consumeSpaces();var a=function(e){var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t}(t);return sr(t,n,a,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=or(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return sr(t,n,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var lr=function(e,t,r){var n=N(ae.math[e]&&ae.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},hr=function(e,t,r,n){var a=r.havingBaseStyle(t),i=Ke.makeSpan(n.concat(a.sizingClasses(r)),[e],r),o=a.sizeMultiplier/r.sizeMultiplier;return i.height*=o,i.depth*=o,i.maxFontSize=a.sizeMultiplier,i},cr=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=F(a),e.height-=a,e.depth+=a},mr=function(e,t,r,n,a,i){var o=function(e,t,r,n){return Ke.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,a,n),s=hr(Ke.makeSpan(["delimsizing","size"+t],[o],n),x.TEXT,n,i);return r&&cr(s,n,x.TEXT),s},ur=function(e,t,r){var n;return n="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(e,t,r)])])}},pr=function(e,t,r){var n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],a=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),i=new K([a],{width:F(n),height:F(t),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ke.makeSvgSpan([],[i],r);return o.height=t,o.style.height=F(t),o.style.width=F(n),{type:"elem",elem:o}},dr={type:"kern",size:-.008},fr=["|","\\lvert","\\rvert","\\vert"],gr=["\\|","\\lVert","\\rVert","\\Vert"],vr=function(e,t,r,n,a,i){var o,s,h,c,m="",u=0;o=h=c=e,s=null;var p="Size1-Regular";"\\uparrow"===e?h=c="\u23d0":"\\Uparrow"===e?h=c="\u2016":"\\downarrow"===e?o=h="\u23d0":"\\Downarrow"===e?o=h="\u2016":"\\updownarrow"===e?(o="\\uparrow",h="\u23d0",c="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",h="\u2016",c="\\Downarrow"):l.contains(fr,e)?(h="\u2223",m="vert",u=333):l.contains(gr,e)?(h="\u2225",m="doublevert",u=556):"["===e||"\\lbrack"===e?(o="\u23a1",h="\u23a2",c="\u23a3",p="Size4-Regular",m="lbrack",u=667):"]"===e||"\\rbrack"===e?(o="\u23a4",h="\u23a5",c="\u23a6",p="Size4-Regular",m="rbrack",u=667):"\\lfloor"===e||"\u230a"===e?(h=o="\u23a2",c="\u23a3",p="Size4-Regular",m="lfloor",u=667):"\\lceil"===e||"\u2308"===e?(o="\u23a1",h=c="\u23a2",p="Size4-Regular",m="lceil",u=667):"\\rfloor"===e||"\u230b"===e?(h=o="\u23a5",c="\u23a6",p="Size4-Regular",m="rfloor",u=667):"\\rceil"===e||"\u2309"===e?(o="\u23a4",h=c="\u23a5",p="Size4-Regular",m="rceil",u=667):"("===e||"\\lparen"===e?(o="\u239b",h="\u239c",c="\u239d",p="Size4-Regular",m="lparen",u=875):")"===e||"\\rparen"===e?(o="\u239e",h="\u239f",c="\u23a0",p="Size4-Regular",m="rparen",u=875):"\\{"===e||"\\lbrace"===e?(o="\u23a7",s="\u23a8",c="\u23a9",h="\u23aa",p="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="\u23ab",s="\u23ac",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(o="\u23a7",c="\u23a9",h="\u23aa",p="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(o="\u23ab",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(o="\u23a7",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(o="\u23ab",c="\u23a9",h="\u23aa",p="Size4-Regular");var d=lr(o,p,a),f=d.height+d.depth,g=lr(h,p,a),v=g.height+g.depth,y=lr(c,p,a),b=y.height+y.depth,w=0,k=1;if(null!==s){var S=lr(s,p,a);w=S.height+S.depth,k=2}var M=f+b+w,z=M+Math.max(0,Math.ceil((t-M)/(k*v)))*k*v,A=n.fontMetrics().axisHeight;r&&(A*=n.sizeMultiplier);var T=z/2-A,B=[];if(m.length>0){var C=z-f-b,N=Math.round(1e3*z),q=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}}(m,Math.round(1e3*C)),I=new J(m,q),R=(u/1e3).toFixed(3)+"em",H=(N/1e3).toFixed(3)+"em",O=new K([I],{width:R,height:H,viewBox:"0 0 "+u+" "+N}),E=Ke.makeSvgSpan([],[O],n);E.height=N/1e3,E.style.width=R,E.style.height=H,B.push({type:"elem",elem:E})}else{if(B.push(ur(c,p,a)),B.push(dr),null===s){var L=z-f-b+.016;B.push(pr(h,L,n))}else{var D=(z-f-b-w)/2+.016;B.push(pr(h,D,n)),B.push(dr),B.push(ur(s,p,a)),B.push(dr),B.push(pr(h,D,n))}B.push(dr),B.push(ur(o,p,a))}var V=n.havingBaseStyle(x.TEXT),P=Ke.makeVList({positionType:"bottom",positionData:T,children:B},V);return hr(Ke.makeSpan(["delimsizing","mult"],[P],V),x.TEXT,n,i)},yr=.08,br=function(e,t,r,n,a){var i=function(e,t,r){t*=1e3;var n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),o=new J(e,i),s=new K([o],{width:"400em",height:F(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[s],a)},xr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],wr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],kr=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Sr=[0,1.2,1.8,2.4,3],Mr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],zr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"stack"}],Ar=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Tr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Br=function(e,t,r,n){for(var a=Math.min(2,3-n.style.size);at)return r[a]}return r[r.length-1]},Cr=function(e,t,r,n,a,i){var o;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),o=l.contains(kr,e)?Mr:l.contains(xr,e)?Ar:zr;var s=Br(e,t,o,n);return"small"===s.type?function(e,t,r,n,a,i){var o=Ke.makeSymbol(e,"Main-Regular",a,n),s=hr(o,t,n,i);return r&&cr(s,n,t),s}(e,s.style,r,n,a,i):"large"===s.type?mr(e,s.size,r,n,a,i):vr(e,t,r,n,a,i)},Nr={sqrtImage:function(e,t){var r,n,a=t.havingBaseSizing(),i=Br("\\surd",e*a.sizeMultiplier,Ar,a),o=a.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,c=0;return"small"===i.type?(e<1?o=1:e<1.4&&(o=.7),h=(1+s)/o,(r=br("sqrtMain",l=(1+s+yr)/o,c=1e3+1e3*s+80,s,t)).style.minWidth="0.853em",n=.833/o):"large"===i.type?(c=1080*Sr[i.size],h=(Sr[i.size]+s)/o,l=(Sr[i.size]+s+yr)/o,(r=br("sqrtSize"+i.size,l,c,s,t)).style.minWidth="1.02em",n=1/o):(l=e+s+yr,h=e+s,c=Math.floor(1e3*e+s)+80,(r=br("sqrtTall",l,c,s,t)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=F(l),{span:r,advanceWidth:n,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(xr,e)||l.contains(kr,e))return mr(e,t,!1,r,a,i);if(l.contains(wr,e))return vr(e,Sr[t],!1,r,a,i);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:Sr,customSizedDelim:Cr,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),h=Math.max(l/500*901,2*l-s);return Cr(e,h,!0,n,a,i)}},qr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Ir=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Rr(e,t){var r=Xt(e);if(r&&l.contains(Ir,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function Hr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){var r=Rr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:qr[e.funcName].size,mclass:qr[e.funcName].mclass,delim:r.text}},htmlBuilder:function(e,t){return"."===e.delim?Ke.makeSpan([e.mclass]):Nr.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.delim&&t.push(Bt(e.delim,e.mode));var r=new Tt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=F(Nr.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Rr(t[0],e).text,color:r}}}),ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=Rr(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Ut(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(e,t){Hr(e);for(var r,n,a=ft(e.body,t,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[Rt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:o}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=Ut(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\fbox",body:t[0]}}}),ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\angl",body:t[0]}}});var Lr={};function Dr(e){for(var t=e.type,r=e.names,n=e.props,a=e.handler,i=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l1||!m)&&g.pop(),y.length0&&(b+=.25),c.push({pos:b,isDashed:e[t]})}for(w(o[0]),r=0;r0&&(M<(B+=y)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,b+=S,z.pos=b,b+=M+B,h[r]=z,w(o[r+1])}var C,N,q=b/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],H=[];if(e.tags&&e.tags.some((function(e){return e})))for(r=0;r=s)){var W=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(W=l.deflt(V.pregap,p))&&((C=Ke.makeSpan(["arraycolsep"],[])).style.width=F(W),R.push(C));var _=[];for(r=0;r0){for(var K=Ke.makeLineSpan("hline",t,m),J=Ke.makeLineSpan("hdashline",t,m),Q=[{type:"elem",elem:h,shift:0}];c.length>0;){var ee=c.pop(),te=ee.pos-q;ee.isDashed?Q.push({type:"elem",elem:J,shift:te}):Q.push({type:"elem",elem:K,shift:te})}h=Ke.makeVList({positionType:"individualShift",children:Q},t)}if(0===H.length)return Ke.makeSpan(["mord"],[h],t);var re=Ke.makeVList({positionType:"individualShift",children:H},t);return re=Ke.makeSpan(["tag"],[re],t),Ke.makeFragment([h,re])},$r={c:"center ",l:"left ",r:"right "},Zr=function(e,t){for(var r=[],n=new Tt.MathNode("mtd",[],["mtr-glue"]),a=new Tt.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var p=e.cols,d="",f=!1,g=0,v=p.length;"separator"===p[0].type&&(m+="top ",g=1),"separator"===p[p.length-1].type&&(m+="bottom ",v-=1);for(var y=g;y0?"left ":"",m+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",o="split"===e.envName,s=Wr(e.parser,{cols:a,addJot:!0,autoTag:o?void 0:Xr(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:o?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var c="",m=0;m0&&u&&(f=1),a[p]={type:"align",align:d,pregap:f,postgap:0}}return s.colSeparationType=u?"align":"alignat",s};Dr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Wr(e.parser,a,_r(e.envName))},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var i=e.parser;if(i.consumeSpaces(),"["===i.fetch().text){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),a.cols=[{type:"align",align:r}]}}var o=Wr(e.parser,a,_r(e.envName)),s=Math.max.apply(Math,[0].concat(o.body.map((function(e){return e.length}))));return o.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(e){var t=Wr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=Wr(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new n("{subarray} can contain only one column");return a},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(e){var t=Wr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},_r(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Kr,htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(e){l.contains(["gather","gather*"],e.envName)&&Yr(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Xr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Wr(e.parser,t,"display")},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Kr,htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(e){Yr(e);var t={autoTag:Xr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Wr(e.parser,t,"display")},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["CD"],props:{numArgs:0},handler:function(e){return Yr(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}for(var a,i,o=[],s=[o],l=0;l-1);else{if(!("<>AV".indexOf(u)>-1))throw new n('Expected one of "<>AV=|." after @',h[m]);for(var d=0;d<2;d++){for(var f=!0,g=m+1;g=x.SCRIPT.id?r.text():x.DISPLAY:"text"===e&&r.size===x.DISPLAY.size?r=x.TEXT:"script"===e?r=x.SCRIPT:"scriptscript"===e&&(r=x.SCRIPTSCRIPT),r},nn=function(e,t){var r,n=rn(e.size,t.style),a=n.fracNum(),i=n.fracDen();r=t.havingStyle(a);var o=wt(e.numer,r,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*m:7*m,d=t.fontMetrics().denom1):(c>0?(u=t.fontMetrics().num2,p=m):(u=t.fontMetrics().num3,p=3*m),d=t.fontMetrics().denom2),h){var w=t.fontMetrics().axisHeight;u-o.depth-(w+.5*c)0&&(t="."===(t=e)?null:t),t};ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(e,t){var r,n=e.parser,a=t[4],i=t[5],o=lt(t[0]),s="atom"===o.type&&"open"===o.family?sn(o.text):null,l=lt(t[1]),h="atom"===l.type&&"close"===l.family?sn(l.text):null,c=Ut(t[2],"size"),m=null;r=!!c.isBlank||(m=c.value).number>0;var u="auto",p=t[3];if("ordgroup"===p.type){if(p.body.length>0){var d=Ut(p.body[0],"textord");u=on[Number(d.text)]}}else p=Ut(p,"textord"),u=on[Number(p.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:i,continued:!1,hasBarLine:r,barSize:m,leftDelim:s,rightDelim:h,size:u}},htmlBuilder:nn,mathmlBuilder:an}),ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(e,t){var r=e.parser,n=(e.funcName,e.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ut(t[0],"size").value,token:n}}}),ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(e,t){var r=e.parser,n=(e.funcName,t[0]),a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Ut(t[1],"infix").size),i=t[2],o=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:o,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:nn,mathmlBuilder:an});var ln=function(e,t){var r,n,a=t.style;"supsub"===e.type?(r=e.sup?wt(e.sup,t.havingStyle(a.sup()),t):wt(e.sub,t.havingStyle(a.sub()),t),n=Ut(e.base,"horizBrace")):n=Ut(e,"horizBrace");var i,o=wt(n.base,t.havingBaseStyle(x.DISPLAY)),s=Gt(n,t);if(n.isOver?(i=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(i=Ke.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t);i=n.isOver?Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ke.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t)};ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:ln,mathmlBuilder:function(e,t){var r=Ft(e.label);return new Tt.MathNode(e.isOver?"mover":"munder",[Rt(e.base,t),r])}}),ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=t[1],a=Ut(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:ht(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(e,t){var r=ft(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},mathmlBuilder:function(e,t){var r=It(e.body,t);return r instanceof zt||(r=new zt("mrow",[r])),r.setAttribute("href",e.href),r}}),ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=Ut(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i0&&(n=P(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=P(e.width,t));var i={height:F(r+n)};a>0&&(i.width=F(a)),n>0&&(i.verticalAlign=F(-n));var o=new j(e.src,e.alt,i);return o.height=r,o.depth=n,o},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=P(e.height,t),a=0;if(e.totalheight.number>0&&(a=P(e.totalheight,t)-n,r.setAttribute("valign",F(-a))),r.setAttribute("height",F(n+a)),e.width.number>0){var i=P(e.width,t);r.setAttribute("width",F(i))}return r.setAttribute("src",e.src),r}}),ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=Ut(t[0],"size");if(r.settings.strict){var i="m"===n[1],o="mu"===a.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+a.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder:function(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder:function(e,t){var r=P(e.dimension,t);return new Tt.SpaceNode(r)}}),ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:function(e,t){var r;"clap"===e.alignment?(r=Ke.makeSpan([],[wt(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[wt(e.body,t)]);var n=Ke.makeSpan(["fix"],[]),a=Ke.makeSpan([e.alignment],[r,n],t),i=Ke.makeSpan(["strut"]);return i.style.height=F(a.height+a.depth),a.depth&&(i.style.verticalAlign=F(-a.depth)),a.children.unshift(i),a=Ke.makeSpan(["thinbox"],[a],t),Ke.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mpadded",[Rt(e.body,t)]);if("rlap"!==e.alignment){var n="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}}),ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var r=e.funcName,n=e.parser,a=n.mode;n.switchMode("math");var i="\\("===r?"\\)":"$",o=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:o}}}),ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){throw new n("Mismatched "+e.funcName)}});var cn=function(e,t){switch(t.style.size){case x.DISPLAY.size:return e.display;case x.TEXT.size:return e.text;case x.SCRIPT.size:return e.script;case x.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(e,t){return{type:"mathchoice",mode:e.parser.mode,display:ht(t[0]),text:ht(t[1]),script:ht(t[2]),scriptscript:ht(t[3])}},htmlBuilder:function(e,t){var r=cn(e,t),n=ft(r,t,!1);return Ke.makeFragment(n)},mathmlBuilder:function(e,t){var r=cn(e,t);return It(r,t)}});var mn=function(e,t,r,n,a,i,o){e=Ke.makeSpan([],[e]);var s,h,c,m=r&&l.isCharacterBox(r);if(t){var u=wt(t,n.havingStyle(a.sup()),n);h={elem:u,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var p=wt(r,n.havingStyle(a.sub()),n);s={elem:p,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-p.height)}}if(h&&s){var d=n.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;c=Ke.makeVList({positionType:"bottom",positionData:d,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:F(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:F(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(s){var f=e.height-o;c=Ke.makeVList({positionType:"top",positionData:f,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:F(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},n)}else{if(!h)return e;var g=e.depth+o;c=Ke.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:F(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}var v=[c];if(s&&0!==i&&!m){var y=Ke.makeSpan(["mspace"],[],n);y.style.marginRight=F(i),v.unshift(y)}return Ke.makeSpan(["mop","op-limits"],v,n)},un=["\\smallint"],pn=function(e,t){var r,n,a,i=!1;"supsub"===e.type?(r=e.sup,n=e.sub,a=Ut(e.base,"op"),i=!0):a=Ut(e,"op");var o,s=t.style,h=!1;if(s.size===x.DISPLAY.size&&a.symbol&&!l.contains(un,a.name)&&(h=!0),a.symbol){var c=h?"Size2-Regular":"Size1-Regular",m="";if("\\oiint"!==a.name&&"\\oiiint"!==a.name||(m=a.name.slice(1),a.name="oiint"===m?"\\iint":"\\iiint"),o=Ke.makeSymbol(a.name,c,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),m.length>0){var u=o.italic,p=Ke.staticSvg(m+"Size"+(h?"2":"1"),t);o=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:h?.08:0}]},t),a.name="\\"+m,o.classes.unshift("mop"),o.italic=u}}else if(a.body){var d=ft(a.body,t,!0);1===d.length&&d[0]instanceof Z?(o=d[0]).classes[0]="mop":o=Ke.makeSpan(["mop"],d,t)}else{for(var f=[],g=1;g0){for(var s=a.body.map((function(e){var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),l=ft(s,t.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height",F(a)):(s.setAttribute("height",F(a)),s.setAttribute("depth",F(-a))),s.setAttribute("voffset",F(a)),s}});var bn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ot({type:"sizing",names:bn,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:bn.indexOf(n)+1,body:i}},htmlBuilder:function(e,t){var r=t.havingSize(e.size);return yn(e.body,r,t)},mathmlBuilder:function(e,t){var r=t.havingSize(e.size),n=qt(e.body,r),a=new Tt.MathNode("mstyle",n);return a.setAttribute("mathsize",F(r.sizeMultiplier)),a}}),ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=!1,i=!1,o=r[0]&&Ut(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=F(c);var p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(e.index){var d=t.havingStyle(x.SCRIPTSCRIPT),f=wt(e.index,d,t),g=.6*(p.height-p.depth),v=Ke.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},t),y=Ke.makeSpan(["root"],[v]);return Ke.makeSpan(["mord","sqrt"],[y,p],t)}return Ke.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder:function(e,t){var r=e.body,n=e.index;return n?new Tt.MathNode("mroot",[Rt(r,t),Rt(n,t)]):new Tt.MathNode("msqrt",[Rt(r,t)])}});var xn={display:x.DISPLAY,text:x.TEXT,script:x.SCRIPT,scriptscript:x.SCRIPTSCRIPT};ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!0,r),o=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:o,body:i}},htmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r).withFont("");return yn(e.body,n,t)},mathmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r),a=qt(e.body,n),i=new Tt.MathNode("mstyle",a),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var wn=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===x.DISPLAY.size||r.alwaysHandleSupSub)?pn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===x.DISPLAY.size||r.limits)?vn:null:"accent"===r.type?l.isCharacterBox(r.base)?Wt:null:"horizBrace"===r.type&&!e.sub===r.isOver?ln:null:null};st({type:"supsub",htmlBuilder:function(e,t){var r=wn(e,t);if(r)return r(e,t);var n,a,i,o=e.base,s=e.sup,h=e.sub,c=wt(o,t),m=t.fontMetrics(),u=0,p=0,d=o&&l.isCharacterBox(o);if(s){var f=t.havingStyle(t.style.sup());n=wt(s,f,t),d||(u=c.height-f.fontMetrics().supDrop*f.sizeMultiplier/t.sizeMultiplier)}if(h){var g=t.havingStyle(t.style.sub());a=wt(h,g,t),d||(p=c.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}i=t.style===x.DISPLAY?m.sup1:t.style.cramped?m.sup3:m.sup2;var v,y=t.sizeMultiplier,b=F(.5/m.ptPerEm/y),w=null;if(a){var k=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(c instanceof Z||k)&&(w=F(-c.italic))}if(n&&a){u=Math.max(u,i,n.depth+.25*m.xHeight),p=Math.max(p,m.sub2);var S=4*m.defaultRuleThickness;if(u-n.depth-(a.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:a,shift:p,marginRight:b,marginLeft:w},{type:"elem",elem:n,shift:-u,marginRight:b}];v=Ke.makeVList({positionType:"individualShift",children:z},t)}else if(a){p=Math.max(p,m.sub1,a.height-.8*m.xHeight);var A=[{type:"elem",elem:a,marginLeft:w,marginRight:b}];v=Ke.makeVList({positionType:"shift",positionData:p,children:A},t)}else{if(!n)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,n.depth+.25*m.xHeight),v=Ke.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:n,marginRight:b}]},t)}var T=bt(c,"right")||"mord";return Ke.makeSpan([T],[c,Ke.makeSpan(["msupsub"],[v])],t)},mathmlBuilder:function(e,t){var r,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);var a,i=[Rt(e.base,t)];if(e.sub&&i.push(Rt(e.sub,t)),e.sup&&i.push(Rt(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub)if(e.sup){var o=e.base;a=o&&"op"===o.type&&o.limits&&t.style===x.DISPLAY||o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===x.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=e.base;a=s&&"op"===s.type&&s.limits&&(t.style===x.DISPLAY||s.alwaysHandleSupSub)||s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||t.style===x.DISPLAY)?"munder":"msub"}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===x.DISPLAY||l.alwaysHandleSupSub)||l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===x.DISPLAY)?"mover":"msup"}return new Tt.MathNode(a,i)}}),st({type:"atom",htmlBuilder:function(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[Bt(e.text,e.mode)]);if("bin"===e.family){var n=Nt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});var kn={mi:"italic",mn:"normal",mtext:"normal"};st({type:"mathord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mi",[Bt(e.text,e.mode,t)]),n=Nt(e,t)||"italic";return n!==kn[r.type]&&r.setAttribute("mathvariant",n),r}}),st({type:"textord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder:function(e,t){var r,n=Bt(e.text,e.mode,t),a=Nt(e,t)||"normal";return r="text"===e.mode?new Tt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new Tt.MathNode("mn",[n]):"\\prime"===e.text?new Tt.MathNode("mo",[n]):new Tt.MathNode("mi",[n]),a!==kn[r.type]&&r.setAttribute("mathvariant",a),r}});var Sn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};st({type:"spacing",htmlBuilder:function(e,t){if(Mn.hasOwnProperty(e.text)){var r=Mn[e.text].className||"";if("text"===e.mode){var a=Ke.makeOrd(e,t,"textord");return a.classes.push(r),a}return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}if(Sn.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",Sn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder:function(e,t){if(!Mn.hasOwnProperty(e.text)){if(Sn.hasOwnProperty(e.text))return new Tt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return new Tt.MathNode("mtext",[new Tt.TextNode("\xa0")])}});var zn=function(){var e=new Tt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};st({type:"tag",mathmlBuilder:function(e,t){var r=new Tt.MathNode("mtable",[new Tt.MathNode("mtr",[zn(),new Tt.MathNode("mtd",[It(e.body,t)]),zn(),new Tt.MathNode("mtd",[It(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var An={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Tn={"\\textbf":"textbf","\\textmd":"textmd"},Bn={"\\textit":"textit","\\textup":"textup"},Cn=function(e,t){var r=e.font;return r?An[r]?t.withTextFontFamily(An[r]):Tn[r]?t.withTextFontWeight(Tn[r]):t.withTextFontShape(Bn[r]):t};ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"text",mode:r.mode,body:ht(a),font:n}},htmlBuilder:function(e,t){var r=Cn(e,t),n=ft(e.body,r,!0);return Ke.makeSpan(["mord","text"],n,r)},mathmlBuilder:function(e,t){var r=Cn(e,t);return It(e.body,r)}}),ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=Ke.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[new Tt.TextNode("\u203e")]);r.setAttribute("stretchy","true");var n=new Tt.MathNode("munder",[Rt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(e,t){return{type:"vcenter",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return Ke.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:function(e,t){return new Tt.MathNode("mpadded",[Rt(e.body,t)],["vcenter"])}}),ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var r=Nn(e),n=[],a=t.havingStyle(t.style.text()),i=0;i0;)this.endGroup()},t.has=function(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)},t.get=function(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]},t.set=function(e,t,r){if(void 0===r&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t},e}(),On=Vr;Pr("\\noexpand",(function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Pr("\\expandafter",(function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Pr("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Pr("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Pr("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Pr("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Pr("\\TextOrMath",(function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));var En={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Pr("\\char",(function(e){var t,r=e.popToken(),a="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if("\\"===(r=e.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");a=r.text.charCodeAt(0)}else t=10;if(t){if(null==(a=En[r.text])||a>=t)throw new n("Invalid base-"+t+" digit "+r.text);for(var i;null!=(i=En[e.future().text])&&i":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Pr("\\dots",(function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in Dn?t=Dn[r]:("\\not"===r.slice(0,4)||r in ae.math&&l.contains(["bin","rel"],ae.math[r].group))&&(t="\\dotsb"),t}));var Vn={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Pr("\\dotso",(function(e){return e.future().text in Vn?"\\ldots\\,":"\\ldots"})),Pr("\\dotsc",(function(e){var t=e.future().text;return t in Vn&&","!==t?"\\ldots\\,":"\\ldots"})),Pr("\\cdots",(function(e){return e.future().text in Vn?"\\@cdots\\,":"\\@cdots"})),Pr("\\dotsb","\\cdots"),Pr("\\dotsm","\\cdots"),Pr("\\dotsi","\\!\\cdots"),Pr("\\dotsx","\\ldots\\,"),Pr("\\DOTSI","\\relax"),Pr("\\DOTSB","\\relax"),Pr("\\DOTSX","\\relax"),Pr("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Pr("\\,","\\tmspace+{3mu}{.1667em}"),Pr("\\thinspace","\\,"),Pr("\\>","\\mskip{4mu}"),Pr("\\:","\\tmspace+{4mu}{.2222em}"),Pr("\\medspace","\\:"),Pr("\\;","\\tmspace+{5mu}{.2777em}"),Pr("\\thickspace","\\;"),Pr("\\!","\\tmspace-{3mu}{.1667em}"),Pr("\\negthinspace","\\!"),Pr("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Pr("\\negthickspace","\\tmspace-{5mu}{.277em}"),Pr("\\enspace","\\kern.5em "),Pr("\\enskip","\\hskip.5em\\relax"),Pr("\\quad","\\hskip1em\\relax"),Pr("\\qquad","\\hskip2em\\relax"),Pr("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Pr("\\tag@paren","\\tag@literal{({#1})}"),Pr("\\tag@literal",(function(e){if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Pr("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Pr("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Pr("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Pr("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Pr("\\newline","\\\\\\relax"),Pr("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Pn=F(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Pr("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Pn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Pr("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Pn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Pr("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Pr("\\@hspace","\\hskip #1\\relax"),Pr("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Pr("\\ordinarycolon",":"),Pr("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Pr("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Pr("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Pr("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Pr("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Pr("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Pr("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Pr("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Pr("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Pr("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Pr("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Pr("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Pr("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Pr("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Pr("\u2237","\\dblcolon"),Pr("\u2239","\\eqcolon"),Pr("\u2254","\\coloneqq"),Pr("\u2255","\\eqqcolon"),Pr("\u2a74","\\Coloneqq"),Pr("\\ratio","\\vcentcolon"),Pr("\\coloncolon","\\dblcolon"),Pr("\\colonequals","\\coloneqq"),Pr("\\coloncolonequals","\\Coloneqq"),Pr("\\equalscolon","\\eqqcolon"),Pr("\\equalscoloncolon","\\Eqqcolon"),Pr("\\colonminus","\\coloneq"),Pr("\\coloncolonminus","\\Coloneq"),Pr("\\minuscolon","\\eqcolon"),Pr("\\minuscoloncolon","\\Eqcolon"),Pr("\\coloncolonapprox","\\Colonapprox"),Pr("\\coloncolonsim","\\Colonsim"),Pr("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Pr("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Pr("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Pr("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Pr("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Pr("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Pr("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Pr("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Pr("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Pr("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Pr("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Pr("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Pr("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Pr("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Pr("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Pr("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Pr("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Pr("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Pr("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Pr("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Pr("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Pr("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Pr("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Pr("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Pr("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Pr("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Pr("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Pr("\\imath","\\html@mathml{\\@imath}{\u0131}"),Pr("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Pr("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Pr("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Pr("\u27e6","\\llbracket"),Pr("\u27e7","\\rrbracket"),Pr("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Pr("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Pr("\u2983","\\lBrace"),Pr("\u2984","\\rBrace"),Pr("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Pr("\u29b5","\\minuso"),Pr("\\darr","\\downarrow"),Pr("\\dArr","\\Downarrow"),Pr("\\Darr","\\Downarrow"),Pr("\\lang","\\langle"),Pr("\\rang","\\rangle"),Pr("\\uarr","\\uparrow"),Pr("\\uArr","\\Uparrow"),Pr("\\Uarr","\\Uparrow"),Pr("\\N","\\mathbb{N}"),Pr("\\R","\\mathbb{R}"),Pr("\\Z","\\mathbb{Z}"),Pr("\\alef","\\aleph"),Pr("\\alefsym","\\aleph"),Pr("\\Alpha","\\mathrm{A}"),Pr("\\Beta","\\mathrm{B}"),Pr("\\bull","\\bullet"),Pr("\\Chi","\\mathrm{X}"),Pr("\\clubs","\\clubsuit"),Pr("\\cnums","\\mathbb{C}"),Pr("\\Complex","\\mathbb{C}"),Pr("\\Dagger","\\ddagger"),Pr("\\diamonds","\\diamondsuit"),Pr("\\empty","\\emptyset"),Pr("\\Epsilon","\\mathrm{E}"),Pr("\\Eta","\\mathrm{H}"),Pr("\\exist","\\exists"),Pr("\\harr","\\leftrightarrow"),Pr("\\hArr","\\Leftrightarrow"),Pr("\\Harr","\\Leftrightarrow"),Pr("\\hearts","\\heartsuit"),Pr("\\image","\\Im"),Pr("\\infin","\\infty"),Pr("\\Iota","\\mathrm{I}"),Pr("\\isin","\\in"),Pr("\\Kappa","\\mathrm{K}"),Pr("\\larr","\\leftarrow"),Pr("\\lArr","\\Leftarrow"),Pr("\\Larr","\\Leftarrow"),Pr("\\lrarr","\\leftrightarrow"),Pr("\\lrArr","\\Leftrightarrow"),Pr("\\Lrarr","\\Leftrightarrow"),Pr("\\Mu","\\mathrm{M}"),Pr("\\natnums","\\mathbb{N}"),Pr("\\Nu","\\mathrm{N}"),Pr("\\Omicron","\\mathrm{O}"),Pr("\\plusmn","\\pm"),Pr("\\rarr","\\rightarrow"),Pr("\\rArr","\\Rightarrow"),Pr("\\Rarr","\\Rightarrow"),Pr("\\real","\\Re"),Pr("\\reals","\\mathbb{R}"),Pr("\\Reals","\\mathbb{R}"),Pr("\\Rho","\\mathrm{P}"),Pr("\\sdot","\\cdot"),Pr("\\sect","\\S"),Pr("\\spades","\\spadesuit"),Pr("\\sub","\\subset"),Pr("\\sube","\\subseteq"),Pr("\\supe","\\supseteq"),Pr("\\Tau","\\mathrm{T}"),Pr("\\thetasym","\\vartheta"),Pr("\\weierp","\\wp"),Pr("\\Zeta","\\mathrm{Z}"),Pr("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Pr("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Pr("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Pr("\\bra","\\mathinner{\\langle{#1}|}"),Pr("\\ket","\\mathinner{|{#1}\\rangle}"),Pr("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Pr("\\Bra","\\left\\langle#1\\right|"),Pr("\\Ket","\\left|#1\\right\\rangle");var Fn=function(e){return function(t){var r=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,o=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();var l=function(t){return function(r){e&&(r.macros.set("|",o),a.length&&r.macros.set("\\|",s));var i=t;!t&&a.length&&("|"===r.future().text&&(r.popToken(),i=!0));return{tokens:i?a:n,numArgs:0}}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,c=t.expandTokens([].concat(i,h,r));return t.macros.endGroup(),{tokens:c.reverse(),numArgs:0}}};Pr("\\bra@ket",Fn(!1)),Pr("\\bra@set",Fn(!0)),Pr("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Pr("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Pr("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Pr("\\angln","{\\angl n}"),Pr("\\blue","\\textcolor{##6495ed}{#1}"),Pr("\\orange","\\textcolor{##ffa500}{#1}"),Pr("\\pink","\\textcolor{##ff00af}{#1}"),Pr("\\red","\\textcolor{##df0030}{#1}"),Pr("\\green","\\textcolor{##28ae7b}{#1}"),Pr("\\gray","\\textcolor{gray}{#1}"),Pr("\\purple","\\textcolor{##9d38bd}{#1}"),Pr("\\blueA","\\textcolor{##ccfaff}{#1}"),Pr("\\blueB","\\textcolor{##80f6ff}{#1}"),Pr("\\blueC","\\textcolor{##63d9ea}{#1}"),Pr("\\blueD","\\textcolor{##11accd}{#1}"),Pr("\\blueE","\\textcolor{##0c7f99}{#1}"),Pr("\\tealA","\\textcolor{##94fff5}{#1}"),Pr("\\tealB","\\textcolor{##26edd5}{#1}"),Pr("\\tealC","\\textcolor{##01d1c1}{#1}"),Pr("\\tealD","\\textcolor{##01a995}{#1}"),Pr("\\tealE","\\textcolor{##208170}{#1}"),Pr("\\greenA","\\textcolor{##b6ffb0}{#1}"),Pr("\\greenB","\\textcolor{##8af281}{#1}"),Pr("\\greenC","\\textcolor{##74cf70}{#1}"),Pr("\\greenD","\\textcolor{##1fab54}{#1}"),Pr("\\greenE","\\textcolor{##0d923f}{#1}"),Pr("\\goldA","\\textcolor{##ffd0a9}{#1}"),Pr("\\goldB","\\textcolor{##ffbb71}{#1}"),Pr("\\goldC","\\textcolor{##ff9c39}{#1}"),Pr("\\goldD","\\textcolor{##e07d10}{#1}"),Pr("\\goldE","\\textcolor{##a75a05}{#1}"),Pr("\\redA","\\textcolor{##fca9a9}{#1}"),Pr("\\redB","\\textcolor{##ff8482}{#1}"),Pr("\\redC","\\textcolor{##f9685d}{#1}"),Pr("\\redD","\\textcolor{##e84d39}{#1}"),Pr("\\redE","\\textcolor{##bc2612}{#1}"),Pr("\\maroonA","\\textcolor{##ffbde0}{#1}"),Pr("\\maroonB","\\textcolor{##ff92c6}{#1}"),Pr("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Pr("\\maroonD","\\textcolor{##ca337c}{#1}"),Pr("\\maroonE","\\textcolor{##9e034e}{#1}"),Pr("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Pr("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Pr("\\purpleC","\\textcolor{##aa87ff}{#1}"),Pr("\\purpleD","\\textcolor{##7854ab}{#1}"),Pr("\\purpleE","\\textcolor{##543b78}{#1}"),Pr("\\mintA","\\textcolor{##f5f9e8}{#1}"),Pr("\\mintB","\\textcolor{##edf2df}{#1}"),Pr("\\mintC","\\textcolor{##e0e5cc}{#1}"),Pr("\\grayA","\\textcolor{##f6f7f7}{#1}"),Pr("\\grayB","\\textcolor{##f0f1f2}{#1}"),Pr("\\grayC","\\textcolor{##e3e5e6}{#1}"),Pr("\\grayD","\\textcolor{##d6d8da}{#1}"),Pr("\\grayE","\\textcolor{##babec2}{#1}"),Pr("\\grayF","\\textcolor{##888d93}{#1}"),Pr("\\grayG","\\textcolor{##626569}{#1}"),Pr("\\grayH","\\textcolor{##3b3e40}{#1}"),Pr("\\grayI","\\textcolor{##21242c}{#1}"),Pr("\\kaBlue","\\textcolor{##314453}{#1}"),Pr("\\kaGreen","\\textcolor{##71B307}{#1}");var Gn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},Un=function(){function e(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new Hn(On,t.macros),this.mode=r,this.stack=[]}var t=e.prototype;return t.feed=function(e){this.lexer=new Rn(e,this.settings)},t.switchMode=function(e){this.mode=e},t.beginGroup=function(){this.macros.beginGroup()},t.endGroup=function(){this.macros.endGroup()},t.endGroups=function(){this.macros.endGroups()},t.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},t.popToken=function(){return this.future(),this.stack.pop()},t.pushToken=function(e){this.stack.push(e)},t.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},t.scanArgument=function(e){var t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken();var a=this.consumeArg(["]"]);n=a.tokens,r=a.end}else{var i=this.consumeArg();n=i.tokens,t=i.start,r=i.end}return this.pushToken(new Gr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")},t.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},t.consumeArg=function(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var a,i=this.future(),o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(-1===--o)throw new n("Extra }",a)}else if("EOF"===a.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[s]:"}")+"'",a);if(e&&r)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||r);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}},t.consumeArgs=function(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting");var i=a.tokens,o=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs)for(var s=(i=i.slice()).length-1;s>=0;--s){var l=i[s];if("#"===l.text){if(0===s)throw new n("Incomplete placeholder at end of macro body",l);if("#"===(l=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new n("Not a valid argument number",l);var h;(h=i).splice.apply(h,[s,2].concat(o[+l.text-1]))}}}return this.pushTokens(i),i},t.expandAfterFuture=function(){return this.expandOnce(),this.future()},t.expandNextToken=function(){for(;;){var e=this.expandOnce();if(e instanceof Gr)return e.treatAsRelax&&(e.text="\\relax"),this.stack.pop()}throw new Error},t.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new Gr(e)]):void 0},t.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;){var n=this.expandOnce(!0);n instanceof Gr&&(n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(this.stack.pop()))}return t},t.expandMacroAsText=function(e){var t=this.expandMacro(e);return t?t.map((function(e){return e.text})).join(""):t},t._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var n="function"==typeof t?t(this):t;if("string"==typeof n){var a=0;if(-1!==n.indexOf("#"))for(var i=n.replace(/##/g,"");-1!==i.indexOf("#"+(a+1));)++a;for(var o=new Rn(n,this.settings),s=[],l=o.lex();"EOF"!==l.text;)s.push(l),l=o.lex();return s.reverse(),{tokens:s,numArgs:a}}return n},t.isDefined=function(e){return this.macros.has(e)||qn.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Gn.hasOwnProperty(e)},t.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:qn.hasOwnProperty(e)&&!qn[e].primitive},e}(),Yn=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,Xn=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Wn={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},_n={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},jn=function(){function e(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Un(e,t,this.mode),this.settings=t,this.leftrightDepth=0}var t=e.prototype;return t.expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},t.consume=function(){this.nextToken=null},t.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},t.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},t.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},t.subparse=function(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new Gr("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r},t.parseExpression=function(t,r){for(var n=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==e.endOfExpression.indexOf(a.text))break;if(r&&a.text===r)break;if(t&&qn[a.text]&&qn[a.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)},t.handleInfixNodes=function(e){for(var t,r=-1,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var s,l=ae[this.mode][t].group,h=Fr.range(e);if(te.hasOwnProperty(l)){var c=l;s={type:"atom",mode:this.mode,family:c,loc:h,text:t}}else s={type:l,mode:this.mode,loc:h,text:t};i=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:Fr.range(e),text:t}}if(this.consume(),o)for(var m=0;m15?"\u2026"+s.slice(n-15,n):s.slice(0,n))+l+(a+15":">","<":"<",'"':""","'":"'"},o=/[&><"']/g;var s=function e(t){return"ordgroup"===t.type||"color"===t.type?1===t.body.length?e(t.body[0]):t:"font"===t.type?e(t.body):t},l={contains:function(e,t){return-1!==e.indexOf(t)},deflt:function(e,t){return void 0===e?t:e},escape:function(e){return String(e).replace(o,(function(e){return i[e]}))},hyphenate:function(e){return e.replace(a,"-$1").toLowerCase()},getBaseElem:s,isCharacterBox:function(e){var t=s(e);return"mathord"===t.type||"textord"===t.type||"atom"===t.type},protocolFromUrl:function(e){var t=/^\s*([^\\/#]*?)(?::|�*58|�*3a)/i.exec(e);return null!=t?t[1]:"_relative"}},h={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:function(e){return"#"+e}},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:function(e,t){return t.push(e),t}},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:function(e){return Math.max(0,e)},cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:function(e){return Math.max(0,e)},cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:function(e){return Math.max(0,e)},cli:"-e, --max-expand ",cliProcessor:function(e){return"Infinity"===e?1/0:parseInt(e)}},globalGroup:{type:"boolean",cli:!1}};function c(e){if(e.default)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if("string"!=typeof r)return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var m=function(){function e(e){for(var t in this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{},h)if(h.hasOwnProperty(t)){var r=h[t];this[t]=void 0!==e[t]?r.processor?r.processor(e[t]):e[t]:c(r)}}var t=e.prototype;return t.reportNonstrict=function(e,t,r){var a=this.strict;if("function"==typeof a&&(a=a(e,t,r)),a&&"ignore"!==a){if(!0===a||"error"===a)throw new n("LaTeX-incompatible input and strict mode is set to 'error': "+t+" ["+e+"]",r);"warn"===a?"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"):"undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+a+"': "+t+" ["+e+"]")}},t.useStrictBehavior=function(e,t,r){var n=this.strict;if("function"==typeof n)try{n=n(e,t,r)}catch(e){n="error"}return!(!n||"ignore"===n)&&(!0===n||"error"===n||("warn"===n?("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+t+" ["+e+"]"),!1):("undefined"!=typeof console&&console.warn("LaTeX-incompatible input and strict mode is set to unrecognized '"+n+"': "+t+" ["+e+"]"),!1)))},t.isTrusted=function(e){e.url&&!e.protocol&&(e.protocol=l.protocolFromUrl(e.url));var t="function"==typeof this.trust?this.trust(e):this.trust;return Boolean(t)},e}(),u=function(){function e(e,t,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=r}var t=e.prototype;return t.sup=function(){return p[d[this.id]]},t.sub=function(){return p[f[this.id]]},t.fracNum=function(){return p[g[this.id]]},t.fracDen=function(){return p[v[this.id]]},t.cramp=function(){return p[b[this.id]]},t.text=function(){return p[y[this.id]]},t.isTight=function(){return this.size>=2},e}(),p=[new u(0,0,!1),new u(1,0,!0),new u(2,1,!1),new u(3,1,!0),new u(4,2,!1),new u(5,2,!0),new u(6,3,!1),new u(7,3,!0)],d=[4,5,4,5,6,7,6,7],f=[5,5,5,5,7,7,7,7],g=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],x={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},w=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];var k=[];function S(e){for(var t=0;t=k[t]&&e<=k[t+1])return!0;return!1}w.forEach((function(e){return e.blocks.forEach((function(e){return k.push.apply(k,e)}))}));var M=80,z={doubleleftarrow:"M262 157\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\nm8 0v40h399730v-40zm0 194v40h399730v-40z",doublerightarrow:"M399738 392l\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z",leftarrow:"M400000 241H110l3-3c68.7-52.7 113.7-120\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\n l-3-3h399890zM100 241v40h399900v-40z",leftbrace:"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z",leftbraceunder:"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z",leftgroup:"M400000 80\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\n 435 0h399565z",leftgroupunder:"M400000 262\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\n 435 219h399565z",leftharpoon:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z",leftharpoonplus:"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\nm0 0v40h400000v-40z",leftharpoondown:"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z",leftharpoondownplus:"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z",lefthook:"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\n 71.5 23h399859zM103 281v-40h399897v40z",leftlinesegment:"M40 281 V428 H0 V94 H40 V241 H400000 v40z\nM40 281 V428 H0 V94 H40 V241 H400000 v40z",leftmapsto:"M40 281 V448H0V74H40V241H400000v40z\nM40 281 V448H0V74H40V241H400000v40z",leftToFrom:"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z",longequal:"M0 50 h400000 v40H0z m0 194h40000v40H0z\nM0 50 h400000 v40H0z m0 194h40000v40H0z",midbrace:"M200428 334\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z",midbraceunder:"M199572 214\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z",oiintSize1:"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z",oiintSize2:"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\nc0 110 84 276 504 276s502.4-166 502.4-276z",oiiintSize1:"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z",oiiintSize2:"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z",rightarrow:"M0 241v40h399891c-47.3 35.3-84 78-110 128\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n 151.7 139 205zm0 0v40h399900v-40z",rightbrace:"M400000 542l\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z",rightbraceunder:"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z",rightgroup:"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\n 3-1 3-3v-38c-76-158-257-219-435-219H0z",rightgroupunder:"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z",rightharpoon:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\n 69.2 92 94.5zm0 0v40h399900v-40z",rightharpoonplus:"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z",rightharpoondown:"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z",rightharpoondownplus:"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\nm0-194v40h400000v-40zm0 0v40h400000v-40z",righthook:"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z",rightlinesegment:"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z",rightToFrom:"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z",twoheadleftarrow:"M0 167c68 40\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z",twoheadrightarrow:"M400000 167\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z",tilde1:"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\n-68.267.847-113-73.952-191-73.952z",tilde2:"M344 55.266c-142 0-300.638 81.316-311.5 86.418\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z",tilde3:"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\n -338 0-409-156.573-744-156.573z",tilde4:"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\n -175.236-744-175.236z",vec:"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\nc-16-25.333-24-45-24-59z",widehat1:"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z",widehat2:"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat3:"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widehat4:"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z",widecheck1:"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z",widecheck2:"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck3:"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",widecheck4:"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z",baraboveleftarrow:"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z",rightarrowabovebar:"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z",baraboveshortleftharpoon:"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z",rightharpoonaboveshortbar:"M0,241 l0,40c399126,0,399993,0,399993,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z",shortbaraboveleftharpoon:"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z",shortrightharpoonabovebar:"M53,241l0,40c398570,0,399437,0,399437,0\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z"},A=function(){function e(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){for(var e=document.createDocumentFragment(),t=0;t=5?0:e>=3?1:2]){var r=q[t]={cssEmPerMu:B.quad[t]/18};for(var n in B)B.hasOwnProperty(n)&&(r[n]=B[n][t])}return q[t]}(this.size)),this._fontMetrics},t.getColor=function(){return this.phantom?"transparent":this.color},e}();O.BASESIZE=6;var E=O,L={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},D={ex:!0,em:!0,mu:!0},V=function(e){return"string"!=typeof e&&(e=e.unit),e in L||e in D||"ex"===e},P=function(e,t){var r;if(e.unit in L)r=L[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if("mu"===e.unit)r=t.fontMetrics().cssEmPerMu;else{var a;if(a=t.style.isTight()?t.havingStyle(t.style.text()):t,"ex"===e.unit)r=a.fontMetrics().xHeight;else{if("em"!==e.unit)throw new n("Invalid unit: '"+e.unit+"'");r=a.fontMetrics().quad}a!==t&&(r*=a.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*r,t.maxSize)},F=function(e){return+e.toFixed(4)+"em"},G=function(e){return e.filter((function(e){return e})).join(" ")},U=function(e,t,r){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},Y=function(e){var t=document.createElement(e);for(var r in t.className=G(this.classes),this.style)this.style.hasOwnProperty(r)&&(t.style[r]=this.style[r]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var a=0;a"},W=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,e,r,n),this.children=t||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"span")},t.toMarkup=function(){return X.call(this,"span")},e}(),_=function(){function e(e,t,r,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,U.call(this,t,n),this.children=r||[],this.setAttribute("href",e)}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){return Y.call(this,"a")},t.toMarkup=function(){return X.call(this,"a")},e}(),j=function(){function e(e,t,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=r}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createElement("img");for(var t in e.src=this.src,e.alt=this.alt,e.className="mord",this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e},t.toMarkup=function(){var e=""+this.alt+"=a[0]&&e<=a[1])return r.name}return null}(this.text.charCodeAt(0));l&&this.classes.push(l+"_fallback"),/[\xee\xef\xed\xec]/.test(this.text)&&(this.text=$[this.text])}var t=e.prototype;return t.hasClass=function(e){return l.contains(this.classes,e)},t.toNode=function(){var e=document.createTextNode(this.text),t=null;for(var r in this.italic>0&&((t=document.createElement("span")).style.marginRight=F(this.italic)),this.classes.length>0&&((t=t||document.createElement("span")).className=G(this.classes)),this.style)this.style.hasOwnProperty(r)&&((t=t||document.createElement("span")).style[r]=this.style[r]);return t?(t.appendChild(e),t):e},t.toMarkup=function(){var e=!1,t="0&&(r+="margin-right:"+this.italic+"em;"),this.style)this.style.hasOwnProperty(n)&&(r+=l.hyphenate(n)+":"+this.style[n]+";");r&&(e=!0,t+=' style="'+l.escape(r)+'"');var a=l.escape(this.text);return e?(t+=">",t+=a,t+=""):a},e}(),K=function(){function e(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","svg");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);for(var r=0;r":""},e}(),Q=function(){function e(e){this.attributes=void 0,this.attributes=e||{}}var t=e.prototype;return t.toNode=function(){var e=document.createElementNS("http://www.w3.org/2000/svg","line");for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);return e},t.toMarkup=function(){var e="","\\gt",!0),ie(oe,le,be,"\u2208","\\in",!0),ie(oe,le,be,"\ue020","\\@not"),ie(oe,le,be,"\u2282","\\subset",!0),ie(oe,le,be,"\u2283","\\supset",!0),ie(oe,le,be,"\u2286","\\subseteq",!0),ie(oe,le,be,"\u2287","\\supseteq",!0),ie(oe,he,be,"\u2288","\\nsubseteq",!0),ie(oe,he,be,"\u2289","\\nsupseteq",!0),ie(oe,le,be,"\u22a8","\\models"),ie(oe,le,be,"\u2190","\\leftarrow",!0),ie(oe,le,be,"\u2264","\\le"),ie(oe,le,be,"\u2264","\\leq",!0),ie(oe,le,be,"<","\\lt",!0),ie(oe,le,be,"\u2192","\\rightarrow",!0),ie(oe,le,be,"\u2192","\\to"),ie(oe,he,be,"\u2271","\\ngeq",!0),ie(oe,he,be,"\u2270","\\nleq",!0),ie(oe,le,ye,"\xa0","\\ "),ie(oe,le,ye,"\xa0","\\space"),ie(oe,le,ye,"\xa0","\\nobreakspace"),ie(se,le,ye,"\xa0","\\ "),ie(se,le,ye,"\xa0"," "),ie(se,le,ye,"\xa0","\\space"),ie(se,le,ye,"\xa0","\\nobreakspace"),ie(oe,le,ye,null,"\\nobreak"),ie(oe,le,ye,null,"\\allowbreak"),ie(oe,le,ve,",",","),ie(oe,le,ve,";",";"),ie(oe,he,me,"\u22bc","\\barwedge",!0),ie(oe,he,me,"\u22bb","\\veebar",!0),ie(oe,le,me,"\u2299","\\odot",!0),ie(oe,le,me,"\u2295","\\oplus",!0),ie(oe,le,me,"\u2297","\\otimes",!0),ie(oe,le,xe,"\u2202","\\partial",!0),ie(oe,le,me,"\u2298","\\oslash",!0),ie(oe,he,me,"\u229a","\\circledcirc",!0),ie(oe,he,me,"\u22a1","\\boxdot",!0),ie(oe,le,me,"\u25b3","\\bigtriangleup"),ie(oe,le,me,"\u25bd","\\bigtriangledown"),ie(oe,le,me,"\u2020","\\dagger"),ie(oe,le,me,"\u22c4","\\diamond"),ie(oe,le,me,"\u22c6","\\star"),ie(oe,le,me,"\u25c3","\\triangleleft"),ie(oe,le,me,"\u25b9","\\triangleright"),ie(oe,le,ge,"{","\\{"),ie(se,le,xe,"{","\\{"),ie(se,le,xe,"{","\\textbraceleft"),ie(oe,le,ue,"}","\\}"),ie(se,le,xe,"}","\\}"),ie(se,le,xe,"}","\\textbraceright"),ie(oe,le,ge,"{","\\lbrace"),ie(oe,le,ue,"}","\\rbrace"),ie(oe,le,ge,"[","\\lbrack",!0),ie(se,le,xe,"[","\\lbrack",!0),ie(oe,le,ue,"]","\\rbrack",!0),ie(se,le,xe,"]","\\rbrack",!0),ie(oe,le,ge,"(","\\lparen",!0),ie(oe,le,ue,")","\\rparen",!0),ie(se,le,xe,"<","\\textless",!0),ie(se,le,xe,">","\\textgreater",!0),ie(oe,le,ge,"\u230a","\\lfloor",!0),ie(oe,le,ue,"\u230b","\\rfloor",!0),ie(oe,le,ge,"\u2308","\\lceil",!0),ie(oe,le,ue,"\u2309","\\rceil",!0),ie(oe,le,xe,"\\","\\backslash"),ie(oe,le,xe,"\u2223","|"),ie(oe,le,xe,"\u2223","\\vert"),ie(se,le,xe,"|","\\textbar",!0),ie(oe,le,xe,"\u2225","\\|"),ie(oe,le,xe,"\u2225","\\Vert"),ie(se,le,xe,"\u2225","\\textbardbl"),ie(se,le,xe,"~","\\textasciitilde"),ie(se,le,xe,"\\","\\textbackslash"),ie(se,le,xe,"^","\\textasciicircum"),ie(oe,le,be,"\u2191","\\uparrow",!0),ie(oe,le,be,"\u21d1","\\Uparrow",!0),ie(oe,le,be,"\u2193","\\downarrow",!0),ie(oe,le,be,"\u21d3","\\Downarrow",!0),ie(oe,le,be,"\u2195","\\updownarrow",!0),ie(oe,le,be,"\u21d5","\\Updownarrow",!0),ie(oe,le,fe,"\u2210","\\coprod"),ie(oe,le,fe,"\u22c1","\\bigvee"),ie(oe,le,fe,"\u22c0","\\bigwedge"),ie(oe,le,fe,"\u2a04","\\biguplus"),ie(oe,le,fe,"\u22c2","\\bigcap"),ie(oe,le,fe,"\u22c3","\\bigcup"),ie(oe,le,fe,"\u222b","\\int"),ie(oe,le,fe,"\u222b","\\intop"),ie(oe,le,fe,"\u222c","\\iint"),ie(oe,le,fe,"\u222d","\\iiint"),ie(oe,le,fe,"\u220f","\\prod"),ie(oe,le,fe,"\u2211","\\sum"),ie(oe,le,fe,"\u2a02","\\bigotimes"),ie(oe,le,fe,"\u2a01","\\bigoplus"),ie(oe,le,fe,"\u2a00","\\bigodot"),ie(oe,le,fe,"\u222e","\\oint"),ie(oe,le,fe,"\u222f","\\oiint"),ie(oe,le,fe,"\u2230","\\oiiint"),ie(oe,le,fe,"\u2a06","\\bigsqcup"),ie(oe,le,fe,"\u222b","\\smallint"),ie(se,le,pe,"\u2026","\\textellipsis"),ie(oe,le,pe,"\u2026","\\mathellipsis"),ie(se,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u2026","\\ldots",!0),ie(oe,le,pe,"\u22ef","\\@cdots",!0),ie(oe,le,pe,"\u22f1","\\ddots",!0),ie(oe,le,xe,"\u22ee","\\varvdots"),ie(oe,le,ce,"\u02ca","\\acute"),ie(oe,le,ce,"\u02cb","\\grave"),ie(oe,le,ce,"\xa8","\\ddot"),ie(oe,le,ce,"~","\\tilde"),ie(oe,le,ce,"\u02c9","\\bar"),ie(oe,le,ce,"\u02d8","\\breve"),ie(oe,le,ce,"\u02c7","\\check"),ie(oe,le,ce,"^","\\hat"),ie(oe,le,ce,"\u20d7","\\vec"),ie(oe,le,ce,"\u02d9","\\dot"),ie(oe,le,ce,"\u02da","\\mathring"),ie(oe,le,de,"\ue131","\\@imath"),ie(oe,le,de,"\ue237","\\@jmath"),ie(oe,le,xe,"\u0131","\u0131"),ie(oe,le,xe,"\u0237","\u0237"),ie(se,le,xe,"\u0131","\\i",!0),ie(se,le,xe,"\u0237","\\j",!0),ie(se,le,xe,"\xdf","\\ss",!0),ie(se,le,xe,"\xe6","\\ae",!0),ie(se,le,xe,"\u0153","\\oe",!0),ie(se,le,xe,"\xf8","\\o",!0),ie(se,le,xe,"\xc6","\\AE",!0),ie(se,le,xe,"\u0152","\\OE",!0),ie(se,le,xe,"\xd8","\\O",!0),ie(se,le,ce,"\u02ca","\\'"),ie(se,le,ce,"\u02cb","\\`"),ie(se,le,ce,"\u02c6","\\^"),ie(se,le,ce,"\u02dc","\\~"),ie(se,le,ce,"\u02c9","\\="),ie(se,le,ce,"\u02d8","\\u"),ie(se,le,ce,"\u02d9","\\."),ie(se,le,ce,"\xb8","\\c"),ie(se,le,ce,"\u02da","\\r"),ie(se,le,ce,"\u02c7","\\v"),ie(se,le,ce,"\xa8",'\\"'),ie(se,le,ce,"\u02dd","\\H"),ie(se,le,ce,"\u25ef","\\textcircled");var we={"--":!0,"---":!0,"``":!0,"''":!0};ie(se,le,xe,"\u2013","--",!0),ie(se,le,xe,"\u2013","\\textendash"),ie(se,le,xe,"\u2014","---",!0),ie(se,le,xe,"\u2014","\\textemdash"),ie(se,le,xe,"\u2018","`",!0),ie(se,le,xe,"\u2018","\\textquoteleft"),ie(se,le,xe,"\u2019","'",!0),ie(se,le,xe,"\u2019","\\textquoteright"),ie(se,le,xe,"\u201c","``",!0),ie(se,le,xe,"\u201c","\\textquotedblleft"),ie(se,le,xe,"\u201d","''",!0),ie(se,le,xe,"\u201d","\\textquotedblright"),ie(oe,le,xe,"\xb0","\\degree",!0),ie(se,le,xe,"\xb0","\\degree"),ie(se,le,xe,"\xb0","\\textdegree",!0),ie(oe,le,xe,"\xa3","\\pounds"),ie(oe,le,xe,"\xa3","\\mathsterling",!0),ie(se,le,xe,"\xa3","\\pounds"),ie(se,le,xe,"\xa3","\\textsterling",!0),ie(oe,he,xe,"\u2720","\\maltese"),ie(se,he,xe,"\u2720","\\maltese");for(var ke='0123456789/@."',Se=0;Set&&(t=i.height),i.depth>r&&(r=i.depth),i.maxFontSize>n&&(n=i.maxFontSize)}e.height=t,e.depth=r,e.maxFontSize=n},Xe=function(e,t,r,n){var a=new W(e,t,r,n);return Ye(a),a},We=function(e,t,r,n){return new W(e,t,r,n)},_e=function(e){var t=new A(e);return Ye(t),t},je=function(e,t,r){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}return n+"-"+("textbf"===t&&"textit"===r?"BoldItalic":"textbf"===t?"Bold":"textit"===t?"Italic":"Regular")},$e={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Ze={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},Ke={fontMap:$e,makeSymbol:Ge,mathsym:function(e,t,r,n){return void 0===n&&(n=[]),"boldsymbol"===r.font&&Fe(e,"Main-Bold",t).metrics?Ge(e,"Main-Bold",t,r,n.concat(["mathbf"])):"\\"===e||"main"===ae[t][e].font?Ge(e,"Main-Regular",t,r,n):Ge(e,"AMS-Regular",t,r,n.concat(["amsrm"]))},makeSpan:Xe,makeSvgSpan:We,makeLineSpan:function(e,t,r){var n=Xe([e],[],t);return n.height=Math.max(r||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=F(n.height),n.maxFontSize=1,n},makeAnchor:function(e,t,r,n){var a=new _(e,t,r,n);return Ye(a),a},makeFragment:_e,wrapFragment:function(e,t){return e instanceof A?Xe([],[e],t):e},makeVList:function(e,t){for(var r=function(e){if("individualShift"===e.positionType){for(var t=e.children,r=[t[0]],n=-t[0].shift-t[0].elem.depth,a=n,i=1;i0)return Ge(i,h,a,t,o.concat(c));if(l){var u,p;if("boldsymbol"===l){var d=function(e,t,r,n,a){return"textord"!==a&&Fe(e,"Math-BoldItalic",t).metrics?{fontName:"Math-BoldItalic",fontClass:"boldsymbol"}:{fontName:"Main-Bold",fontClass:"mathbf"}}(i,a,0,0,r);u=d.fontName,p=[d.fontClass]}else s?(u=$e[l].fontName,p=[l]):(u=je(l,t.fontWeight,t.fontShape),p=[l,t.fontWeight,t.fontShape]);if(Fe(i,u,a).metrics)return Ge(i,u,a,t,o.concat(p));if(we.hasOwnProperty(i)&&"Typewriter"===u.slice(0,10)){for(var f=[],g=0;g0&&(o.push(kt(s,t)),s=[]),o.push(a[l]));s.length>0&&o.push(kt(s,t)),r?((i=kt(ft(r,t,!0))).classes=["tag"],o.push(i)):n&&o.push(n);var c=ct(["katex-html"],o);if(c.setAttribute("aria-hidden","true"),i){var m=i.children[0];m.style.height=F(c.height+c.depth),c.depth&&(m.style.verticalAlign=F(-c.depth))}return c}function Mt(e){return new A(e)}var zt=function(){function e(e,t,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=r||[]}var t=e.prototype;return t.setAttribute=function(e,t){this.attributes[e]=t},t.getAttribute=function(e){return this.attributes[e]},t.toNode=function(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=G(this.classes));for(var r=0;r0&&(e+=' class ="'+l.escape(G(this.classes))+'"'),e+=">";for(var r=0;r"},t.toText=function(){return this.children.map((function(e){return e.toText()})).join("")},e}(),At=function(){function e(e){this.text=void 0,this.text=e}var t=e.prototype;return t.toNode=function(){return document.createTextNode(this.text)},t.toMarkup=function(){return l.escape(this.toText())},t.toText=function(){return this.text},e}(),Tt={MathNode:zt,TextNode:At,SpaceNode:function(){function e(e){this.width=void 0,this.character=void 0,this.width=e,this.character=e>=.05555&&e<=.05556?"\u200a":e>=.1666&&e<=.1667?"\u2009":e>=.2222&&e<=.2223?"\u2005":e>=.2777&&e<=.2778?"\u2005\u200a":e>=-.05556&&e<=-.05555?"\u200a\u2063":e>=-.1667&&e<=-.1666?"\u2009\u2063":e>=-.2223&&e<=-.2222?"\u205f\u2063":e>=-.2778&&e<=-.2777?"\u2005\u2063":null}var t=e.prototype;return t.toNode=function(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",F(this.width)),e},t.toMarkup=function(){return this.character?""+this.character+"":''},t.toText=function(){return this.character?this.character:" "},e}(),newDocumentFragment:Mt},Bt=function(e,t,r){return!ae[t][e]||!ae[t][e].replace||55349===e.charCodeAt(0)||we.hasOwnProperty(e)&&r&&(r.fontFamily&&"tt"===r.fontFamily.slice(4,6)||r.font&&"tt"===r.font.slice(4,6))||(e=ae[t][e].replace),new Tt.TextNode(e)},Ct=function(e){return 1===e.length?e[0]:new Tt.MathNode("mrow",e)},Nt=function(e,t){if("texttt"===t.fontFamily)return"monospace";if("textsf"===t.fontFamily)return"textit"===t.fontShape&&"textbf"===t.fontWeight?"sans-serif-bold-italic":"textit"===t.fontShape?"sans-serif-italic":"textbf"===t.fontWeight?"bold-sans-serif":"sans-serif";if("textit"===t.fontShape&&"textbf"===t.fontWeight)return"bold-italic";if("textit"===t.fontShape)return"italic";if("textbf"===t.fontWeight)return"bold";var r=t.font;if(!r||"mathnormal"===r)return null;var n=e.mode;if("mathit"===r)return"italic";if("boldsymbol"===r)return"textord"===e.type?"bold":"bold-italic";if("mathbf"===r)return"bold";if("mathbb"===r)return"double-struck";if("mathfrak"===r)return"fraktur";if("mathscr"===r||"mathcal"===r)return"script";if("mathsf"===r)return"sans-serif";if("mathtt"===r)return"monospace";var a=e.text;return l.contains(["\\imath","\\jmath"],a)?null:(ae[n][a]&&ae[n][a].replace&&(a=ae[n][a].replace),N(a,Ke.fontMap[r].fontName,n)?Ke.fontMap[r].variant:null)},qt=function(e,t,r){if(1===e.length){var n=Rt(e[0],t);return r&&n instanceof zt&&"mo"===n.type&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var a,i=[],o=0;o0&&(p.text=p.text.slice(0,1)+"\u0338"+p.text.slice(1),i.pop())}}}i.push(s),a=s}return i},It=function(e,t,r){return Ct(qt(e,t,r))},Rt=function(e,t){if(!e)return new Tt.MathNode("mrow");if(it[e.type])return it[e.type](e,t);throw new n("Got group of unknown type: '"+e.type+"'")};function Ht(e,t,r,n,a){var i,o=qt(e,r);i=1===o.length&&o[0]instanceof zt&&l.contains(["mrow","mtable"],o[0].type)?o[0]:new Tt.MathNode("mrow",o);var s=new Tt.MathNode("annotation",[new Tt.TextNode(t)]);s.setAttribute("encoding","application/x-tex");var h=new Tt.MathNode("semantics",[i,s]),c=new Tt.MathNode("math",[h]);c.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),n&&c.setAttribute("display","block");var m=a?"katex":"katex-mathml";return Ke.makeSpan([m],[c])}var Ot=function(e){return new E({style:e.displayMode?x.DISPLAY:x.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Et=function(e,t){if(t.displayMode){var r=["katex-display"];t.leqno&&r.push("leqno"),t.fleqn&&r.push("fleqn"),e=Ke.makeSpan(r,[e])}return e},Lt=function(e,t,r){var n,a=Ot(r);if("mathml"===r.output)return Ht(e,t,a,r.displayMode,!0);if("html"===r.output){var i=St(e,a);n=Ke.makeSpan(["katex"],[i])}else{var o=Ht(e,t,a,r.displayMode,!1),s=St(e,a);n=Ke.makeSpan(["katex"],[o,s])}return Et(n,r)},Dt={widehat:"^",widecheck:"\u02c7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23df",overbrace:"\u23de",overgroup:"\u23e0",undergroup:"\u23e1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21d2",xRightarrow:"\u21d2",overleftharpoon:"\u21bc",xleftharpoonup:"\u21bc",overrightharpoon:"\u21c0",xrightharpoonup:"\u21c0",xLeftarrow:"\u21d0",xLeftrightarrow:"\u21d4",xhookleftarrow:"\u21a9",xhookrightarrow:"\u21aa",xmapsto:"\u21a6",xrightharpoondown:"\u21c1",xleftharpoondown:"\u21bd",xrightleftharpoons:"\u21cc",xleftrightharpoons:"\u21cb",xtwoheadleftarrow:"\u219e",xtwoheadrightarrow:"\u21a0",xlongequal:"=",xtofrom:"\u21c4",xrightleftarrows:"\u21c4",xrightequilibrium:"\u21cc",xleftequilibrium:"\u21cb","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},Vt={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},Pt=function(e,t,r,n,a){var i,o=e.height+e.depth+r+n;if(/fbox|color|angl/.test(t)){if(i=Ke.makeSpan(["stretchy",t],[],a),"fbox"===t){var s=a.color&&a.getColor();s&&(i.style.borderColor=s)}}else{var l=[];/^[bx]cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&l.push(new Q({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var h=new K(l,{width:"100%",height:F(o)});i=Ke.makeSvgSpan([],[h],a)}return i.height=o,i.style.height=F(o),i},Ft=function(e){var t=new Tt.MathNode("mo",[new Tt.TextNode(Dt[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},Gt=function(e,t){var r=function(){var r=4e5,n=e.label.slice(1);if(l.contains(["widehat","widecheck","widetilde","utilde"],n)){var a,i,o,s="ordgroup"===(d=e.base).type?d.body.length:1;if(s>5)"widehat"===n||"widecheck"===n?(a=420,r=2364,o=.42,i=n+"4"):(a=312,r=2340,o=.34,i="tilde4");else{var h=[1,1,2,2,3,3][s];"widehat"===n||"widecheck"===n?(r=[0,1062,2364,2364,2364][h],a=[0,239,300,360,420][h],o=[0,.24,.3,.3,.36,.42][h],i=n+h):(r=[0,600,1033,2339,2340][h],a=[0,260,286,306,312][h],o=[0,.26,.286,.3,.306,.34][h],i="tilde"+h)}var c=new J(i),m=new K([c],{width:"100%",height:F(o),viewBox:"0 0 "+r+" "+a,preserveAspectRatio:"none"});return{span:Ke.makeSvgSpan([],[m],t),minWidth:0,height:o}}var u,p,d,f=[],g=Vt[n],v=g[0],b=g[1],y=g[2],x=y/1e3,w=v.length;if(1===w)u=["hide-tail"],p=[g[3]];else if(2===w)u=["halfarrow-left","halfarrow-right"],p=["xMinYMin","xMaxYMin"];else{if(3!==w)throw new Error("Correct katexImagesData or update code here to support\n "+w+" children.");u=["brace-left","brace-center","brace-right"],p=["xMinYMin","xMidYMin","xMaxYMin"]}for(var k=0;k0&&(n.style.minWidth=F(a)),n};function Ut(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function Yt(e){var t=Xt(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Xt(e){return e&&("atom"===e.type||re.hasOwnProperty(e.type))?e:null}var Wt=function(e,t){var r,n,a;e&&"supsub"===e.type?(r=(n=Ut(e.base,"accent")).base,e.base=r,a=function(e){if(e instanceof W)return e;throw new Error("Expected span but got "+String(e)+".")}(wt(e,t)),e.base=n):r=(n=Ut(e,"accent")).base;var i=wt(r,t.havingCrampedStyle()),o=0;if(n.isShifty&&l.isCharacterBox(r)){var s=l.getBaseElem(r);o=ee(wt(s,t.havingCrampedStyle())).skew}var h,c="\\c"===n.label,m=c?i.height+i.depth:Math.min(i.height,t.fontMetrics().xHeight);if(n.isStretchy)h=Gt(n,t),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"elem",elem:h,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+F(2*o)+")",marginLeft:F(2*o)}:void 0}]},t);else{var u,p;"\\vec"===n.label?(u=Ke.staticSvg("vec",t),p=Ke.svgData.vec[1]):((u=ee(u=Ke.makeOrd({mode:n.mode,text:n.label},t,"textord"))).italic=0,p=u.width,c&&(m+=u.depth)),h=Ke.makeSpan(["accent-body"],[u]);var d="\\textcircled"===n.label;d&&(h.classes.push("accent-full"),m=i.height);var f=o;d||(f-=p/2),h.style.left=F(f),"\\textcircled"===n.label&&(h.style.top=".2em"),h=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:i},{type:"kern",size:-m},{type:"elem",elem:h}]},t)}var g=Ke.makeSpan(["mord","accent"],[h],t);return a?(a.children[0]=g,a.height=Math.max(g.height,a.height),a.classes[0]="mord",a):g},_t=function(e,t){var r=e.isStretchy?Ft(e.label):new Tt.MathNode("mo",[Bt(e.label,e.mode)]),n=new Tt.MathNode("mover",[Rt(e.base,t),r]);return n.setAttribute("accent","true"),n},jt=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map((function(e){return"\\"+e})).join("|"));ot({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:function(e,t){var r=lt(t[0]),n=!jt.test(e.funcName),a=!n||"\\widehat"===e.funcName||"\\widetilde"===e.funcName||"\\widecheck"===e.funcName;return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:n,isShifty:a,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:function(e,t){var r=t[0],n=e.parser.mode;return"math"===n&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),n="text"),{type:"accent",mode:n,label:e.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Wt,mathmlBuilder:_t}),ot({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"accentUnder",mode:r.mode,label:n,base:a}},htmlBuilder:function(e,t){var r=wt(e.base,t),n=Gt(e,t),a="\\utilde"===e.label?.12:0,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","accentunder"],[i],t)},mathmlBuilder:function(e,t){var r=Ft(e.label),n=new Tt.MathNode("munder",[Rt(e.base,t),r]);return n.setAttribute("accentunder","true"),n}});var $t=function(e){var t=new Tt.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};ot({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler:function(e,t,r){var n=e.parser,a=e.funcName;return{type:"xArrow",mode:n.mode,label:a,body:t[0],below:r[0]}},htmlBuilder:function(e,t){var r,n=t.style,a=t.havingStyle(n.sup()),i=Ke.wrapFragment(wt(e.body,a,t),t),o="\\x"===e.label.slice(0,2)?"x":"cd";i.classes.push(o+"-arrow-pad"),e.below&&(a=t.havingStyle(n.sub()),(r=Ke.wrapFragment(wt(e.below,a,t),t)).classes.push(o+"-arrow-pad"));var s,l=Gt(e,t),h=-t.fontMetrics().axisHeight+.5*l.height,c=-t.fontMetrics().axisHeight-.5*l.height-.111;if((i.depth>.25||"\\xleftequilibrium"===e.label)&&(c-=i.depth),r){var m=-t.fontMetrics().axisHeight+r.height+.5*l.height+.111;s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:l,shift:h},{type:"elem",elem:r,shift:m}]},t)}else s=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:c},{type:"elem",elem:l,shift:h}]},t);return s.children[0].children[0].children[1].classes.push("svg-align"),Ke.makeSpan(["mrel","x-arrow"],[s],t)},mathmlBuilder:function(e,t){var r,n=Ft(e.label);if(n.setAttribute("minsize","x"===e.label.charAt(0)?"1.75em":"3.0em"),e.body){var a=$t(Rt(e.body,t));if(e.below){var i=$t(Rt(e.below,t));r=new Tt.MathNode("munderover",[n,i,a])}else r=new Tt.MathNode("mover",[n,a])}else if(e.below){var o=$t(Rt(e.below,t));r=new Tt.MathNode("munder",[n,o])}else r=$t(),r=new Tt.MathNode("mover",[n,r]);return r}});var Zt=Ke.makeSpan;function Kt(e,t){var r=ft(e.body,t,!0);return Zt([e.mclass],r,t)}function Jt(e,t){var r,n=qt(e.body,t);return"minner"===e.mclass?r=new Tt.MathNode("mpadded",n):"mord"===e.mclass?e.isCharacterBox?(r=n[0]).type="mi":r=new Tt.MathNode("mi",n):(e.isCharacterBox?(r=n[0]).type="mo":r=new Tt.MathNode("mo",n),"mbin"===e.mclass?(r.attributes.lspace="0.22em",r.attributes.rspace="0.22em"):"mpunct"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0.17em"):"mopen"===e.mclass||"mclose"===e.mclass?(r.attributes.lspace="0em",r.attributes.rspace="0em"):"minner"===e.mclass&&(r.attributes.lspace="0.0556em",r.attributes.width="+0.1111em")),r}ot({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"mclass",mode:r.mode,mclass:"m"+n.slice(5),body:ht(a),isCharacterBox:l.isCharacterBox(a)}},htmlBuilder:Kt,mathmlBuilder:Jt});var Qt=function(e){var t="ordgroup"===e.type&&e.body.length?e.body[0]:e;return"atom"!==t.type||"bin"!==t.family&&"rel"!==t.family?"mord":"m"+t.family};ot({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler:function(e,t){return{type:"mclass",mode:e.parser.mode,mclass:Qt(t[0]),body:ht(t[1]),isCharacterBox:l.isCharacterBox(t[1])}}}),ot({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler:function(e,t){var r,n=e.parser,a=e.funcName,i=t[1],o=t[0];r="\\stackrel"!==a?Qt(i):"mrel";var s={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:"\\stackrel"!==a,body:ht(i)},h={type:"supsub",mode:o.mode,base:s,sup:"\\underset"===a?null:o,sub:"\\underset"===a?o:null};return{type:"mclass",mode:n.mode,mclass:r,body:[h],isCharacterBox:l.isCharacterBox(h)}},htmlBuilder:Kt,mathmlBuilder:Jt}),ot({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"pmb",mode:e.parser.mode,mclass:Qt(t[0]),body:ht(t[0])}},htmlBuilder:function(e,t){var r=ft(e.body,t,!0),n=Ke.makeSpan([e.mclass],r,t);return n.style.textShadow="0.02em 0.01em 0.04px",n},mathmlBuilder:function(e,t){var r=qt(e.body,t),n=new Tt.MathNode("mstyle",r);return n.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),n}});var er={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},tr=function(e){return"textord"===e.type&&"@"===e.text};function rr(e,t,r){var n=er[e];switch(n){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return r.callFunction(n,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":var a={type:"atom",text:n,mode:"math",family:"rel"},i={type:"ordgroup",mode:"math",body:[r.callFunction("\\\\cdleft",[t[0]],[]),r.callFunction("\\Big",[a],[]),r.callFunction("\\\\cdright",[t[1]],[])]};return r.callFunction("\\\\cdparent",[i],[]);case"\\\\cdlongequal":return r.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":return r.callFunction("\\Big",[{type:"textord",text:"\\Vert",mode:"math"}],[]);default:return{type:"textord",text:" ",mode:"math"}}}ot({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"cdlabel",mode:r.mode,side:n.slice(4),label:t[0]}},htmlBuilder:function(e,t){var r=t.havingStyle(t.style.sup()),n=Ke.wrapFragment(wt(e.label,r,t),t);return n.classes.push("cd-label-"+e.side),n.style.bottom=F(.8-n.depth),n.height=0,n.depth=0,n},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mrow",[Rt(e.label,t)]);return(r=new Tt.MathNode("mpadded",[r])).setAttribute("width","0"),"left"===e.side&&r.setAttribute("lspace","-1width"),r.setAttribute("voffset","0.7em"),(r=new Tt.MathNode("mstyle",[r])).setAttribute("displaystyle","false"),r.setAttribute("scriptlevel","1"),r}}),ot({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler:function(e,t){return{type:"cdlabelparent",mode:e.parser.mode,fragment:t[0]}},htmlBuilder:function(e,t){var r=Ke.wrapFragment(wt(e.fragment,t),t);return r.classes.push("cd-vert-arrow"),r},mathmlBuilder:function(e,t){return new Tt.MathNode("mrow",[Rt(e.fragment,t)])}}),ot({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){for(var r=e.parser,a=Ut(t[0],"ordgroup").body,i="",o=0;o=1114111)throw new n("\\@char with invalid code point "+i);return l<=65535?s=String.fromCharCode(l):(l-=65536,s=String.fromCharCode(55296+(l>>10),56320+(1023&l))),{type:"textord",mode:r.mode,text:s}}});var nr=function(e,t){var r=ft(e.body,t.withColor(e.color),!1);return Ke.makeFragment(r)},ar=function(e,t){var r=qt(e.body,t.withColor(e.color)),n=new Tt.MathNode("mstyle",r);return n.setAttribute("mathcolor",e.color),n};ot({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler:function(e,t){var r=e.parser,n=Ut(t[0],"color-token").color,a=t[1];return{type:"color",mode:r.mode,color:n,body:ht(a)}},htmlBuilder:nr,mathmlBuilder:ar}),ot({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler:function(e,t){var r=e.parser,n=e.breakOnTokenText,a=Ut(t[0],"color-token").color;r.gullet.macros.set("\\current@color",a);var i=r.parseExpression(!0,n);return{type:"color",mode:r.mode,color:a,body:i}},htmlBuilder:nr,mathmlBuilder:ar}),ot({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a="["===n.gullet.future().text?n.parseSizeGroup(!0):null,i=!n.settings.displayMode||!n.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:n.mode,newLine:i,size:a&&Ut(a,"size").value}},htmlBuilder:function(e,t){var r=Ke.makeSpan(["mspace"],[],t);return e.newLine&&(r.classes.push("newline"),e.size&&(r.style.marginTop=F(P(e.size,t)))),r},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mspace");return e.newLine&&(r.setAttribute("linebreak","newline"),e.size&&r.setAttribute("height",F(P(e.size,t)))),r}});var ir={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},or=function(e){var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new n("Expected a control sequence",e);return t},sr=function(e,t,r,n){var a=e.gullet.macros.get(r.text);null==a&&(r.noexpand=!0,a={tokens:[r],numArgs:0,unexpandable:!e.gullet.isExpandable(r.text)}),e.gullet.macros.set(t,a,n)};ot({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler:function(e){var t=e.parser,r=e.funcName;t.consumeSpaces();var a=t.fetch();if(ir[a.text])return"\\global"!==r&&"\\\\globallong"!==r||(a.text=ir[a.text]),Ut(t.parseFunction(),"internal");throw new n("Invalid token after macro prefix",a)}}),ot({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,a=t.gullet.popToken(),i=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new n("Expected a control sequence",a);for(var o,s=0,l=[[]];"{"!==t.gullet.future().text;)if("#"===(a=t.gullet.popToken()).text){if("{"===t.gullet.future().text){o=t.gullet.future(),l[s].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new n('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==s+1)throw new n('Argument number "'+a.text+'" out of order');s++,l.push([])}else{if("EOF"===a.text)throw new n("Expected a macro definition");l[s].push(a.text)}var h=t.gullet.consumeArg().tokens;return o&&h.unshift(o),"\\edef"!==r&&"\\xdef"!==r||(h=t.gullet.expandTokens(h)).reverse(),t.gullet.macros.set(i,{tokens:h,numArgs:s,delimiters:l},r===ir[r]),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=or(t.gullet.popToken());t.gullet.consumeSpaces();var a=function(e){var t=e.gullet.popToken();return"="===t.text&&" "===(t=e.gullet.popToken()).text&&(t=e.gullet.popToken()),t}(t);return sr(t,n,a,"\\\\globallet"===r),{type:"internal",mode:t.mode}}}),ot({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e){var t=e.parser,r=e.funcName,n=or(t.gullet.popToken()),a=t.gullet.popToken(),i=t.gullet.popToken();return sr(t,n,i,"\\\\globalfuture"===r),t.gullet.pushToken(i),t.gullet.pushToken(a),{type:"internal",mode:t.mode}}});var lr=function(e,t,r){var n=N(ae.math[e]&&ae.math[e].replace||e,t,r);if(!n)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return n},hr=function(e,t,r,n){var a=r.havingBaseStyle(t),i=Ke.makeSpan(n.concat(a.sizingClasses(r)),[e],r),o=a.sizeMultiplier/r.sizeMultiplier;return i.height*=o,i.depth*=o,i.maxFontSize=a.sizeMultiplier,i},cr=function(e,t,r){var n=t.havingBaseStyle(r),a=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=F(a),e.height-=a,e.depth+=a},mr=function(e,t,r,n,a,i){var o=function(e,t,r,n){return Ke.makeSymbol(e,"Size"+t+"-Regular",r,n)}(e,t,a,n),s=hr(Ke.makeSpan(["delimsizing","size"+t],[o],n),x.TEXT,n,i);return r&&cr(s,n,x.TEXT),s},ur=function(e,t,r){var n;return n="Size1-Regular"===t?"delim-size1":"delim-size4",{type:"elem",elem:Ke.makeSpan(["delimsizinginner",n],[Ke.makeSpan([],[Ke.makeSymbol(e,t,r)])])}},pr=function(e,t,r){var n=T["Size4-Regular"][e.charCodeAt(0)]?T["Size4-Regular"][e.charCodeAt(0)][4]:T["Size1-Regular"][e.charCodeAt(0)][4],a=new J("inner",function(e,t){switch(e){case"\u239c":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145zM367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z";case"\u239f":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23a2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23a5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23aa":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23d0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257zM478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z";default:return""}}(e,Math.round(1e3*t))),i=new K([a],{width:F(n),height:F(t),style:"width:"+F(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=Ke.makeSvgSpan([],[i],r);return o.height=t,o.style.height=F(t),o.style.width=F(n),{type:"elem",elem:o}},dr={type:"kern",size:-.008},fr=["|","\\lvert","\\rvert","\\vert"],gr=["\\|","\\lVert","\\rVert","\\Vert"],vr=function(e,t,r,n,a,i){var o,s,h,c,m="",u=0;o=h=c=e,s=null;var p="Size1-Regular";"\\uparrow"===e?h=c="\u23d0":"\\Uparrow"===e?h=c="\u2016":"\\downarrow"===e?o=h="\u23d0":"\\Downarrow"===e?o=h="\u2016":"\\updownarrow"===e?(o="\\uparrow",h="\u23d0",c="\\downarrow"):"\\Updownarrow"===e?(o="\\Uparrow",h="\u2016",c="\\Downarrow"):l.contains(fr,e)?(h="\u2223",m="vert",u=333):l.contains(gr,e)?(h="\u2225",m="doublevert",u=556):"["===e||"\\lbrack"===e?(o="\u23a1",h="\u23a2",c="\u23a3",p="Size4-Regular",m="lbrack",u=667):"]"===e||"\\rbrack"===e?(o="\u23a4",h="\u23a5",c="\u23a6",p="Size4-Regular",m="rbrack",u=667):"\\lfloor"===e||"\u230a"===e?(h=o="\u23a2",c="\u23a3",p="Size4-Regular",m="lfloor",u=667):"\\lceil"===e||"\u2308"===e?(o="\u23a1",h=c="\u23a2",p="Size4-Regular",m="lceil",u=667):"\\rfloor"===e||"\u230b"===e?(h=o="\u23a5",c="\u23a6",p="Size4-Regular",m="rfloor",u=667):"\\rceil"===e||"\u2309"===e?(o="\u23a4",h=c="\u23a5",p="Size4-Regular",m="rceil",u=667):"("===e||"\\lparen"===e?(o="\u239b",h="\u239c",c="\u239d",p="Size4-Regular",m="lparen",u=875):")"===e||"\\rparen"===e?(o="\u239e",h="\u239f",c="\u23a0",p="Size4-Regular",m="rparen",u=875):"\\{"===e||"\\lbrace"===e?(o="\u23a7",s="\u23a8",c="\u23a9",h="\u23aa",p="Size4-Regular"):"\\}"===e||"\\rbrace"===e?(o="\u23ab",s="\u23ac",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\lgroup"===e||"\u27ee"===e?(o="\u23a7",c="\u23a9",h="\u23aa",p="Size4-Regular"):"\\rgroup"===e||"\u27ef"===e?(o="\u23ab",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\lmoustache"===e||"\u23b0"===e?(o="\u23a7",c="\u23ad",h="\u23aa",p="Size4-Regular"):"\\rmoustache"!==e&&"\u23b1"!==e||(o="\u23ab",c="\u23a9",h="\u23aa",p="Size4-Regular");var d=lr(o,p,a),f=d.height+d.depth,g=lr(h,p,a),v=g.height+g.depth,b=lr(c,p,a),y=b.height+b.depth,w=0,k=1;if(null!==s){var S=lr(s,p,a);w=S.height+S.depth,k=2}var M=f+y+w,z=M+Math.max(0,Math.ceil((t-M)/(k*v)))*k*v,A=n.fontMetrics().axisHeight;r&&(A*=n.sizeMultiplier);var T=z/2-A,B=[];if(m.length>0){var C=z-f-y,N=Math.round(1e3*z),q=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v1759 h347 v-84\nH403z M403 1759 V0 H319 V1759 v"+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v1759 H0 v84 H347z\nM347 1759 V0 H263 V1759 v"+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v"+t+" v585 h43z\nM367 15 v585 v"+t+" v585 c2.667,10,9.667,15,21,15\nc10,0,16.667,-5,20,-15 v-585 v"+-t+" v-585 c-2.667,-10,-9.667,-15,-21,-15\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v"+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+" v1715 h263 v84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+" v1799 H0 v-84 H319z\nMM319 602 V0 H403 V602 v"+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+" v602 h84z\nM403 1759 V0 H319 V1759 v"+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+" v602 h84z\nM347 1759 V0 h-84 V1759 v"+t+" v602 h84z";case"lparen":return"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\n-36,557 l0,"+(t+84)+"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\nl0,-"+(t+92)+"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z";case"rparen":return"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,"+(t+9)+"\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\nl0,-"+(t+144)+"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z";default:throw new Error("Unknown stretchy delimiter.")}}(m,Math.round(1e3*C)),I=new J(m,q),R=(u/1e3).toFixed(3)+"em",H=(N/1e3).toFixed(3)+"em",O=new K([I],{width:R,height:H,viewBox:"0 0 "+u+" "+N}),E=Ke.makeSvgSpan([],[O],n);E.height=N/1e3,E.style.width=R,E.style.height=H,B.push({type:"elem",elem:E})}else{if(B.push(ur(c,p,a)),B.push(dr),null===s){var L=z-f-y+.016;B.push(pr(h,L,n))}else{var D=(z-f-y-w)/2+.016;B.push(pr(h,D,n)),B.push(dr),B.push(ur(s,p,a)),B.push(dr),B.push(pr(h,D,n))}B.push(dr),B.push(ur(o,p,a))}var V=n.havingBaseStyle(x.TEXT),P=Ke.makeVList({positionType:"bottom",positionData:T,children:B},V);return hr(Ke.makeSpan(["delimsizing","mult"],[P],V),x.TEXT,n,i)},br=.08,yr=function(e,t,r,n,a){var i=function(e,t,r){t*=1e3;var n="";switch(e){case"sqrtMain":n=function(e,t){return"M95,"+(622+e+t)+"\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl"+e/2.075+" -"+e+"\nc5.3,-9.3,12,-14,20,-14\nH400000v"+(40+e)+"H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM"+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize1":n=function(e,t){return"M263,"+(601+e+t)+"c0.7,0,18,39.7,52,119\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\nc340,-704.7,510.7,-1060.3,512,-1067\nl"+e/2.084+" -"+e+"\nc4.7,-7.3,11,-11,19,-11\nH40000v"+(40+e)+"H1012.3\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize2":n=function(e,t){return"M983 "+(10+e+t)+"\nl"+e/3.13+" -"+e+"\nc4,-6.7,10,-10,18,-10 H400000v"+(40+e)+"\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\nM"+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize3":n=function(e,t){return"M424,"+(2398+e+t)+"\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\nl"+e/4.223+" -"+e+"c4,-6.7,10,-10,18,-10 H400000\nv"+(40+e)+"H1014.6\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\nc-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2z M"+(1001+e)+" "+t+"\nh400000v"+(40+e)+"h-400000z"}(t,M);break;case"sqrtSize4":n=function(e,t){return"M473,"+(2713+e+t)+"\nc339.3,-1799.3,509.3,-2700,510,-2702 l"+e/5.298+" -"+e+"\nc3.3,-7.3,9.3,-11,18,-11 H400000v"+(40+e)+"H1017.7\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\n606zM"+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"}(t,M);break;case"sqrtTall":n=function(e,t,r){return"M702 "+(e+t)+"H400000"+(40+e)+"\nH742v"+(r-54-t-e)+"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\n219 661 l218 661zM702 "+t+"H400000v"+(40+e)+"H742z"}(t,M,r)}return n}(e,n,r),o=new J(e,i),s=new K([o],{width:"400em",height:F(t),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Ke.makeSvgSpan(["hide-tail"],[s],a)},xr=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","\\surd"],wr=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1"],kr=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Sr=[0,1.2,1.8,2.4,3],Mr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],zr=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"stack"}],Ar=[{type:"small",style:x.SCRIPTSCRIPT},{type:"small",style:x.SCRIPT},{type:"small",style:x.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Tr=function(e){if("small"===e.type)return"Main-Regular";if("large"===e.type)return"Size"+e.size+"-Regular";if("stack"===e.type)return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Br=function(e,t,r,n){for(var a=Math.min(2,3-n.style.size);at)return r[a]}return r[r.length-1]},Cr=function(e,t,r,n,a,i){var o;"<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),o=l.contains(kr,e)?Mr:l.contains(xr,e)?Ar:zr;var s=Br(e,t,o,n);return"small"===s.type?function(e,t,r,n,a,i){var o=Ke.makeSymbol(e,"Main-Regular",a,n),s=hr(o,t,n,i);return r&&cr(s,n,t),s}(e,s.style,r,n,a,i):"large"===s.type?mr(e,s.size,r,n,a,i):vr(e,t,r,n,a,i)},Nr={sqrtImage:function(e,t){var r,n,a=t.havingBaseSizing(),i=Br("\\surd",e*a.sizeMultiplier,Ar,a),o=a.sizeMultiplier,s=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),l=0,h=0,c=0;return"small"===i.type?(e<1?o=1:e<1.4&&(o=.7),h=(1+s)/o,(r=yr("sqrtMain",l=(1+s+br)/o,c=1e3+1e3*s+80,s,t)).style.minWidth="0.853em",n=.833/o):"large"===i.type?(c=1080*Sr[i.size],h=(Sr[i.size]+s)/o,l=(Sr[i.size]+s+br)/o,(r=yr("sqrtSize"+i.size,l,c,s,t)).style.minWidth="1.02em",n=1/o):(l=e+s+br,h=e+s,c=Math.floor(1e3*e+s)+80,(r=yr("sqrtTall",l,c,s,t)).style.minWidth="0.742em",n=1.056),r.height=h,r.style.height=F(l),{span:r,advanceWidth:n,ruleWidth:(t.fontMetrics().sqrtRuleThickness+s)*o}},sizedDelim:function(e,t,r,a,i){if("<"===e||"\\lt"===e||"\u27e8"===e?e="\\langle":">"!==e&&"\\gt"!==e&&"\u27e9"!==e||(e="\\rangle"),l.contains(xr,e)||l.contains(kr,e))return mr(e,t,!1,r,a,i);if(l.contains(wr,e))return vr(e,Sr[t],!1,r,a,i);throw new n("Illegal delimiter: '"+e+"'")},sizeToMaxHeight:Sr,customSizedDelim:Cr,leftRightDelim:function(e,t,r,n,a,i){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,s=5/n.fontMetrics().ptPerEm,l=Math.max(t-o,r+o),h=Math.max(l/500*901,2*l-s);return Cr(e,h,!0,n,a,i)}},qr={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Ir=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230a","\u230b","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27e8","\\rangle","\u27e9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27ee","\u27ef","\\lmoustache","\\rmoustache","\u23b0","\u23b1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Rr(e,t){var r=Xt(e);if(r&&l.contains(Ir,r.text))return r;throw new n(r?"Invalid delimiter '"+r.text+"' after '"+t.funcName+"'":"Invalid delimiter type '"+e.type+"'",e)}function Hr(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}ot({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:function(e,t){var r=Rr(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:qr[e.funcName].size,mclass:qr[e.funcName].mclass,delim:r.text}},htmlBuilder:function(e,t){return"."===e.delim?Ke.makeSpan([e.mclass]):Nr.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass])},mathmlBuilder:function(e){var t=[];"."!==e.delim&&t.push(Bt(e.delim,e.mode));var r=new Tt.MathNode("mo",t);"mopen"===e.mclass||"mclose"===e.mclass?r.setAttribute("fence","true"):r.setAttribute("fence","false"),r.setAttribute("stretchy","true");var n=F(Nr.sizeToMaxHeight[e.size]);return r.setAttribute("minsize",n),r.setAttribute("maxsize",n),r}}),ot({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=e.parser.gullet.macros.get("\\current@color");if(r&&"string"!=typeof r)throw new n("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Rr(t[0],e).text,color:r}}}),ot({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:function(e,t){var r=Rr(t[0],e),n=e.parser;++n.leftrightDepth;var a=n.parseExpression(!1);--n.leftrightDepth,n.expect("\\right",!1);var i=Ut(n.parseFunction(),"leftright-right");return{type:"leftright",mode:n.mode,body:a,left:r.text,right:i.delim,rightColor:i.color}},htmlBuilder:function(e,t){Hr(e);for(var r,n,a=ft(e.body,t,!0,["mopen","mclose"]),i=0,o=0,s=!1,l=0;l-1?"mpadded":"menclose",[Rt(e.body,t)]);switch(e.label){case"\\cancel":n.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":n.setAttribute("notation","downdiagonalstrike");break;case"\\phase":n.setAttribute("notation","phasorangle");break;case"\\sout":n.setAttribute("notation","horizontalstrike");break;case"\\fbox":n.setAttribute("notation","box");break;case"\\angl":n.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(r=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,n.setAttribute("width","+"+2*r+"pt"),n.setAttribute("height","+"+2*r+"pt"),n.setAttribute("lspace",r+"pt"),n.setAttribute("voffset",r+"pt"),"\\fcolorbox"===e.label){var a=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);n.setAttribute("style","border: "+a+"em solid "+String(e.borderColor))}break;case"\\xcancel":n.setAttribute("notation","updiagonalstrike downdiagonalstrike")}return e.backgroundColor&&n.setAttribute("mathbackground",e.backgroundColor),n};ot({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:n.mode,label:a,backgroundColor:i,body:o}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler:function(e,t,r){var n=e.parser,a=e.funcName,i=Ut(t[0],"color-token").color,o=Ut(t[1],"color-token").color,s=t[2];return{type:"enclose",mode:n.mode,label:a,backgroundColor:o,borderColor:i,body:s}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\fbox",body:t[0]}}}),ot({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"enclose",mode:r.mode,label:n,body:a}},htmlBuilder:Or,mathmlBuilder:Er}),ot({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler:function(e,t){return{type:"enclose",mode:e.parser.mode,label:"\\angl",body:t[0]}}});var Lr={};function Dr(e){for(var t=e.type,r=e.names,n=e.props,a=e.handler,i=e.htmlBuilder,o=e.mathmlBuilder,s={type:t,numArgs:n.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:a},l=0;l1||!m)&&g.pop(),b.length0&&(y+=.25),c.push({pos:y,isDashed:e[t]})}for(w(o[0]),r=0;r0&&(M<(B+=b)&&(M=B),B=0),e.addJot&&(M+=f),z.height=S,z.depth=M,y+=S,z.pos=y,y+=M+B,h[r]=z,w(o[r+1])}var C,N,q=y/2+t.fontMetrics().axisHeight,I=e.cols||[],R=[],H=[];if(e.tags&&e.tags.some((function(e){return e})))for(r=0;r=s)){var W=void 0;(a>0||e.hskipBeforeAndAfter)&&0!==(W=l.deflt(V.pregap,p))&&((C=Ke.makeSpan(["arraycolsep"],[])).style.width=F(W),R.push(C));var _=[];for(r=0;r0){for(var K=Ke.makeLineSpan("hline",t,m),J=Ke.makeLineSpan("hdashline",t,m),Q=[{type:"elem",elem:h,shift:0}];c.length>0;){var ee=c.pop(),te=ee.pos-q;ee.isDashed?Q.push({type:"elem",elem:J,shift:te}):Q.push({type:"elem",elem:K,shift:te})}h=Ke.makeVList({positionType:"individualShift",children:Q},t)}if(0===H.length)return Ke.makeSpan(["mord"],[h],t);var re=Ke.makeVList({positionType:"individualShift",children:H},t);return re=Ke.makeSpan(["tag"],[re],t),Ke.makeFragment([h,re])},$r={c:"center ",l:"left ",r:"right "},Zr=function(e,t){for(var r=[],n=new Tt.MathNode("mtd",[],["mtr-glue"]),a=new Tt.MathNode("mtd",[],["mml-eqn-num"]),i=0;i0){var p=e.cols,d="",f=!1,g=0,v=p.length;"separator"===p[0].type&&(m+="top ",g=1),"separator"===p[p.length-1].type&&(m+="bottom ",v-=1);for(var b=g;b0?"left ":"",m+=S[S.length-1].length>0?"right ":"";for(var M=1;M-1?"alignat":"align",o="split"===e.envName,s=Wr(e.parser,{cols:a,addJot:!0,autoTag:o?void 0:Xr(e.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:o?2:void 0,leqno:e.parser.settings.leqno},"display"),l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&"ordgroup"===t[0].type){for(var c="",m=0;m0&&u&&(f=1),a[p]={type:"align",align:d,pregap:f,postgap:0}}return s.colSeparationType=u?"align":"alignat",s};Dr({type:"array",names:["array","darray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lcr".indexOf(t))return{type:"align",align:t};if("|"===t)return{type:"separator",separator:"|"};if(":"===t)return{type:"separator",separator:":"};throw new n("Unknown column alignment: "+t,e)})),a={cols:r,hskipBeforeAndAfter:!0,maxNumCols:r.length};return Wr(e.parser,a,_r(e.envName))},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler:function(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],r="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:r}]};if("*"===e.envName.charAt(e.envName.length-1)){var i=e.parser;if(i.consumeSpaces(),"["===i.fetch().text){if(i.consume(),i.consumeSpaces(),r=i.fetch().text,-1==="lcr".indexOf(r))throw new n("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),a.cols=[{type:"align",align:r}]}}var o=Wr(e.parser,a,_r(e.envName)),s=Math.max.apply(Math,[0].concat(o.body.map((function(e){return e.length}))));return o.cols=new Array(s).fill({type:"align",align:r}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["smallmatrix"],props:{numArgs:0},handler:function(e){var t=Wr(e.parser,{arraystretch:.5},"script");return t.colSeparationType="small",t},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["subarray"],props:{numArgs:1},handler:function(e,t){var r=(Xt(t[0])?[t[0]]:Ut(t[0],"ordgroup").body).map((function(e){var t=Yt(e).text;if(-1!=="lc".indexOf(t))return{type:"align",align:t};throw new n("Unknown column alignment: "+t,e)}));if(r.length>1)throw new n("{subarray} can contain only one column");var a={cols:r,hskipBeforeAndAfter:!1,arraystretch:.5};if((a=Wr(e.parser,a,"script")).body.length>0&&a.body[0].length>1)throw new n("{subarray} can contain only one column");return a},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler:function(e){var t=Wr(e.parser,{arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},_r(e.envName));return{type:"leftright",mode:e.mode,body:[t],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Kr,htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler:function(e){l.contains(["gather","gather*"],e.envName)&&Yr(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:Xr(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Wr(e.parser,t,"display")},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Kr,htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["equation","equation*"],props:{numArgs:0},handler:function(e){Yr(e);var t={autoTag:Xr(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Wr(e.parser,t,"display")},htmlBuilder:jr,mathmlBuilder:Zr}),Dr({type:"array",names:["CD"],props:{numArgs:0},handler:function(e){return Yr(e),function(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var r=e.fetch().text;if("&"!==r&&"\\\\"!==r){if("\\end"===r){0===t[t.length-1].length&&t.pop();break}throw new n("Expected \\\\ or \\cr or \\end",e.nextToken)}e.consume()}for(var a,i,o=[],s=[o],l=0;l-1);else{if(!("<>AV".indexOf(u)>-1))throw new n('Expected one of "<>AV=|." after @',h[m]);for(var d=0;d<2;d++){for(var f=!0,g=m+1;g=x.SCRIPT.id?r.text():x.DISPLAY:"text"===e&&r.size===x.DISPLAY.size?r=x.TEXT:"script"===e?r=x.SCRIPT:"scriptscript"===e&&(r=x.SCRIPTSCRIPT),r},nn=function(e,t){var r,n=rn(e.size,t.style),a=n.fracNum(),i=n.fracDen();r=t.havingStyle(a);var o=wt(e.numer,r,t);if(e.continued){var s=8.5/t.fontMetrics().ptPerEm,l=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?3*m:7*m,d=t.fontMetrics().denom1):(c>0?(u=t.fontMetrics().num2,p=m):(u=t.fontMetrics().num3,p=3*m),d=t.fontMetrics().denom2),h){var w=t.fontMetrics().axisHeight;u-o.depth-(w+.5*c)0&&(t="."===(t=e)?null:t),t};ot({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler:function(e,t){var r,n=e.parser,a=t[4],i=t[5],o=lt(t[0]),s="atom"===o.type&&"open"===o.family?sn(o.text):null,l=lt(t[1]),h="atom"===l.type&&"close"===l.family?sn(l.text):null,c=Ut(t[2],"size"),m=null;r=!!c.isBlank||(m=c.value).number>0;var u="auto",p=t[3];if("ordgroup"===p.type){if(p.body.length>0){var d=Ut(p.body[0],"textord");u=on[Number(d.text)]}}else p=Ut(p,"textord"),u=on[Number(p.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:i,continued:!1,hasBarLine:r,barSize:m,leftDelim:s,rightDelim:h,size:u}},htmlBuilder:nn,mathmlBuilder:an}),ot({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler:function(e,t){var r=e.parser,n=(e.funcName,e.token);return{type:"infix",mode:r.mode,replaceWith:"\\\\abovefrac",size:Ut(t[0],"size").value,token:n}}}),ot({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:function(e,t){var r=e.parser,n=(e.funcName,t[0]),a=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e}(Ut(t[1],"infix").size),i=t[2],o=a.number>0;return{type:"genfrac",mode:r.mode,numer:n,denom:i,continued:!1,hasBarLine:o,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:nn,mathmlBuilder:an});var ln=function(e,t){var r,n,a=t.style;"supsub"===e.type?(r=e.sup?wt(e.sup,t.havingStyle(a.sup()),t):wt(e.sub,t.havingStyle(a.sub()),t),n=Ut(e.base,"horizBrace")):n=Ut(e,"horizBrace");var i,o=wt(n.base,t.havingBaseStyle(x.DISPLAY)),s=Gt(n,t);if(n.isOver?(i=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:s}]},t)).children[0].children[0].children[1].classes.push("svg-align"):(i=Ke.makeVList({positionType:"bottom",positionData:o.depth+.1+s.height,children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:o}]},t)).children[0].children[0].children[0].classes.push("svg-align"),r){var l=Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t);i=n.isOver?Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:r}]},t):Ke.makeVList({positionType:"bottom",positionData:l.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:l}]},t)}return Ke.makeSpan(["mord",n.isOver?"mover":"munder"],[i],t)};ot({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler:function(e,t){var r=e.parser,n=e.funcName;return{type:"horizBrace",mode:r.mode,label:n,isOver:/^\\over/.test(n),base:t[0]}},htmlBuilder:ln,mathmlBuilder:function(e,t){var r=Ft(e.label);return new Tt.MathNode(e.isOver?"mover":"munder",[Rt(e.base,t),r])}}),ot({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=t[1],a=Ut(t[0],"url").url;return r.settings.isTrusted({command:"\\href",url:a})?{type:"href",mode:r.mode,href:a,body:ht(n)}:r.formatUnsupportedCmd("\\href")},htmlBuilder:function(e,t){var r=ft(e.body,t,!1);return Ke.makeAnchor(e.href,[],r,t)},mathmlBuilder:function(e,t){var r=It(e.body,t);return r instanceof zt||(r=new zt("mrow",[r])),r.setAttribute("href",e.href),r}}),ot({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:function(e,t){var r=e.parser,n=Ut(t[0],"url").url;if(!r.settings.isTrusted({command:"\\url",url:n}))return r.formatUnsupportedCmd("\\url");for(var a=[],i=0;i0&&(n=P(e.totalheight,t)-r);var a=0;e.width.number>0&&(a=P(e.width,t));var i={height:F(r+n)};a>0&&(i.width=F(a)),n>0&&(i.verticalAlign=F(-n));var o=new j(e.src,e.alt,i);return o.height=r,o.depth=n,o},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mglyph",[]);r.setAttribute("alt",e.alt);var n=P(e.height,t),a=0;if(e.totalheight.number>0&&(a=P(e.totalheight,t)-n,r.setAttribute("valign",F(-a))),r.setAttribute("height",F(n+a)),e.width.number>0){var i=P(e.width,t);r.setAttribute("width",F(i))}return r.setAttribute("src",e.src),r}}),ot({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=Ut(t[0],"size");if(r.settings.strict){var i="m"===n[1],o="mu"===a.value.unit;i?(o||r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" supports only mu units, not "+a.value.unit+" units"),"math"!==r.mode&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" works only in math mode")):o&&r.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+n+" doesn't support mu units")}return{type:"kern",mode:r.mode,dimension:a.value}},htmlBuilder:function(e,t){return Ke.makeGlue(e.dimension,t)},mathmlBuilder:function(e,t){var r=P(e.dimension,t);return new Tt.SpaceNode(r)}}),ot({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"lap",mode:r.mode,alignment:n.slice(5),body:a}},htmlBuilder:function(e,t){var r;"clap"===e.alignment?(r=Ke.makeSpan([],[wt(e.body,t)]),r=Ke.makeSpan(["inner"],[r],t)):r=Ke.makeSpan(["inner"],[wt(e.body,t)]);var n=Ke.makeSpan(["fix"],[]),a=Ke.makeSpan([e.alignment],[r,n],t),i=Ke.makeSpan(["strut"]);return i.style.height=F(a.height+a.depth),a.depth&&(i.style.verticalAlign=F(-a.depth)),a.children.unshift(i),a=Ke.makeSpan(["thinbox"],[a],t),Ke.makeSpan(["mord","vbox"],[a],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mpadded",[Rt(e.body,t)]);if("rlap"!==e.alignment){var n="llap"===e.alignment?"-1":"-0.5";r.setAttribute("lspace",n+"width")}return r.setAttribute("width","0px"),r}}),ot({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){var r=e.funcName,n=e.parser,a=n.mode;n.switchMode("math");var i="\\("===r?"\\)":"$",o=n.parseExpression(!1,i);return n.expect(i),n.switchMode(a),{type:"styling",mode:n.mode,style:"text",body:o}}}),ot({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(e,t){throw new n("Mismatched "+e.funcName)}});var cn=function(e,t){switch(t.style.size){case x.DISPLAY.size:return e.display;case x.TEXT.size:return e.text;case x.SCRIPT.size:return e.script;case x.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};ot({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:function(e,t){return{type:"mathchoice",mode:e.parser.mode,display:ht(t[0]),text:ht(t[1]),script:ht(t[2]),scriptscript:ht(t[3])}},htmlBuilder:function(e,t){var r=cn(e,t),n=ft(r,t,!1);return Ke.makeFragment(n)},mathmlBuilder:function(e,t){var r=cn(e,t);return It(r,t)}});var mn=function(e,t,r,n,a,i,o){e=Ke.makeSpan([],[e]);var s,h,c,m=r&&l.isCharacterBox(r);if(t){var u=wt(t,n.havingStyle(a.sup()),n);h={elem:u,kern:Math.max(n.fontMetrics().bigOpSpacing1,n.fontMetrics().bigOpSpacing3-u.depth)}}if(r){var p=wt(r,n.havingStyle(a.sub()),n);s={elem:p,kern:Math.max(n.fontMetrics().bigOpSpacing2,n.fontMetrics().bigOpSpacing4-p.height)}}if(h&&s){var d=n.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;c=Ke.makeVList({positionType:"bottom",positionData:d,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:F(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:F(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}else if(s){var f=e.height-o;c=Ke.makeVList({positionType:"top",positionData:f,children:[{type:"kern",size:n.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:F(-i)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},n)}else{if(!h)return e;var g=e.depth+o;c=Ke.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:e},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:F(i)},{type:"kern",size:n.fontMetrics().bigOpSpacing5}]},n)}var v=[c];if(s&&0!==i&&!m){var b=Ke.makeSpan(["mspace"],[],n);b.style.marginRight=F(i),v.unshift(b)}return Ke.makeSpan(["mop","op-limits"],v,n)},un=["\\smallint"],pn=function(e,t){var r,n,a,i=!1;"supsub"===e.type?(r=e.sup,n=e.sub,a=Ut(e.base,"op"),i=!0):a=Ut(e,"op");var o,s=t.style,h=!1;if(s.size===x.DISPLAY.size&&a.symbol&&!l.contains(un,a.name)&&(h=!0),a.symbol){var c=h?"Size2-Regular":"Size1-Regular",m="";if("\\oiint"!==a.name&&"\\oiiint"!==a.name||(m=a.name.slice(1),a.name="oiint"===m?"\\iint":"\\iiint"),o=Ke.makeSymbol(a.name,c,"math",t,["mop","op-symbol",h?"large-op":"small-op"]),m.length>0){var u=o.italic,p=Ke.staticSvg(m+"Size"+(h?"2":"1"),t);o=Ke.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:0},{type:"elem",elem:p,shift:h?.08:0}]},t),a.name="\\"+m,o.classes.unshift("mop"),o.italic=u}}else if(a.body){var d=ft(a.body,t,!0);1===d.length&&d[0]instanceof Z?(o=d[0]).classes[0]="mop":o=Ke.makeSpan(["mop"],d,t)}else{for(var f=[],g=1;g0){for(var s=a.body.map((function(e){var t=e.text;return"string"==typeof t?{type:"textord",mode:e.mode,text:t}:e})),l=ft(s,t.withFont("mathrm"),!0),h=0;h=0?s.setAttribute("height",F(a)):(s.setAttribute("height",F(a)),s.setAttribute("depth",F(-a))),s.setAttribute("voffset",F(a)),s}});var yn=["\\tiny","\\sixptsize","\\scriptsize","\\footnotesize","\\small","\\normalsize","\\large","\\Large","\\LARGE","\\huge","\\Huge"];ot({type:"sizing",names:yn,props:{numArgs:0,allowedInText:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!1,r);return{type:"sizing",mode:a.mode,size:yn.indexOf(n)+1,body:i}},htmlBuilder:function(e,t){var r=t.havingSize(e.size);return bn(e.body,r,t)},mathmlBuilder:function(e,t){var r=t.havingSize(e.size),n=qt(e.body,r),a=new Tt.MathNode("mstyle",n);return a.setAttribute("mathsize",F(r.sizeMultiplier)),a}}),ot({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(e,t,r){var n=e.parser,a=!1,i=!1,o=r[0]&&Ut(r[0],"ordgroup");if(o)for(var s="",l=0;lr.height+r.depth+i&&(i=(i+m-r.height-r.depth)/2);var u=l.height-r.height-i-h;r.style.paddingLeft=F(c);var p=Ke.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:-(r.height+u)},{type:"elem",elem:l},{type:"kern",size:h}]},t);if(e.index){var d=t.havingStyle(x.SCRIPTSCRIPT),f=wt(e.index,d,t),g=.6*(p.height-p.depth),v=Ke.makeVList({positionType:"shift",positionData:-g,children:[{type:"elem",elem:f}]},t),b=Ke.makeSpan(["root"],[v]);return Ke.makeSpan(["mord","sqrt"],[b,p],t)}return Ke.makeSpan(["mord","sqrt"],[p],t)},mathmlBuilder:function(e,t){var r=e.body,n=e.index;return n?new Tt.MathNode("mroot",[Rt(r,t),Rt(n,t)]):new Tt.MathNode("msqrt",[Rt(r,t)])}});var xn={display:x.DISPLAY,text:x.TEXT,script:x.SCRIPT,scriptscript:x.SCRIPTSCRIPT};ot({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler:function(e,t){var r=e.breakOnTokenText,n=e.funcName,a=e.parser,i=a.parseExpression(!0,r),o=n.slice(1,n.length-5);return{type:"styling",mode:a.mode,style:o,body:i}},htmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r).withFont("");return bn(e.body,n,t)},mathmlBuilder:function(e,t){var r=xn[e.style],n=t.havingStyle(r),a=qt(e.body,n),i=new Tt.MathNode("mstyle",a),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]}[e.style];return i.setAttribute("scriptlevel",o[0]),i.setAttribute("displaystyle",o[1]),i}});var wn=function(e,t){var r=e.base;return r?"op"===r.type?r.limits&&(t.style.size===x.DISPLAY.size||r.alwaysHandleSupSub)?pn:null:"operatorname"===r.type?r.alwaysHandleSupSub&&(t.style.size===x.DISPLAY.size||r.limits)?vn:null:"accent"===r.type?l.isCharacterBox(r.base)?Wt:null:"horizBrace"===r.type&&!e.sub===r.isOver?ln:null:null};st({type:"supsub",htmlBuilder:function(e,t){var r=wn(e,t);if(r)return r(e,t);var n,a,i,o=e.base,s=e.sup,h=e.sub,c=wt(o,t),m=t.fontMetrics(),u=0,p=0,d=o&&l.isCharacterBox(o);if(s){var f=t.havingStyle(t.style.sup());n=wt(s,f,t),d||(u=c.height-f.fontMetrics().supDrop*f.sizeMultiplier/t.sizeMultiplier)}if(h){var g=t.havingStyle(t.style.sub());a=wt(h,g,t),d||(p=c.depth+g.fontMetrics().subDrop*g.sizeMultiplier/t.sizeMultiplier)}i=t.style===x.DISPLAY?m.sup1:t.style.cramped?m.sup3:m.sup2;var v,b=t.sizeMultiplier,y=F(.5/m.ptPerEm/b),w=null;if(a){var k=e.base&&"op"===e.base.type&&e.base.name&&("\\oiint"===e.base.name||"\\oiiint"===e.base.name);(c instanceof Z||k)&&(w=F(-c.italic))}if(n&&a){u=Math.max(u,i,n.depth+.25*m.xHeight),p=Math.max(p,m.sub2);var S=4*m.defaultRuleThickness;if(u-n.depth-(a.height-p)0&&(u+=M,p-=M)}var z=[{type:"elem",elem:a,shift:p,marginRight:y,marginLeft:w},{type:"elem",elem:n,shift:-u,marginRight:y}];v=Ke.makeVList({positionType:"individualShift",children:z},t)}else if(a){p=Math.max(p,m.sub1,a.height-.8*m.xHeight);var A=[{type:"elem",elem:a,marginLeft:w,marginRight:y}];v=Ke.makeVList({positionType:"shift",positionData:p,children:A},t)}else{if(!n)throw new Error("supsub must have either sup or sub.");u=Math.max(u,i,n.depth+.25*m.xHeight),v=Ke.makeVList({positionType:"shift",positionData:-u,children:[{type:"elem",elem:n,marginRight:y}]},t)}var T=yt(c,"right")||"mord";return Ke.makeSpan([T],[c,Ke.makeSpan(["msupsub"],[v])],t)},mathmlBuilder:function(e,t){var r,n=!1;e.base&&"horizBrace"===e.base.type&&!!e.sup===e.base.isOver&&(n=!0,r=e.base.isOver),!e.base||"op"!==e.base.type&&"operatorname"!==e.base.type||(e.base.parentIsSupSub=!0);var a,i=[Rt(e.base,t)];if(e.sub&&i.push(Rt(e.sub,t)),e.sup&&i.push(Rt(e.sup,t)),n)a=r?"mover":"munder";else if(e.sub)if(e.sup){var o=e.base;a=o&&"op"===o.type&&o.limits&&t.style===x.DISPLAY||o&&"operatorname"===o.type&&o.alwaysHandleSupSub&&(t.style===x.DISPLAY||o.limits)?"munderover":"msubsup"}else{var s=e.base;a=s&&"op"===s.type&&s.limits&&(t.style===x.DISPLAY||s.alwaysHandleSupSub)||s&&"operatorname"===s.type&&s.alwaysHandleSupSub&&(s.limits||t.style===x.DISPLAY)?"munder":"msub"}else{var l=e.base;a=l&&"op"===l.type&&l.limits&&(t.style===x.DISPLAY||l.alwaysHandleSupSub)||l&&"operatorname"===l.type&&l.alwaysHandleSupSub&&(l.limits||t.style===x.DISPLAY)?"mover":"msup"}return new Tt.MathNode(a,i)}}),st({type:"atom",htmlBuilder:function(e,t){return Ke.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[Bt(e.text,e.mode)]);if("bin"===e.family){var n=Nt(e,t);"bold-italic"===n&&r.setAttribute("mathvariant",n)}else"punct"===e.family?r.setAttribute("separator","true"):"open"!==e.family&&"close"!==e.family||r.setAttribute("stretchy","false");return r}});var kn={mi:"italic",mn:"normal",mtext:"normal"};st({type:"mathord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"mathord")},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mi",[Bt(e.text,e.mode,t)]),n=Nt(e,t)||"italic";return n!==kn[r.type]&&r.setAttribute("mathvariant",n),r}}),st({type:"textord",htmlBuilder:function(e,t){return Ke.makeOrd(e,t,"textord")},mathmlBuilder:function(e,t){var r,n=Bt(e.text,e.mode,t),a=Nt(e,t)||"normal";return r="text"===e.mode?new Tt.MathNode("mtext",[n]):/[0-9]/.test(e.text)?new Tt.MathNode("mn",[n]):"\\prime"===e.text?new Tt.MathNode("mo",[n]):new Tt.MathNode("mi",[n]),a!==kn[r.type]&&r.setAttribute("mathvariant",a),r}});var Sn={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},Mn={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};st({type:"spacing",htmlBuilder:function(e,t){if(Mn.hasOwnProperty(e.text)){var r=Mn[e.text].className||"";if("text"===e.mode){var a=Ke.makeOrd(e,t,"textord");return a.classes.push(r),a}return Ke.makeSpan(["mspace",r],[Ke.mathsym(e.text,e.mode,t)],t)}if(Sn.hasOwnProperty(e.text))return Ke.makeSpan(["mspace",Sn[e.text]],[],t);throw new n('Unknown type of space "'+e.text+'"')},mathmlBuilder:function(e,t){if(!Mn.hasOwnProperty(e.text)){if(Sn.hasOwnProperty(e.text))return new Tt.MathNode("mspace");throw new n('Unknown type of space "'+e.text+'"')}return new Tt.MathNode("mtext",[new Tt.TextNode("\xa0")])}});var zn=function(){var e=new Tt.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};st({type:"tag",mathmlBuilder:function(e,t){var r=new Tt.MathNode("mtable",[new Tt.MathNode("mtr",[zn(),new Tt.MathNode("mtd",[It(e.body,t)]),zn(),new Tt.MathNode("mtd",[It(e.tag,t)])])]);return r.setAttribute("width","100%"),r}});var An={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Tn={"\\textbf":"textbf","\\textmd":"textmd"},Bn={"\\textit":"textit","\\textup":"textup"},Cn=function(e,t){var r=e.font;return r?An[r]?t.withTextFontFamily(An[r]):Tn[r]?t.withTextFontWeight(Tn[r]):t.withTextFontShape(Bn[r]):t};ot({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler:function(e,t){var r=e.parser,n=e.funcName,a=t[0];return{type:"text",mode:r.mode,body:ht(a),font:n}},htmlBuilder:function(e,t){var r=Cn(e,t),n=ft(e.body,r,!0);return Ke.makeSpan(["mord","text"],n,r)},mathmlBuilder:function(e,t){var r=Cn(e,t);return It(e.body,r)}}),ot({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler:function(e,t){return{type:"underline",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=Ke.makeLineSpan("underline-line",t),a=t.fontMetrics().defaultRuleThickness,i=Ke.makeVList({positionType:"top",positionData:r.height,children:[{type:"kern",size:a},{type:"elem",elem:n},{type:"kern",size:3*a},{type:"elem",elem:r}]},t);return Ke.makeSpan(["mord","underline"],[i],t)},mathmlBuilder:function(e,t){var r=new Tt.MathNode("mo",[new Tt.TextNode("\u203e")]);r.setAttribute("stretchy","true");var n=new Tt.MathNode("munder",[Rt(e.body,t),r]);return n.setAttribute("accentunder","true"),n}}),ot({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler:function(e,t){return{type:"vcenter",mode:e.parser.mode,body:t[0]}},htmlBuilder:function(e,t){var r=wt(e.body,t),n=t.fontMetrics().axisHeight,a=.5*(r.height-n-(r.depth+n));return Ke.makeVList({positionType:"shift",positionData:a,children:[{type:"elem",elem:r}]},t)},mathmlBuilder:function(e,t){return new Tt.MathNode("mpadded",[Rt(e.body,t)],["vcenter"])}}),ot({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler:function(e,t,r){throw new n("\\verb ended by end of line instead of matching delimiter")},htmlBuilder:function(e,t){for(var r=Nn(e),n=[],a=t.havingStyle(t.style.text()),i=0;i0;)this.endGroup()},t.has=function(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)},t.get=function(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]},t.set=function(e,t,r){if(void 0===r&&(r=!1),r){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(e)&&(a[e]=this.current[e])}null==t?delete this.current[e]:this.current[e]=t},e}(),Vn=Vr;Pr("\\noexpand",(function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}})),Pr("\\expandafter",(function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}})),Pr("\\@firstoftwo",(function(e){return{tokens:e.consumeArgs(2)[0],numArgs:0}})),Pr("\\@secondoftwo",(function(e){return{tokens:e.consumeArgs(2)[1],numArgs:0}})),Pr("\\@ifnextchar",(function(e){var t=e.consumeArgs(3);e.consumeSpaces();var r=e.future();return 1===t[0].length&&t[0][0].text===r.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}})),Pr("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}"),Pr("\\TextOrMath",(function(e){var t=e.consumeArgs(2);return"text"===e.mode?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}}));var Pn={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};Pr("\\char",(function(e){var t,r=e.popToken(),a="";if("'"===r.text)t=8,r=e.popToken();else if('"'===r.text)t=16,r=e.popToken();else if("`"===r.text)if("\\"===(r=e.popToken()).text[0])a=r.text.charCodeAt(1);else{if("EOF"===r.text)throw new n("\\char` missing argument");a=r.text.charCodeAt(0)}else t=10;if(t){if(null==(a=Pn[r.text])||a>=t)throw new n("Invalid base-"+t+" digit "+r.text);for(var i;null!=(i=Pn[e.future().text])&&i":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};Pr("\\dots",(function(e){var t="\\dotso",r=e.expandAfterFuture().text;return r in Gn?t=Gn[r]:("\\not"===r.slice(0,4)||r in ae.math&&l.contains(["bin","rel"],ae.math[r].group))&&(t="\\dotsb"),t}));var Un={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};Pr("\\dotso",(function(e){return e.future().text in Un?"\\ldots\\,":"\\ldots"})),Pr("\\dotsc",(function(e){var t=e.future().text;return t in Un&&","!==t?"\\ldots\\,":"\\ldots"})),Pr("\\cdots",(function(e){return e.future().text in Un?"\\@cdots\\,":"\\@cdots"})),Pr("\\dotsb","\\cdots"),Pr("\\dotsm","\\cdots"),Pr("\\dotsi","\\!\\cdots"),Pr("\\dotsx","\\ldots\\,"),Pr("\\DOTSI","\\relax"),Pr("\\DOTSB","\\relax"),Pr("\\DOTSX","\\relax"),Pr("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax"),Pr("\\,","\\tmspace+{3mu}{.1667em}"),Pr("\\thinspace","\\,"),Pr("\\>","\\mskip{4mu}"),Pr("\\:","\\tmspace+{4mu}{.2222em}"),Pr("\\medspace","\\:"),Pr("\\;","\\tmspace+{5mu}{.2777em}"),Pr("\\thickspace","\\;"),Pr("\\!","\\tmspace-{3mu}{.1667em}"),Pr("\\negthinspace","\\!"),Pr("\\negmedspace","\\tmspace-{4mu}{.2222em}"),Pr("\\negthickspace","\\tmspace-{5mu}{.277em}"),Pr("\\enspace","\\kern.5em "),Pr("\\enskip","\\hskip.5em\\relax"),Pr("\\quad","\\hskip1em\\relax"),Pr("\\qquad","\\hskip2em\\relax"),Pr("\\tag","\\@ifstar\\tag@literal\\tag@paren"),Pr("\\tag@paren","\\tag@literal{({#1})}"),Pr("\\tag@literal",(function(e){if(e.macros.get("\\df@tag"))throw new n("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"})),Pr("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}"),Pr("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)"),Pr("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}"),Pr("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1"),Pr("\\newline","\\\\\\relax"),Pr("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Yn=F(T["Main-Regular"]["T".charCodeAt(0)][1]-.7*T["Main-Regular"]["A".charCodeAt(0)][1]);Pr("\\LaTeX","\\textrm{\\html@mathml{L\\kern-.36em\\raisebox{"+Yn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{LaTeX}}"),Pr("\\KaTeX","\\textrm{\\html@mathml{K\\kern-.17em\\raisebox{"+Yn+"}{\\scriptstyle A}\\kern-.15em\\TeX}{KaTeX}}"),Pr("\\hspace","\\@ifstar\\@hspacer\\@hspace"),Pr("\\@hspace","\\hskip #1\\relax"),Pr("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax"),Pr("\\ordinarycolon",":"),Pr("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}"),Pr("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}'),Pr("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}'),Pr("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}'),Pr("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}'),Pr("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}'),Pr("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}'),Pr("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}'),Pr("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}'),Pr("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}'),Pr("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}'),Pr("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}'),Pr("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}'),Pr("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}'),Pr("\u2237","\\dblcolon"),Pr("\u2239","\\eqcolon"),Pr("\u2254","\\coloneqq"),Pr("\u2255","\\eqqcolon"),Pr("\u2a74","\\Coloneqq"),Pr("\\ratio","\\vcentcolon"),Pr("\\coloncolon","\\dblcolon"),Pr("\\colonequals","\\coloneqq"),Pr("\\coloncolonequals","\\Coloneqq"),Pr("\\equalscolon","\\eqqcolon"),Pr("\\equalscoloncolon","\\Eqqcolon"),Pr("\\colonminus","\\coloneq"),Pr("\\coloncolonminus","\\Coloneq"),Pr("\\minuscolon","\\eqcolon"),Pr("\\minuscoloncolon","\\Eqcolon"),Pr("\\coloncolonapprox","\\Colonapprox"),Pr("\\coloncolonsim","\\Colonsim"),Pr("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Pr("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Pr("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}"),Pr("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}"),Pr("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220c}}"),Pr("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}"),Pr("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}"),Pr("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}"),Pr("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}"),Pr("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}"),Pr("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}"),Pr("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}"),Pr("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}"),Pr("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}"),Pr("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}"),Pr("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}"),Pr("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}"),Pr("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}"),Pr("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}"),Pr("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}"),Pr("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}"),Pr("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}"),Pr("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}"),Pr("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228a}"),Pr("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2acb}"),Pr("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228b}"),Pr("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2acc}"),Pr("\\imath","\\html@mathml{\\@imath}{\u0131}"),Pr("\\jmath","\\html@mathml{\\@jmath}{\u0237}"),Pr("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27e6}}"),Pr("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27e7}}"),Pr("\u27e6","\\llbracket"),Pr("\u27e7","\\rrbracket"),Pr("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}"),Pr("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}"),Pr("\u2983","\\lBrace"),Pr("\u2984","\\rBrace"),Pr("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29b5}}"),Pr("\u29b5","\\minuso"),Pr("\\darr","\\downarrow"),Pr("\\dArr","\\Downarrow"),Pr("\\Darr","\\Downarrow"),Pr("\\lang","\\langle"),Pr("\\rang","\\rangle"),Pr("\\uarr","\\uparrow"),Pr("\\uArr","\\Uparrow"),Pr("\\Uarr","\\Uparrow"),Pr("\\N","\\mathbb{N}"),Pr("\\R","\\mathbb{R}"),Pr("\\Z","\\mathbb{Z}"),Pr("\\alef","\\aleph"),Pr("\\alefsym","\\aleph"),Pr("\\Alpha","\\mathrm{A}"),Pr("\\Beta","\\mathrm{B}"),Pr("\\bull","\\bullet"),Pr("\\Chi","\\mathrm{X}"),Pr("\\clubs","\\clubsuit"),Pr("\\cnums","\\mathbb{C}"),Pr("\\Complex","\\mathbb{C}"),Pr("\\Dagger","\\ddagger"),Pr("\\diamonds","\\diamondsuit"),Pr("\\empty","\\emptyset"),Pr("\\Epsilon","\\mathrm{E}"),Pr("\\Eta","\\mathrm{H}"),Pr("\\exist","\\exists"),Pr("\\harr","\\leftrightarrow"),Pr("\\hArr","\\Leftrightarrow"),Pr("\\Harr","\\Leftrightarrow"),Pr("\\hearts","\\heartsuit"),Pr("\\image","\\Im"),Pr("\\infin","\\infty"),Pr("\\Iota","\\mathrm{I}"),Pr("\\isin","\\in"),Pr("\\Kappa","\\mathrm{K}"),Pr("\\larr","\\leftarrow"),Pr("\\lArr","\\Leftarrow"),Pr("\\Larr","\\Leftarrow"),Pr("\\lrarr","\\leftrightarrow"),Pr("\\lrArr","\\Leftrightarrow"),Pr("\\Lrarr","\\Leftrightarrow"),Pr("\\Mu","\\mathrm{M}"),Pr("\\natnums","\\mathbb{N}"),Pr("\\Nu","\\mathrm{N}"),Pr("\\Omicron","\\mathrm{O}"),Pr("\\plusmn","\\pm"),Pr("\\rarr","\\rightarrow"),Pr("\\rArr","\\Rightarrow"),Pr("\\Rarr","\\Rightarrow"),Pr("\\real","\\Re"),Pr("\\reals","\\mathbb{R}"),Pr("\\Reals","\\mathbb{R}"),Pr("\\Rho","\\mathrm{P}"),Pr("\\sdot","\\cdot"),Pr("\\sect","\\S"),Pr("\\spades","\\spadesuit"),Pr("\\sub","\\subset"),Pr("\\sube","\\subseteq"),Pr("\\supe","\\supseteq"),Pr("\\Tau","\\mathrm{T}"),Pr("\\thetasym","\\vartheta"),Pr("\\weierp","\\wp"),Pr("\\Zeta","\\mathrm{Z}"),Pr("\\argmin","\\DOTSB\\operatorname*{arg\\,min}"),Pr("\\argmax","\\DOTSB\\operatorname*{arg\\,max}"),Pr("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits"),Pr("\\bra","\\mathinner{\\langle{#1}|}"),Pr("\\ket","\\mathinner{|{#1}\\rangle}"),Pr("\\braket","\\mathinner{\\langle{#1}\\rangle}"),Pr("\\Bra","\\left\\langle#1\\right|"),Pr("\\Ket","\\left|#1\\right\\rangle");var Xn=function(e){return function(t){var r=t.consumeArg().tokens,n=t.consumeArg().tokens,a=t.consumeArg().tokens,i=t.consumeArg().tokens,o=t.macros.get("|"),s=t.macros.get("\\|");t.macros.beginGroup();var l=function(t){return function(r){e&&(r.macros.set("|",o),a.length&&r.macros.set("\\|",s));var i=t;!t&&a.length&&("|"===r.future().text&&(r.popToken(),i=!0));return{tokens:i?a:n,numArgs:0}}};t.macros.set("|",l(!1)),a.length&&t.macros.set("\\|",l(!0));var h=t.consumeArg().tokens,c=t.expandTokens([].concat(i,h,r));return t.macros.endGroup(),{tokens:c.reverse(),numArgs:0}}};Pr("\\bra@ket",Xn(!1)),Pr("\\bra@set",Xn(!0)),Pr("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}"),Pr("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}"),Pr("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}"),Pr("\\angln","{\\angl n}"),Pr("\\blue","\\textcolor{##6495ed}{#1}"),Pr("\\orange","\\textcolor{##ffa500}{#1}"),Pr("\\pink","\\textcolor{##ff00af}{#1}"),Pr("\\red","\\textcolor{##df0030}{#1}"),Pr("\\green","\\textcolor{##28ae7b}{#1}"),Pr("\\gray","\\textcolor{gray}{#1}"),Pr("\\purple","\\textcolor{##9d38bd}{#1}"),Pr("\\blueA","\\textcolor{##ccfaff}{#1}"),Pr("\\blueB","\\textcolor{##80f6ff}{#1}"),Pr("\\blueC","\\textcolor{##63d9ea}{#1}"),Pr("\\blueD","\\textcolor{##11accd}{#1}"),Pr("\\blueE","\\textcolor{##0c7f99}{#1}"),Pr("\\tealA","\\textcolor{##94fff5}{#1}"),Pr("\\tealB","\\textcolor{##26edd5}{#1}"),Pr("\\tealC","\\textcolor{##01d1c1}{#1}"),Pr("\\tealD","\\textcolor{##01a995}{#1}"),Pr("\\tealE","\\textcolor{##208170}{#1}"),Pr("\\greenA","\\textcolor{##b6ffb0}{#1}"),Pr("\\greenB","\\textcolor{##8af281}{#1}"),Pr("\\greenC","\\textcolor{##74cf70}{#1}"),Pr("\\greenD","\\textcolor{##1fab54}{#1}"),Pr("\\greenE","\\textcolor{##0d923f}{#1}"),Pr("\\goldA","\\textcolor{##ffd0a9}{#1}"),Pr("\\goldB","\\textcolor{##ffbb71}{#1}"),Pr("\\goldC","\\textcolor{##ff9c39}{#1}"),Pr("\\goldD","\\textcolor{##e07d10}{#1}"),Pr("\\goldE","\\textcolor{##a75a05}{#1}"),Pr("\\redA","\\textcolor{##fca9a9}{#1}"),Pr("\\redB","\\textcolor{##ff8482}{#1}"),Pr("\\redC","\\textcolor{##f9685d}{#1}"),Pr("\\redD","\\textcolor{##e84d39}{#1}"),Pr("\\redE","\\textcolor{##bc2612}{#1}"),Pr("\\maroonA","\\textcolor{##ffbde0}{#1}"),Pr("\\maroonB","\\textcolor{##ff92c6}{#1}"),Pr("\\maroonC","\\textcolor{##ed5fa6}{#1}"),Pr("\\maroonD","\\textcolor{##ca337c}{#1}"),Pr("\\maroonE","\\textcolor{##9e034e}{#1}"),Pr("\\purpleA","\\textcolor{##ddd7ff}{#1}"),Pr("\\purpleB","\\textcolor{##c6b9fc}{#1}"),Pr("\\purpleC","\\textcolor{##aa87ff}{#1}"),Pr("\\purpleD","\\textcolor{##7854ab}{#1}"),Pr("\\purpleE","\\textcolor{##543b78}{#1}"),Pr("\\mintA","\\textcolor{##f5f9e8}{#1}"),Pr("\\mintB","\\textcolor{##edf2df}{#1}"),Pr("\\mintC","\\textcolor{##e0e5cc}{#1}"),Pr("\\grayA","\\textcolor{##f6f7f7}{#1}"),Pr("\\grayB","\\textcolor{##f0f1f2}{#1}"),Pr("\\grayC","\\textcolor{##e3e5e6}{#1}"),Pr("\\grayD","\\textcolor{##d6d8da}{#1}"),Pr("\\grayE","\\textcolor{##babec2}{#1}"),Pr("\\grayF","\\textcolor{##888d93}{#1}"),Pr("\\grayG","\\textcolor{##626569}{#1}"),Pr("\\grayH","\\textcolor{##3b3e40}{#1}"),Pr("\\grayI","\\textcolor{##21242c}{#1}"),Pr("\\kaBlue","\\textcolor{##314453}{#1}"),Pr("\\kaGreen","\\textcolor{##71B307}{#1}");var Wn={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},_n=function(){function e(e,t,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new Dn(Vn,t.macros),this.mode=r,this.stack=[]}var t=e.prototype;return t.feed=function(e){this.lexer=new Ln(e,this.settings)},t.switchMode=function(e){this.mode=e},t.beginGroup=function(){this.macros.beginGroup()},t.endGroup=function(){this.macros.endGroup()},t.endGroups=function(){this.macros.endGroups()},t.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},t.popToken=function(){return this.future(),this.stack.pop()},t.pushToken=function(e){this.stack.push(e)},t.pushTokens=function(e){var t;(t=this.stack).push.apply(t,e)},t.scanArgument=function(e){var t,r,n;if(e){if(this.consumeSpaces(),"["!==this.future().text)return null;t=this.popToken();var a=this.consumeArg(["]"]);n=a.tokens,r=a.end}else{var i=this.consumeArg();n=i.tokens,t=i.start,r=i.end}return this.pushToken(new Gr("EOF",r.loc)),this.pushTokens(n),t.range(r,"")},t.consumeSpaces=function(){for(;;){if(" "!==this.future().text)break;this.stack.pop()}},t.consumeArg=function(e){var t=[],r=e&&e.length>0;r||this.consumeSpaces();var a,i=this.future(),o=0,s=0;do{if(a=this.popToken(),t.push(a),"{"===a.text)++o;else if("}"===a.text){if(-1===--o)throw new n("Extra }",a)}else if("EOF"===a.text)throw new n("Unexpected end of input in a macro argument, expected '"+(e&&r?e[s]:"}")+"'",a);if(e&&r)if((0===o||1===o&&"{"===e[s])&&a.text===e[s]){if(++s===e.length){t.splice(-s,s);break}}else s=0}while(0!==o||r);return"{"===i.text&&"}"===t[t.length-1].text&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:i,end:a}},t.consumeArgs=function(e,t){if(t){if(t.length!==e+1)throw new n("The length of delimiters doesn't match the number of args!");for(var r=t[0],a=0;athis.settings.maxExpand)throw new n("Too many expansions: infinite loop or need to increase maxExpand setting");var i=a.tokens,o=this.consumeArgs(a.numArgs,a.delimiters);if(a.numArgs)for(var s=(i=i.slice()).length-1;s>=0;--s){var l=i[s];if("#"===l.text){if(0===s)throw new n("Incomplete placeholder at end of macro body",l);if("#"===(l=i[--s]).text)i.splice(s+1,1);else{if(!/^[1-9]$/.test(l.text))throw new n("Not a valid argument number",l);var h;(h=i).splice.apply(h,[s,2].concat(o[+l.text-1]))}}}return this.pushTokens(i),i.length},t.expandAfterFuture=function(){return this.expandOnce(),this.future()},t.expandNextToken=function(){for(;;)if(!1===this.expandOnce()){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error},t.expandMacro=function(e){return this.macros.has(e)?this.expandTokens([new Gr(e)]):void 0},t.expandTokens=function(e){var t=[],r=this.stack.length;for(this.pushTokens(e);this.stack.length>r;)if(!1===this.expandOnce(!0)){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return t},t.expandMacroAsText=function(e){var t=this.expandMacro(e);return t?t.map((function(e){return e.text})).join(""):t},t._getExpansion=function(e){var t=this.macros.get(e);if(null==t)return t;if(1===e.length){var r=this.lexer.catcodes[e];if(null!=r&&13!==r)return}var n="function"==typeof t?t(this):t;if("string"==typeof n){var a=0;if(-1!==n.indexOf("#"))for(var i=n.replace(/##/g,"");-1!==i.indexOf("#"+(a+1));)++a;for(var o=new Ln(n,this.settings),s=[],l=o.lex();"EOF"!==l.text;)s.push(l),l=o.lex();return s.reverse(),{tokens:s,numArgs:a}}return n},t.isDefined=function(e){return this.macros.has(e)||qn.hasOwnProperty(e)||ae.math.hasOwnProperty(e)||ae.text.hasOwnProperty(e)||Wn.hasOwnProperty(e)},t.isExpandable=function(e){var t=this.macros.get(e);return null!=t?"string"==typeof t||"function"==typeof t||!t.unexpandable:qn.hasOwnProperty(e)&&!qn[e].primitive},e}(),jn=/^[\u208a\u208b\u208c\u208d\u208e\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089\u2090\u2091\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u1d63\u209b\u209c\u1d64\u1d65\u2093\u1d66\u1d67\u1d68\u1d69\u1d6a]/,$n=Object.freeze({"\u208a":"+","\u208b":"-","\u208c":"=","\u208d":"(","\u208e":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1d62":"i","\u2c7c":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209a":"p","\u1d63":"r","\u209b":"s","\u209c":"t","\u1d64":"u","\u1d65":"v","\u2093":"x","\u1d66":"\u03b2","\u1d67":"\u03b3","\u1d68":"\u03c1","\u1d69":"\u03d5","\u1d6a":"\u03c7","\u207a":"+","\u207b":"-","\u207c":"=","\u207d":"(","\u207e":")","\u2070":"0","\xb9":"1","\xb2":"2","\xb3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1d2c":"A","\u1d2e":"B","\u1d30":"D","\u1d31":"E","\u1d33":"G","\u1d34":"H","\u1d35":"I","\u1d36":"J","\u1d37":"K","\u1d38":"L","\u1d39":"M","\u1d3a":"N","\u1d3c":"O","\u1d3e":"P","\u1d3f":"R","\u1d40":"T","\u1d41":"U","\u2c7d":"V","\u1d42":"W","\u1d43":"a","\u1d47":"b","\u1d9c":"c","\u1d48":"d","\u1d49":"e","\u1da0":"f","\u1d4d":"g","\u02b0":"h","\u2071":"i","\u02b2":"j","\u1d4f":"k","\u02e1":"l","\u1d50":"m","\u207f":"n","\u1d52":"o","\u1d56":"p","\u02b3":"r","\u02e2":"s","\u1d57":"t","\u1d58":"u","\u1d5b":"v","\u02b7":"w","\u02e3":"x","\u02b8":"y","\u1dbb":"z","\u1d5d":"\u03b2","\u1d5e":"\u03b3","\u1d5f":"\u03b4","\u1d60":"\u03d5","\u1d61":"\u03c7","\u1dbf":"\u03b8"}),Zn={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030c":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030a":{text:"\\r",math:"\\mathring"},"\u030b":{text:"\\H"},"\u0327":{text:"\\c"}},Kn={"\xe1":"a\u0301","\xe0":"a\u0300","\xe4":"a\u0308","\u01df":"a\u0308\u0304","\xe3":"a\u0303","\u0101":"a\u0304","\u0103":"a\u0306","\u1eaf":"a\u0306\u0301","\u1eb1":"a\u0306\u0300","\u1eb5":"a\u0306\u0303","\u01ce":"a\u030c","\xe2":"a\u0302","\u1ea5":"a\u0302\u0301","\u1ea7":"a\u0302\u0300","\u1eab":"a\u0302\u0303","\u0227":"a\u0307","\u01e1":"a\u0307\u0304","\xe5":"a\u030a","\u01fb":"a\u030a\u0301","\u1e03":"b\u0307","\u0107":"c\u0301","\u1e09":"c\u0327\u0301","\u010d":"c\u030c","\u0109":"c\u0302","\u010b":"c\u0307","\xe7":"c\u0327","\u010f":"d\u030c","\u1e0b":"d\u0307","\u1e11":"d\u0327","\xe9":"e\u0301","\xe8":"e\u0300","\xeb":"e\u0308","\u1ebd":"e\u0303","\u0113":"e\u0304","\u1e17":"e\u0304\u0301","\u1e15":"e\u0304\u0300","\u0115":"e\u0306","\u1e1d":"e\u0327\u0306","\u011b":"e\u030c","\xea":"e\u0302","\u1ebf":"e\u0302\u0301","\u1ec1":"e\u0302\u0300","\u1ec5":"e\u0302\u0303","\u0117":"e\u0307","\u0229":"e\u0327","\u1e1f":"f\u0307","\u01f5":"g\u0301","\u1e21":"g\u0304","\u011f":"g\u0306","\u01e7":"g\u030c","\u011d":"g\u0302","\u0121":"g\u0307","\u0123":"g\u0327","\u1e27":"h\u0308","\u021f":"h\u030c","\u0125":"h\u0302","\u1e23":"h\u0307","\u1e29":"h\u0327","\xed":"i\u0301","\xec":"i\u0300","\xef":"i\u0308","\u1e2f":"i\u0308\u0301","\u0129":"i\u0303","\u012b":"i\u0304","\u012d":"i\u0306","\u01d0":"i\u030c","\xee":"i\u0302","\u01f0":"j\u030c","\u0135":"j\u0302","\u1e31":"k\u0301","\u01e9":"k\u030c","\u0137":"k\u0327","\u013a":"l\u0301","\u013e":"l\u030c","\u013c":"l\u0327","\u1e3f":"m\u0301","\u1e41":"m\u0307","\u0144":"n\u0301","\u01f9":"n\u0300","\xf1":"n\u0303","\u0148":"n\u030c","\u1e45":"n\u0307","\u0146":"n\u0327","\xf3":"o\u0301","\xf2":"o\u0300","\xf6":"o\u0308","\u022b":"o\u0308\u0304","\xf5":"o\u0303","\u1e4d":"o\u0303\u0301","\u1e4f":"o\u0303\u0308","\u022d":"o\u0303\u0304","\u014d":"o\u0304","\u1e53":"o\u0304\u0301","\u1e51":"o\u0304\u0300","\u014f":"o\u0306","\u01d2":"o\u030c","\xf4":"o\u0302","\u1ed1":"o\u0302\u0301","\u1ed3":"o\u0302\u0300","\u1ed7":"o\u0302\u0303","\u022f":"o\u0307","\u0231":"o\u0307\u0304","\u0151":"o\u030b","\u1e55":"p\u0301","\u1e57":"p\u0307","\u0155":"r\u0301","\u0159":"r\u030c","\u1e59":"r\u0307","\u0157":"r\u0327","\u015b":"s\u0301","\u1e65":"s\u0301\u0307","\u0161":"s\u030c","\u1e67":"s\u030c\u0307","\u015d":"s\u0302","\u1e61":"s\u0307","\u015f":"s\u0327","\u1e97":"t\u0308","\u0165":"t\u030c","\u1e6b":"t\u0307","\u0163":"t\u0327","\xfa":"u\u0301","\xf9":"u\u0300","\xfc":"u\u0308","\u01d8":"u\u0308\u0301","\u01dc":"u\u0308\u0300","\u01d6":"u\u0308\u0304","\u01da":"u\u0308\u030c","\u0169":"u\u0303","\u1e79":"u\u0303\u0301","\u016b":"u\u0304","\u1e7b":"u\u0304\u0308","\u016d":"u\u0306","\u01d4":"u\u030c","\xfb":"u\u0302","\u016f":"u\u030a","\u0171":"u\u030b","\u1e7d":"v\u0303","\u1e83":"w\u0301","\u1e81":"w\u0300","\u1e85":"w\u0308","\u0175":"w\u0302","\u1e87":"w\u0307","\u1e98":"w\u030a","\u1e8d":"x\u0308","\u1e8b":"x\u0307","\xfd":"y\u0301","\u1ef3":"y\u0300","\xff":"y\u0308","\u1ef9":"y\u0303","\u0233":"y\u0304","\u0177":"y\u0302","\u1e8f":"y\u0307","\u1e99":"y\u030a","\u017a":"z\u0301","\u017e":"z\u030c","\u1e91":"z\u0302","\u017c":"z\u0307","\xc1":"A\u0301","\xc0":"A\u0300","\xc4":"A\u0308","\u01de":"A\u0308\u0304","\xc3":"A\u0303","\u0100":"A\u0304","\u0102":"A\u0306","\u1eae":"A\u0306\u0301","\u1eb0":"A\u0306\u0300","\u1eb4":"A\u0306\u0303","\u01cd":"A\u030c","\xc2":"A\u0302","\u1ea4":"A\u0302\u0301","\u1ea6":"A\u0302\u0300","\u1eaa":"A\u0302\u0303","\u0226":"A\u0307","\u01e0":"A\u0307\u0304","\xc5":"A\u030a","\u01fa":"A\u030a\u0301","\u1e02":"B\u0307","\u0106":"C\u0301","\u1e08":"C\u0327\u0301","\u010c":"C\u030c","\u0108":"C\u0302","\u010a":"C\u0307","\xc7":"C\u0327","\u010e":"D\u030c","\u1e0a":"D\u0307","\u1e10":"D\u0327","\xc9":"E\u0301","\xc8":"E\u0300","\xcb":"E\u0308","\u1ebc":"E\u0303","\u0112":"E\u0304","\u1e16":"E\u0304\u0301","\u1e14":"E\u0304\u0300","\u0114":"E\u0306","\u1e1c":"E\u0327\u0306","\u011a":"E\u030c","\xca":"E\u0302","\u1ebe":"E\u0302\u0301","\u1ec0":"E\u0302\u0300","\u1ec4":"E\u0302\u0303","\u0116":"E\u0307","\u0228":"E\u0327","\u1e1e":"F\u0307","\u01f4":"G\u0301","\u1e20":"G\u0304","\u011e":"G\u0306","\u01e6":"G\u030c","\u011c":"G\u0302","\u0120":"G\u0307","\u0122":"G\u0327","\u1e26":"H\u0308","\u021e":"H\u030c","\u0124":"H\u0302","\u1e22":"H\u0307","\u1e28":"H\u0327","\xcd":"I\u0301","\xcc":"I\u0300","\xcf":"I\u0308","\u1e2e":"I\u0308\u0301","\u0128":"I\u0303","\u012a":"I\u0304","\u012c":"I\u0306","\u01cf":"I\u030c","\xce":"I\u0302","\u0130":"I\u0307","\u0134":"J\u0302","\u1e30":"K\u0301","\u01e8":"K\u030c","\u0136":"K\u0327","\u0139":"L\u0301","\u013d":"L\u030c","\u013b":"L\u0327","\u1e3e":"M\u0301","\u1e40":"M\u0307","\u0143":"N\u0301","\u01f8":"N\u0300","\xd1":"N\u0303","\u0147":"N\u030c","\u1e44":"N\u0307","\u0145":"N\u0327","\xd3":"O\u0301","\xd2":"O\u0300","\xd6":"O\u0308","\u022a":"O\u0308\u0304","\xd5":"O\u0303","\u1e4c":"O\u0303\u0301","\u1e4e":"O\u0303\u0308","\u022c":"O\u0303\u0304","\u014c":"O\u0304","\u1e52":"O\u0304\u0301","\u1e50":"O\u0304\u0300","\u014e":"O\u0306","\u01d1":"O\u030c","\xd4":"O\u0302","\u1ed0":"O\u0302\u0301","\u1ed2":"O\u0302\u0300","\u1ed6":"O\u0302\u0303","\u022e":"O\u0307","\u0230":"O\u0307\u0304","\u0150":"O\u030b","\u1e54":"P\u0301","\u1e56":"P\u0307","\u0154":"R\u0301","\u0158":"R\u030c","\u1e58":"R\u0307","\u0156":"R\u0327","\u015a":"S\u0301","\u1e64":"S\u0301\u0307","\u0160":"S\u030c","\u1e66":"S\u030c\u0307","\u015c":"S\u0302","\u1e60":"S\u0307","\u015e":"S\u0327","\u0164":"T\u030c","\u1e6a":"T\u0307","\u0162":"T\u0327","\xda":"U\u0301","\xd9":"U\u0300","\xdc":"U\u0308","\u01d7":"U\u0308\u0301","\u01db":"U\u0308\u0300","\u01d5":"U\u0308\u0304","\u01d9":"U\u0308\u030c","\u0168":"U\u0303","\u1e78":"U\u0303\u0301","\u016a":"U\u0304","\u1e7a":"U\u0304\u0308","\u016c":"U\u0306","\u01d3":"U\u030c","\xdb":"U\u0302","\u016e":"U\u030a","\u0170":"U\u030b","\u1e7c":"V\u0303","\u1e82":"W\u0301","\u1e80":"W\u0300","\u1e84":"W\u0308","\u0174":"W\u0302","\u1e86":"W\u0307","\u1e8c":"X\u0308","\u1e8a":"X\u0307","\xdd":"Y\u0301","\u1ef2":"Y\u0300","\u0178":"Y\u0308","\u1ef8":"Y\u0303","\u0232":"Y\u0304","\u0176":"Y\u0302","\u1e8e":"Y\u0307","\u0179":"Z\u0301","\u017d":"Z\u030c","\u1e90":"Z\u0302","\u017b":"Z\u0307","\u03ac":"\u03b1\u0301","\u1f70":"\u03b1\u0300","\u1fb1":"\u03b1\u0304","\u1fb0":"\u03b1\u0306","\u03ad":"\u03b5\u0301","\u1f72":"\u03b5\u0300","\u03ae":"\u03b7\u0301","\u1f74":"\u03b7\u0300","\u03af":"\u03b9\u0301","\u1f76":"\u03b9\u0300","\u03ca":"\u03b9\u0308","\u0390":"\u03b9\u0308\u0301","\u1fd2":"\u03b9\u0308\u0300","\u1fd1":"\u03b9\u0304","\u1fd0":"\u03b9\u0306","\u03cc":"\u03bf\u0301","\u1f78":"\u03bf\u0300","\u03cd":"\u03c5\u0301","\u1f7a":"\u03c5\u0300","\u03cb":"\u03c5\u0308","\u03b0":"\u03c5\u0308\u0301","\u1fe2":"\u03c5\u0308\u0300","\u1fe1":"\u03c5\u0304","\u1fe0":"\u03c5\u0306","\u03ce":"\u03c9\u0301","\u1f7c":"\u03c9\u0300","\u038e":"\u03a5\u0301","\u1fea":"\u03a5\u0300","\u03ab":"\u03a5\u0308","\u1fe9":"\u03a5\u0304","\u1fe8":"\u03a5\u0306","\u038f":"\u03a9\u0301","\u1ffa":"\u03a9\u0300"},Jn=function(){function e(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new _n(e,t,this.mode),this.settings=t,this.leftrightDepth=0}var t=e.prototype;return t.expect=function(e,t){if(void 0===t&&(t=!0),this.fetch().text!==e)throw new n("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()},t.consume=function(){this.nextToken=null},t.fetch=function(){return null==this.nextToken&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken},t.switchMode=function(e){this.mode=e,this.gullet.switchMode(e)},t.parse=function(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}},t.subparse=function(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new Gr("}")),this.gullet.pushTokens(e);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,r},t.parseExpression=function(t,r){for(var n=[];;){"math"===this.mode&&this.consumeSpaces();var a=this.fetch();if(-1!==e.endOfExpression.indexOf(a.text))break;if(r&&a.text===r)break;if(t&&qn[a.text]&&qn[a.text].infix)break;var i=this.parseAtom(r);if(!i)break;"internal"!==i.type&&n.push(i)}return"text"===this.mode&&this.formLigatures(n),this.handleInfixNodes(n)},t.handleInfixNodes=function(e){for(var t,r=-1,a=0;a=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var s,l=ae[this.mode][t].group,h=Fr.range(e);if(te.hasOwnProperty(l)){var c=l;s={type:"atom",mode:this.mode,family:c,loc:h,text:t}}else s={type:l,mode:this.mode,loc:h,text:t};i=s}else{if(!(t.charCodeAt(0)>=128))return null;this.settings.strict&&(S(t.charCodeAt(0))?"math"===this.mode&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'" ('+t.charCodeAt(0)+")",e)),i={type:"textord",mode:"text",loc:Fr.range(e),text:t}}if(this.consume(),o)for(var m=0;m=0;i--)t[i].loc.start>o&&(n+=" ",o=t[i].loc.start),n+=t[i].text,o+=t[i].text.length;return r.go(a.go(n,e))},a={go:function(t,e){if(!t)return[];void 0===e&&(e="ce");var n,o="0",r={};r.parenthesisLevel=0,t=(t=(t=t.replace(/\n/g," ")).replace(/[\u2212\u2013\u2014\u2010]/g,"-")).replace(/[\u2026]/g,"...");for(var i=10,c=[];;){n!==t?(i=10,n=t):i--;var u=a.stateMachines[e],p=u.transitions[o]||u.transitions["*"];t:for(var s=0;s0))return c;if(d.revisit||(t=_.remainder),!d.toContinue)break t}}if(i<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(t,e){if(e)if(Array.isArray(e))for(var n=0;n":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(t){return a.patterns.findObserveGroups(t,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(t){return a.patterns.findObserveGroups(t,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(t){var e;if(e=t.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{match_:e[0],remainder:t.substr(e[0].length)};var n=a.patterns.findObserveGroups(t,"","$","$","");return n&&(e=n.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{match_:e[0],remainder:t.substr(e[0].length)}:null},amount2:function(t){return this.amount(t)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(t){if(t.match(/^\([a-z]+\)$/))return null;var e=t.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return e?{match_:e[0],remainder:t.substr(e[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(t,e,n,o,a,r,i,c,u,p){var s=function(t,e){if("string"==typeof e)return 0!==t.indexOf(e)?null:e;var n=t.match(e);return n?n[0]:null},_=s(t,e);if(null===_)return null;if(t=t.substr(_.length),null===(_=s(t,n)))return null;var d=function(t,e,n){for(var o=0;e":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(t,e){var n;if((t.d||"").match(/^[0-9]+$/)){var o=t.d;t.d=void 0,n=this.output(t),t.b=o}else n=this.output(t);return a.actions["o="](t,e),n},"d= kv":function(t,e){t.d=e,t.dType="kv"},"charge or bond":function(t,e){if(t.beginsWithBond){var n=[];return a.concatArray(n,this.output(t)),a.concatArray(n,a.actions.bond(t,e,"-")),n}t.d=e},"- after o/d":function(t,e,n){var o=a.patterns.match_("orbital",t.o||""),r=a.patterns.match_("one lowercase greek letter $",t.o||""),i=a.patterns.match_("one lowercase latin letter $",t.o||""),c=a.patterns.match_("$one lowercase latin letter$ $",t.o||""),u="-"===e&&(o&&""===o.remainder||r||i||c);!u||t.a||t.b||t.p||t.d||t.q||o||!i||(t.o="$"+t.o+"$");var p=[];return u?(a.concatArray(p,this.output(t)),p.push({type_:"hyphen"})):(o=a.patterns.match_("digits",t.d||""),n&&o&&""===o.remainder?(a.concatArray(p,a.actions["d="](t,e)),a.concatArray(p,this.output(t))):(a.concatArray(p,this.output(t)),a.concatArray(p,a.actions.bond(t,e,"-")))),p},"a to o":function(t){t.o=t.a,t.a=void 0},"sb=true":function(t){t.sb=!0},"sb=false":function(t){t.sb=!1},"beginsWithBond=true":function(t){t.beginsWithBond=!0},"beginsWithBond=false":function(t){t.beginsWithBond=!1},"parenthesisLevel++":function(t){t.parenthesisLevel++},"parenthesisLevel--":function(t){t.parenthesisLevel--},"state of aggregation":function(t,e){return{type_:"state of aggregation",p1:a.go(e,"o")}},comma:function(t,e){var n=e.replace(/\s*$/,"");return n!==e&&0===t.parenthesisLevel?{type_:"comma enumeration L",p1:n}:{type_:"comma enumeration M",p1:n}},output:function(t,e,n){var o,r,i;t.r?(r="M"===t.rdt?a.go(t.rd,"tex-math"):"T"===t.rdt?[{type_:"text",p1:t.rd||""}]:a.go(t.rd),i="M"===t.rqt?a.go(t.rq,"tex-math"):"T"===t.rqt?[{type_:"text",p1:t.rq||""}]:a.go(t.rq),o={type_:"arrow",r:t.r,rd:r,rq:i}):(o=[],(t.a||t.b||t.p||t.o||t.q||t.d||n)&&(t.sb&&o.push({type_:"entitySkip"}),t.o||t.q||t.d||t.b||t.p||2===n?t.o||t.q||t.d||!t.b&&!t.p?t.o&&"kv"===t.dType&&a.patterns.match_("d-oxidation$",t.d||"")?t.dType="oxidation":t.o&&"kv"===t.dType&&!t.q&&(t.dType=void 0):(t.o=t.a,t.d=t.b,t.q=t.p,t.a=t.b=t.p=void 0):(t.o=t.a,t.a=void 0),o.push({type_:"chemfive",a:a.go(t.a,"a"),b:a.go(t.b,"bd"),p:a.go(t.p,"pq"),o:a.go(t.o,"o"),q:a.go(t.q,"pq"),d:a.go(t.d,"oxidation"===t.dType?"oxidation":"bd"),dType:t.dType})));for(var c in t)"parenthesisLevel"!==c&&"beginsWithBond"!==c&&delete t[c];return o},"oxidation-output":function(t,e){var n=["{"];return a.concatArray(n,a.go(e,"oxidation")),n.push("}"),n},"frac-output":function(t,e){return{type_:"frac-ce",p1:a.go(e[0]),p2:a.go(e[1])}},"overset-output":function(t,e){return{type_:"overset",p1:a.go(e[0]),p2:a.go(e[1])}},"underset-output":function(t,e){return{type_:"underset",p1:a.go(e[0]),p2:a.go(e[1])}},"underbrace-output":function(t,e){return{type_:"underbrace",p1:a.go(e[0]),p2:a.go(e[1])}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1])}},"r=":function(t,e){t.r=e},"rdt=":function(t,e){t.rdt=e},"rd=":function(t,e){t.rd=e},"rqt=":function(t,e){t.rqt=e},"rq=":function(t,e){t.rq=e},operator:function(t,e,n){return{type_:"operator",kind_:n||e}}}},a:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(t){if(t.text_){var e={type_:"text",p1:t.text_};for(var n in t)delete t[n];return e}}}},pq:{transitions:a.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(t,e){return{type_:"state of aggregation subscript",p1:a.go(e,"o")}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"pq")}}}},bd:{transitions:a.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"bd")}}}},oxidation:{transitions:a.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(t,e){return{type_:"roman numeral",p1:e||""}}}},"tex-math":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"tex-math tight":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(t,e){t.o=(t.o||"")+"{"+e+"}"},output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"9,9":{transitions:a.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),e[1]&&(a.concatArray(n,a.go(e[1],"pu-9,9")),e[2]&&(e[2].match(/[,.]/)?a.concatArray(n,a.go(e[2],"pu-9,9")):n.push(e[2])),e[3]=e[4]||e[3],e[3]&&(e[3]=e[3].trim(),"e"===e[3]||"*"===e[3].substr(0,1)?n.push({type_:"cdot"}):n.push({type_:"times"}))),e[3]&&n.push("10^{"+e[5]+"}"),n},"number^":function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),a.concatArray(n,a.go(e[1],"pu-9,9")),n.push("^{"+e[2]+"}"),n},operator:function(t,e,n){return{type_:"operator",kind_:n||e}},space:function(){return{type_:"pu-space-1"}},output:function(t){var e,n=a.patterns.match_("{(...)}",t.d||"");n&&""===n.remainder&&(t.d=n.match_);var o=a.patterns.match_("{(...)}",t.q||"");if(o&&""===o.remainder&&(t.q=o.match_),t.d&&(t.d=t.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.d=t.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),t.q){t.q=t.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.q=t.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var r={d:a.go(t.d,"pu"),q:a.go(t.q,"pu")};"//"===t.o?e={type_:"pu-frac",p1:r.d,p2:r.q}:(e=r.d,r.d.length>1||r.q.length>1?e.push({type_:" / "}):e.push({type_:"/"}),a.concatArray(e,r.q))}else e=a.go(t.d,"pu-2");for(var i in t)delete t[i];return e}}},"pu-2":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(t,e){t.rm+="^{"+e+"}"},space:function(){return{type_:"pu-space-2"}},output:function(t){var e=[];if(t.rm){var n=a.patterns.match_("{(...)}",t.rm||"");e=n&&""===n.remainder?a.go(n.match_,"pu"):{type_:"rm",p1:t.rm}}for(var o in t)delete t[o];return e}}},"pu-9,9":{transitions:a.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){var n=t.text_.length%3;0===n&&(n=3);for(var o=t.text_.length-3;o>0;o-=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(0,n)),e.reverse()}else e.push(t.text_);for(var a in t)delete t[a];return e},"output-o":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){for(var n=t.text_.length-3,o=0;o":case"\u2192":case"\u27f6":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"rightleftarrows";case"<=>":case"\u21cc":return"rightleftharpoons";case"<=>>":return"rightequilibrium";case"<<=>":return"leftequilibrium";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(t){switch(t){case"-":case"1":return"{-}";case"=":case"2":return"{=}";case"#":case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";case"~=":case"~--":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";case"-~-":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(t){switch(t){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":case"$\\approx$":return" {}\\approx{} ";case"v":case"(v)":return" \\downarrow{} ";case"^":case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}}}(),a=a.default}()})); \ No newline at end of file +!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("katex"));else if("function"==typeof define&&define.amd)define(["katex"],e);else{var n="object"==typeof exports?e(require("katex")):e(t.katex);for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}("undefined"!=typeof self?self:this,(function(t){return function(){"use strict";var e={771:function(e){e.exports=t}},n={};function o(t){var a=n[t];if(void 0!==a)return a.exports;var r=n[t]={exports:{}};return e[t](r,r.exports,o),r.exports}o.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return o.d(e,{a:e}),e},o.d=function(t,e){for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var a={};return function(){var t=o(771),e=o.n(t);e().__defineMacro("\\ce",(function(t){return n(t.consumeArgs(1)[0],"ce")})),e().__defineMacro("\\pu",(function(t){return n(t.consumeArgs(1)[0],"pu")})),e().__defineMacro("\\tripledash","{\\vphantom{-}\\raisebox{2.56mu}{$\\mkern2mu\\tiny\\text{-}\\mkern1mu\\text{-}\\mkern1mu\\text{-}\\mkern2mu$}}");var n=function(t,e){for(var n="",o=t.length&&t[t.length-1].loc.start,i=t.length-1;i>=0;i--)t[i].loc.start>o&&(n+=" ",o=t[i].loc.start),n+=t[i].text,o+=t[i].text.length;return r.go(a.go(n,e))},a={go:function(t,e){if(!t)return[];void 0===e&&(e="ce");var n,o="0",r={};r.parenthesisLevel=0,t=(t=(t=t.replace(/\n/g," ")).replace(/[\u2212\u2013\u2014\u2010]/g,"-")).replace(/[\u2026]/g,"...");for(var i=10,c=[];;){n!==t?(i=10,n=t):i--;var u=a.stateMachines[e],p=u.transitions[o]||u.transitions["*"];t:for(var s=0;s0))return c;if(d.revisit||(t=_.remainder),!d.toContinue)break t}}if(i<=0)throw["MhchemBugU","mhchem bug U. Please report."]}},concatArray:function(t,e){if(e)if(Array.isArray(e))for(var n=0;n":/^[=<>]/,"#":/^[#\u2261]/,"+":/^\+/,"-$":/^-(?=[\s_},;\]/]|$|\([a-z]+\))/,"-9":/^-(?=[0-9])/,"- orbital overlap":/^-(?=(?:[spd]|sp)(?:$|[\s,;\)\]\}]))/,"-":/^-/,"pm-operator":/^(?:\\pm|\$\\pm\$|\+-|\+\/-)/,operator:/^(?:\+|(?:[\-=<>]|<<|>>|\\approx|\$\\approx\$)(?=\s|$|-?[0-9]))/,arrowUpDown:/^(?:v|\(v\)|\^|\(\^\))(?=$|[\s,;\)\]\}])/,"\\bond{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\bond{","","","}")},"->":/^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\u2192\u27F6\u21CC])/,CMT:/^[CMT](?=\[)/,"[(...)]":function(t){return a.patterns.findObserveGroups(t,"[","","","]")},"1st-level escape":/^(&|\\\\|\\hline)\s*/,"\\,":/^(?:\\[,\ ;:])/,"\\x{}{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","","","{","}","",!0)},"\\x{}":function(t){return a.patterns.findObserveGroups(t,"",/^\\[a-zA-Z]+\{/,"}","")},"\\ca":/^\\ca(?:\s+|(?![a-zA-Z]))/,"\\x":/^(?:\\[a-zA-Z]+\s*|\\[_&{}%])/,orbital:/^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/,others:/^[\/~|]/,"\\frac{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\frac{","","","}","{","","","}")},"\\overset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\overset{","","","}","{","","","}")},"\\underset{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underset{","","","}","{","","","}")},"\\underbrace{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\underbrace{","","","}_","{","","","}")},"\\color{(...)}0":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}")},"\\color{(...)}{(...)}1":function(t){return a.patterns.findObserveGroups(t,"\\color{","","","}","{","","","}")},"\\color(...){(...)}2":function(t){return a.patterns.findObserveGroups(t,"\\color","\\","",/^(?=\{)/,"{","","","}")},"\\ce{(...)}":function(t){return a.patterns.findObserveGroups(t,"\\ce{","","","}")},oxidation$:/^(?:[+-][IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"d-oxidation$":/^(?:[+-]?\s?[IVX]+|\\pm\s*0|\$\\pm\$\s*0)$/,"roman numeral":/^[IVX]+/,"1/2$":/^[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+(?:\$[a-z]\$|[a-z])?$/,amount:function(t){var e;if(e=t.match(/^(?:(?:(?:\([+\-]?[0-9]+\/[0-9]+\)|[+\-]?(?:[0-9]+|\$[a-z]\$|[a-z])\/[0-9]+|[+\-]?[0-9]+[.,][0-9]+|[+\-]?\.[0-9]+|[+\-]?[0-9]+)(?:[a-z](?=\s*[A-Z]))?)|[+\-]?[a-z](?=\s*[A-Z])|\+(?!\s))/))return{match_:e[0],remainder:t.substr(e[0].length)};var n=a.patterns.findObserveGroups(t,"","$","$","");return n&&(e=n.match_.match(/^\$(?:\(?[+\-]?(?:[0-9]*[a-z]?[+\-])?[0-9]*[a-z](?:[+\-][0-9]*[a-z]?)?\)?|\+|-)\$$/))?{match_:e[0],remainder:t.substr(e[0].length)}:null},amount2:function(t){return this.amount(t)},"(KV letters),":/^(?:[A-Z][a-z]{0,2}|i)(?=,)/,formula$:function(t){if(t.match(/^\([a-z]+\)$/))return null;var e=t.match(/^(?:[a-z]|(?:[0-9\ \+\-\,\.\(\)]+[a-z])+[0-9\ \+\-\,\.\(\)]*|(?:[a-z][0-9\ \+\-\,\.\(\)]+)+[a-z]?)$/);return e?{match_:e[0],remainder:t.substr(e[0].length)}:null},uprightEntities:/^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,"/":/^\s*(\/)\s*/,"//":/^\s*(\/\/)\s*/,"*":/^\s*[*.]\s*/},findObserveGroups:function(t,e,n,o,a,r,i,c,u,p){var s=function(t,e){if("string"==typeof e)return 0!==t.indexOf(e)?null:e;var n=t.match(e);return n?n[0]:null},_=s(t,e);if(null===_)return null;if(t=t.substr(_.length),null===(_=s(t,n)))return null;var d=function(t,e,n){for(var o=0;e":{"0|1|2|3":{action_:"r=",nextState:"r"},"a|as":{action_:["output","r="],nextState:"r"},"*":{action_:["output","r="],nextState:"r"}},"+":{o:{action_:"d= kv",nextState:"d"},"d|D":{action_:"d=",nextState:"d"},q:{action_:"d=",nextState:"qd"},"qd|qD":{action_:"d=",nextState:"qd"},dq:{action_:["output","d="],nextState:"d"},3:{action_:["sb=false","output","operator"],nextState:"0"}},amount:{"0|2":{action_:"a=",nextState:"a"}},"pm-operator":{"0|1|2|a|as":{action_:["sb=false","output",{type_:"operator",option:"\\pm"}],nextState:"0"}},operator:{"0|1|2|a|as":{action_:["sb=false","output","operator"],nextState:"0"}},"-$":{"o|q":{action_:["charge or bond","output"],nextState:"qd"},d:{action_:"d=",nextState:"d"},D:{action_:["output",{type_:"bond",option:"-"}],nextState:"3"},q:{action_:"d=",nextState:"qd"},qd:{action_:"d=",nextState:"qd"},"qD|dq":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},"-9":{"3|o":{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"3"}},"- orbital overlap":{o:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},d:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"}},"-":{"0|1|2":{action_:[{type_:"output",option:1},"beginsWithBond=true",{type_:"bond",option:"-"}],nextState:"3"},3:{action_:{type_:"bond",option:"-"}},a:{action_:["output",{type_:"insert",option:"hyphen"}],nextState:"2"},as:{action_:[{type_:"output",option:2},{type_:"bond",option:"-"}],nextState:"3"},b:{action_:"b="},o:{action_:{type_:"- after o/d",option:!1},nextState:"2"},q:{action_:{type_:"- after o/d",option:!1},nextState:"2"},"d|qd|dq":{action_:{type_:"- after o/d",option:!0},nextState:"2"},"D|qD|p":{action_:["output",{type_:"bond",option:"-"}],nextState:"3"}},amount2:{"1|3":{action_:"a=",nextState:"a"}},letters:{"0|1|2|3|a|as|b|p|bp|o":{action_:"o=",nextState:"o"},"q|dq":{action_:["output","o="],nextState:"o"},"d|D|qd|qD":{action_:"o after d",nextState:"o"}},digits:{o:{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},q:{action_:["output","o="],nextState:"o"},a:{action_:"o=",nextState:"o"}},"space A":{"b|p|bp":{}},space:{a:{nextState:"as"},0:{action_:"sb=false"},"1|2":{action_:"sb=true"},"r|rt|rd|rdt|rdq":{action_:"output",nextState:"0"},"*":{action_:["output","sb=true"],nextState:"1"}},"1st-level escape":{"1|2":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}]},"*":{action_:["output",{type_:"insert+p1",option:"1st-level escape"}],nextState:"0"}},"[(...)]":{"r|rt":{action_:"rd=",nextState:"rd"},"rd|rdt":{action_:"rq=",nextState:"rdq"}},"...":{"o|d|D|dq|qd|qD":{action_:["output",{type_:"bond",option:"..."}],nextState:"3"},"*":{action_:[{type_:"output",option:1},{type_:"insert",option:"ellipsis"}],nextState:"1"}},". |* ":{"*":{action_:["output",{type_:"insert",option:"addition compound"}],nextState:"1"}},"state of aggregation $":{"*":{action_:["output","state of aggregation"],nextState:"1"}},"{[(":{"a|as|o":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"0|1|2|3":{action_:["o=","output","parenthesisLevel++"],nextState:"2"},"*":{action_:["output","o=","output","parenthesisLevel++"],nextState:"2"}},")]}":{"0|1|2|3|b|p|bp|o":{action_:["o=","parenthesisLevel--"],nextState:"o"},"a|as|d|D|q|qd|qD|dq":{action_:["output","o=","parenthesisLevel--"],nextState:"o"}},", ":{"*":{action_:["output","comma"],nextState:"0"}},"^_":{"*":{}},"^{(...)}|^($...$)":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"D"},q:{action_:"d=",nextState:"qD"},"d|D|qd|qD|dq":{action_:["output","d="],nextState:"D"}},"^a|^\\x{}{}|^\\x{}|^\\x|'":{"0|1|2|as":{action_:"b=",nextState:"b"},p:{action_:"b=",nextState:"bp"},"3|o":{action_:"d= kv",nextState:"d"},q:{action_:"d=",nextState:"qd"},"d|qd|D|qD":{action_:"d="},dq:{action_:["output","d="],nextState:"d"}},"_{(state of aggregation)}$":{"d|D|q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"_{(...)}|_($...$)|_9|_\\x{}{}|_\\x{}|_\\x":{"0|1|2|as":{action_:"p=",nextState:"p"},b:{action_:"p=",nextState:"bp"},"3|o":{action_:"q=",nextState:"q"},"d|D":{action_:"q=",nextState:"dq"},"q|qd|qD|dq":{action_:["output","q="],nextState:"q"}},"=<>":{"0|1|2|3|a|as|o|q|d|D|qd|qD|dq":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"#":{"0|1|2|3|a|as|o":{action_:[{type_:"output",option:2},{type_:"bond",option:"#"}],nextState:"3"}},"{}":{"*":{action_:{type_:"output",option:1},nextState:"1"}},"{...}":{"0|1|2|3|a|as|b|p|bp":{action_:"o=",nextState:"o"},"o|d|D|q|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"$...$":{a:{action_:"a="},"0|1|2|3|as|b|p|bp|o":{action_:"o=",nextState:"o"},"as|o":{action_:"o="},"q|d|D|qd|qD|dq":{action_:["output","o="],nextState:"o"}},"\\bond{(...)}":{"*":{action_:[{type_:"output",option:2},"bond"],nextState:"3"}},"\\frac{(...)}":{"*":{action_:[{type_:"output",option:1},"frac-output"],nextState:"3"}},"\\overset{(...)}":{"*":{action_:[{type_:"output",option:2},"overset-output"],nextState:"3"}},"\\underset{(...)}":{"*":{action_:[{type_:"output",option:2},"underset-output"],nextState:"3"}},"\\underbrace{(...)}":{"*":{action_:[{type_:"output",option:2},"underbrace-output"],nextState:"3"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:[{type_:"output",option:2},"color-output"],nextState:"3"}},"\\color{(...)}0":{"*":{action_:[{type_:"output",option:2},"color0-output"]}},"\\ce{(...)}":{"*":{action_:[{type_:"output",option:2},"ce"],nextState:"3"}},"\\,":{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"1"}},"\\x{}{}|\\x{}|\\x":{"0|1|2|3|a|as|b|p|bp|o|c0":{action_:["o=","output"],nextState:"3"},"*":{action_:["output","o=","output"],nextState:"3"}},others:{"*":{action_:[{type_:"output",option:1},"copy"],nextState:"3"}},else2:{a:{action_:"a to o",nextState:"o",revisit:!0},as:{action_:["output","sb=true"],nextState:"1",revisit:!0},"r|rt|rd|rdt|rdq":{action_:["output"],nextState:"0",revisit:!0},"*":{action_:["output","copy"],nextState:"3"}}}),actions:{"o after d":function(t,e){var n;if((t.d||"").match(/^[0-9]+$/)){var o=t.d;t.d=void 0,n=this.output(t),t.b=o}else n=this.output(t);return a.actions["o="](t,e),n},"d= kv":function(t,e){t.d=e,t.dType="kv"},"charge or bond":function(t,e){if(t.beginsWithBond){var n=[];return a.concatArray(n,this.output(t)),a.concatArray(n,a.actions.bond(t,e,"-")),n}t.d=e},"- after o/d":function(t,e,n){var o=a.patterns.match_("orbital",t.o||""),r=a.patterns.match_("one lowercase greek letter $",t.o||""),i=a.patterns.match_("one lowercase latin letter $",t.o||""),c=a.patterns.match_("$one lowercase latin letter$ $",t.o||""),u="-"===e&&(o&&""===o.remainder||r||i||c);!u||t.a||t.b||t.p||t.d||t.q||o||!i||(t.o="$"+t.o+"$");var p=[];return u?(a.concatArray(p,this.output(t)),p.push({type_:"hyphen"})):(o=a.patterns.match_("digits",t.d||""),n&&o&&""===o.remainder?(a.concatArray(p,a.actions["d="](t,e)),a.concatArray(p,this.output(t))):(a.concatArray(p,this.output(t)),a.concatArray(p,a.actions.bond(t,e,"-")))),p},"a to o":function(t){t.o=t.a,t.a=void 0},"sb=true":function(t){t.sb=!0},"sb=false":function(t){t.sb=!1},"beginsWithBond=true":function(t){t.beginsWithBond=!0},"beginsWithBond=false":function(t){t.beginsWithBond=!1},"parenthesisLevel++":function(t){t.parenthesisLevel++},"parenthesisLevel--":function(t){t.parenthesisLevel--},"state of aggregation":function(t,e){return{type_:"state of aggregation",p1:a.go(e,"o")}},comma:function(t,e){var n=e.replace(/\s*$/,"");return n!==e&&0===t.parenthesisLevel?{type_:"comma enumeration L",p1:n}:{type_:"comma enumeration M",p1:n}},output:function(t,e,n){var o,r,i;t.r?(r="M"===t.rdt?a.go(t.rd,"tex-math"):"T"===t.rdt?[{type_:"text",p1:t.rd||""}]:a.go(t.rd),i="M"===t.rqt?a.go(t.rq,"tex-math"):"T"===t.rqt?[{type_:"text",p1:t.rq||""}]:a.go(t.rq),o={type_:"arrow",r:t.r,rd:r,rq:i}):(o=[],(t.a||t.b||t.p||t.o||t.q||t.d||n)&&(t.sb&&o.push({type_:"entitySkip"}),t.o||t.q||t.d||t.b||t.p||2===n?t.o||t.q||t.d||!t.b&&!t.p?t.o&&"kv"===t.dType&&a.patterns.match_("d-oxidation$",t.d||"")?t.dType="oxidation":t.o&&"kv"===t.dType&&!t.q&&(t.dType=void 0):(t.o=t.a,t.d=t.b,t.q=t.p,t.a=t.b=t.p=void 0):(t.o=t.a,t.a=void 0),o.push({type_:"chemfive",a:a.go(t.a,"a"),b:a.go(t.b,"bd"),p:a.go(t.p,"pq"),o:a.go(t.o,"o"),q:a.go(t.q,"pq"),d:a.go(t.d,"oxidation"===t.dType?"oxidation":"bd"),dType:t.dType})));for(var c in t)"parenthesisLevel"!==c&&"beginsWithBond"!==c&&delete t[c];return o},"oxidation-output":function(t,e){var n=["{"];return a.concatArray(n,a.go(e,"oxidation")),n.push("}"),n},"frac-output":function(t,e){return{type_:"frac-ce",p1:a.go(e[0]),p2:a.go(e[1])}},"overset-output":function(t,e){return{type_:"overset",p1:a.go(e[0]),p2:a.go(e[1])}},"underset-output":function(t,e){return{type_:"underset",p1:a.go(e[0]),p2:a.go(e[1])}},"underbrace-output":function(t,e){return{type_:"underbrace",p1:a.go(e[0]),p2:a.go(e[1])}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1])}},"r=":function(t,e){t.r=e},"rdt=":function(t,e){t.rdt=e},"rd=":function(t,e){t.rd=e},"rqt=":function(t,e){t.rqt=e},"rq=":function(t,e){t.rq=e},operator:function(t,e,n){return{type_:"operator",kind_:n||e}}}},a:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},"$(...)$":{"*":{action_:"tex-math tight",nextState:"1"}},",":{"*":{action_:{type_:"insert",option:"commaDecimal"}}},else2:{"*":{action_:"copy"}}}),actions:{}},o:{transitions:a.createTransitions({empty:{"*":{}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"1",revisit:!0}},letters:{"*":{action_:"rm"}},"\\ca":{"*":{action_:{type_:"insert",option:"circa"}}},"\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"{text}"}},else2:{"*":{action_:"copy"}}}),actions:{}},text:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"{...}":{"*":{action_:"text="}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"\\greek":{"*":{action_:["output","rm"]}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:["output","copy"]}},else:{"*":{action_:"text="}}}),actions:{output:function(t){if(t.text_){var e={type_:"text",p1:t.text_};for(var n in t)delete t[n];return e}}}},pq:{transitions:a.createTransitions({empty:{"*":{}},"state of aggregation $":{"*":{action_:"state of aggregation"}},i$:{0:{nextState:"!f",revisit:!0}},"(KV letters),":{0:{action_:"rm",nextState:"0"}},formula$:{0:{nextState:"f",revisit:!0}},"1/2$":{0:{action_:"1/2"}},else:{0:{nextState:"!f",revisit:!0}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"a-z":{f:{action_:"tex-math"}},letters:{"*":{action_:"rm"}},"-9.,9":{"*":{action_:"9,9"}},",":{"*":{action_:{type_:"insert+p1",option:"comma enumeration S"}}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"state of aggregation":function(t,e){return{type_:"state of aggregation subscript",p1:a.go(e,"o")}},"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"pq")}}}},bd:{transitions:a.createTransitions({empty:{"*":{}},x$:{0:{nextState:"!f",revisit:!0}},formula$:{0:{nextState:"f",revisit:!0}},else:{0:{nextState:"!f",revisit:!0}},"-9.,9 no missing 0":{"*":{action_:"9,9"}},".":{"*":{action_:{type_:"insert",option:"electron dot"}}},"a-z":{f:{action_:"tex-math"}},x:{"*":{action_:{type_:"insert",option:"KV x"}}},letters:{"*":{action_:"rm"}},"'":{"*":{action_:{type_:"insert",option:"prime"}}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},"{(...)}":{"*":{action_:"text"}},"\\color{(...)}{(...)}1|\\color(...){(...)}2":{"*":{action_:"color-output"}},"\\color{(...)}0":{"*":{action_:"color0-output"}},"\\ce{(...)}":{"*":{action_:"ce"}},"\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"copy"}},else2:{"*":{action_:"copy"}}}),actions:{"color-output":function(t,e){return{type_:"color",color1:e[0],color2:a.go(e[1],"bd")}}}},oxidation:{transitions:a.createTransitions({empty:{"*":{}},"roman numeral":{"*":{action_:"roman-numeral"}},"${(...)}$|$(...)$":{"*":{action_:"tex-math"}},else:{"*":{action_:"copy"}}}),actions:{"roman-numeral":function(t,e){return{type_:"roman numeral",p1:e||""}}}},"tex-math":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},else:{"*":{action_:"o="}}}),actions:{output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"tex-math tight":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"\\ce{(...)}":{"*":{action_:["output","ce"]}},"{...}|\\,|\\x{}{}|\\x{}|\\x":{"*":{action_:"o="}},"-|+":{"*":{action_:"tight operator"}},else:{"*":{action_:"o="}}}),actions:{"tight operator":function(t,e){t.o=(t.o||"")+"{"+e+"}"},output:function(t){if(t.o){var e={type_:"tex-math",p1:t.o};for(var n in t)delete t[n];return e}}}},"9,9":{transitions:a.createTransitions({empty:{"*":{}},",":{"*":{action_:"comma"}},else:{"*":{action_:"copy"}}}),actions:{comma:function(){return{type_:"commaDecimal"}}}},pu:{transitions:a.createTransitions({empty:{"*":{action_:"output"}},space$:{"*":{action_:["output","space"]}},"{[(|)]}":{"0|a":{action_:"copy"}},"(-)(9)^(-9)":{0:{action_:"number^",nextState:"a"}},"(-)(9.,9)(e)(99)":{0:{action_:"enumber",nextState:"a"}},space:{"0|a":{}},"pm-operator":{"0|a":{action_:{type_:"operator",option:"\\pm"},nextState:"0"}},operator:{"0|a":{action_:"copy",nextState:"0"}},"//":{d:{action_:"o=",nextState:"/"}},"/":{d:{action_:"o=",nextState:"/"}},"{...}|else":{"0|d":{action_:"d=",nextState:"d"},a:{action_:["space","d="],nextState:"d"},"/|q":{action_:"q=",nextState:"q"}}}),actions:{enumber:function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),e[1]&&(a.concatArray(n,a.go(e[1],"pu-9,9")),e[2]&&(e[2].match(/[,.]/)?a.concatArray(n,a.go(e[2],"pu-9,9")):n.push(e[2])),e[3]=e[4]||e[3],e[3]&&(e[3]=e[3].trim(),"e"===e[3]||"*"===e[3].substr(0,1)?n.push({type_:"cdot"}):n.push({type_:"times"}))),e[3]&&n.push("10^{"+e[5]+"}"),n},"number^":function(t,e){var n=[];return"+-"===e[0]||"+/-"===e[0]?n.push("\\pm "):e[0]&&n.push(e[0]),a.concatArray(n,a.go(e[1],"pu-9,9")),n.push("^{"+e[2]+"}"),n},operator:function(t,e,n){return{type_:"operator",kind_:n||e}},space:function(){return{type_:"pu-space-1"}},output:function(t){var e,n=a.patterns.match_("{(...)}",t.d||"");n&&""===n.remainder&&(t.d=n.match_);var o=a.patterns.match_("{(...)}",t.q||"");if(o&&""===o.remainder&&(t.q=o.match_),t.d&&(t.d=t.d.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.d=t.d.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F")),t.q){t.q=t.q.replace(/\u00B0C|\^oC|\^{o}C/g,"{}^{\\circ}C"),t.q=t.q.replace(/\u00B0F|\^oF|\^{o}F/g,"{}^{\\circ}F");var r={d:a.go(t.d,"pu"),q:a.go(t.q,"pu")};"//"===t.o?e={type_:"pu-frac",p1:r.d,p2:r.q}:(e=r.d,r.d.length>1||r.q.length>1?e.push({type_:" / "}):e.push({type_:"/"}),a.concatArray(e,r.q))}else e=a.go(t.d,"pu-2");for(var i in t)delete t[i];return e}}},"pu-2":{transitions:a.createTransitions({empty:{"*":{action_:"output"}},"*":{"*":{action_:["output","cdot"],nextState:"0"}},"\\x":{"*":{action_:"rm="}},space:{"*":{action_:["output","space"],nextState:"0"}},"^{(...)}|^(-1)":{1:{action_:"^(-1)"}},"-9.,9":{0:{action_:"rm=",nextState:"0"},1:{action_:"^(-1)",nextState:"0"}},"{...}|else":{"*":{action_:"rm=",nextState:"1"}}}),actions:{cdot:function(){return{type_:"tight cdot"}},"^(-1)":function(t,e){t.rm+="^{"+e+"}"},space:function(){return{type_:"pu-space-2"}},output:function(t){var e=[];if(t.rm){var n=a.patterns.match_("{(...)}",t.rm||"");e=n&&""===n.remainder?a.go(n.match_,"pu"):{type_:"rm",p1:t.rm}}for(var o in t)delete t[o];return e}}},"pu-9,9":{transitions:a.createTransitions({empty:{0:{action_:"output-0"},o:{action_:"output-o"}},",":{0:{action_:["output-0","comma"],nextState:"o"}},".":{0:{action_:["output-0","copy"],nextState:"o"}},else:{"*":{action_:"text="}}}),actions:{comma:function(){return{type_:"commaDecimal"}},"output-0":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){var n=t.text_.length%3;0===n&&(n=3);for(var o=t.text_.length-3;o>0;o-=3)e.push(t.text_.substr(o,3)),e.push({type_:"1000 separator"});e.push(t.text_.substr(0,n)),e.reverse()}else e.push(t.text_);for(var a in t)delete t[a];return e},"output-o":function(t){var e=[];if(t.text_=t.text_||"",t.text_.length>4){for(var n=t.text_.length-3,o=0;o":case"\u2192":case"\u27f6":return"rightarrow";case"<-":return"leftarrow";case"<->":return"leftrightarrow";case"<--\x3e":return"rightleftarrows";case"<=>":case"\u21cc":return"rightleftharpoons";case"<=>>":return"rightequilibrium";case"<<=>":return"leftequilibrium";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getBond:function(t){switch(t){case"-":case"1":return"{-}";case"=":case"2":return"{=}";case"#":case"3":return"{\\equiv}";case"~":return"{\\tripledash}";case"~-":return"{\\mathrlap{\\raisebox{-.1em}{$-$}}\\raisebox{.1em}{$\\tripledash$}}";case"~=":case"~--":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$\\tripledash$}}-}";case"-~-":return"{\\mathrlap{\\raisebox{-.2em}{$-$}}\\mathrlap{\\raisebox{.2em}{$-$}}\\tripledash}";case"...":return"{{\\cdot}{\\cdot}{\\cdot}}";case"....":return"{{\\cdot}{\\cdot}{\\cdot}{\\cdot}}";case"->":return"{\\rightarrow}";case"<-":return"{\\leftarrow}";case"<":return"{<}";case">":return"{>}";default:throw["MhchemBugT","mhchem bug T. Please report."]}},_getOperator:function(t){switch(t){case"+":return" {}+{} ";case"-":return" {}-{} ";case"=":return" {}={} ";case"<":return" {}<{} ";case">":return" {}>{} ";case"<<":return" {}\\ll{} ";case">>":return" {}\\gg{} ";case"\\pm":return" {}\\pm{} ";case"\\approx":case"$\\approx$":return" {}\\approx{} ";case"v":case"(v)":return" \\downarrow{} ";case"^":case"(^)":return" \\uparrow{} ";default:throw["MhchemBugT","mhchem bug T. Please report."]}}}}(),a=a.default}()})); \ No newline at end of file diff --git a/lib/lightgallery/css/lightgallery-bundle.min.css b/lib/lightgallery/css/lightgallery-bundle.min.css new file mode 100644 index 000000000..292cc2416 --- /dev/null +++ b/lib/lightgallery/css/lightgallery-bundle.min.css @@ -0,0 +1 @@ +@font-face{font-family:lg;src:url(../fonts/lg.woff2?io9a6k) format("woff2"),url(../fonts/lg.ttf?io9a6k) format("truetype"),url(../fonts/lg.woff?io9a6k) format("woff"),url(../fonts/lg.svg?io9a6k#lg) format("svg");font-weight:400;font-style:normal;font-display:block}.lg-icon{font-family:lg!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.lg-container{font-family:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans','Liberation Sans',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol','Noto Color Emoji'}.lg-next,.lg-prev{background-color:rgba(0,0,0,.45);border-radius:2px;color:#999;cursor:pointer;display:block;font-size:22px;margin-top:-10px;padding:8px 10px 9px;position:absolute;top:50%;z-index:1084;outline:0;border:none}.lg-next.disabled,.lg-prev.disabled{opacity:0!important;cursor:default}.lg-next:hover:not(.disabled),.lg-prev:hover:not(.disabled){color:#fff}.lg-single-item .lg-next,.lg-single-item .lg-prev{display:none}.lg-next{right:20px}.lg-next:before{content:'\e095'}.lg-prev{left:20px}.lg-prev:after{content:'\e094'}@-webkit-keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@-moz-keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@-ms-keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@keyframes lg-right-end{0%{left:0}50%{left:-30px}100%{left:0}}@-webkit-keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}@-moz-keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}@-ms-keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}@keyframes lg-left-end{0%{left:0}50%{left:30px}100%{left:0}}.lg-outer.lg-right-end .lg-object{-webkit-animation:lg-right-end .3s;-o-animation:lg-right-end .3s;animation:lg-right-end .3s;position:relative}.lg-outer.lg-left-end .lg-object{-webkit-animation:lg-left-end .3s;-o-animation:lg-left-end .3s;animation:lg-left-end .3s;position:relative}.lg-toolbar{z-index:1082;left:0;position:absolute;top:0;width:100%}.lg-media-overlap .lg-toolbar{background-image:linear-gradient(0deg,rgba(0,0,0,0),rgba(0,0,0,.4))}.lg-toolbar .lg-icon{color:#999;cursor:pointer;float:right;font-size:24px;height:47px;line-height:27px;padding:10px 0;text-align:center;width:50px;text-decoration:none!important;outline:medium none;will-change:color;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear;background:0 0;border:none;box-shadow:none}.lg-toolbar .lg-icon.lg-icon-18{font-size:18px}.lg-toolbar .lg-icon:hover{color:#fff}.lg-toolbar .lg-close:after{content:'\e070'}.lg-toolbar .lg-maximize{font-size:22px}.lg-toolbar .lg-maximize:after{content:'\e90a'}.lg-toolbar .lg-download:after{content:'\e0f2'}.lg-sub-html{color:#eee;font-size:16px;padding:10px 40px;text-align:center;z-index:1080;opacity:0;-webkit-transition:opacity .2s ease-out 0s;-o-transition:opacity .2s ease-out 0s;transition:opacity .2s ease-out 0s}.lg-sub-html h4{margin:0;font-size:13px;font-weight:700}.lg-sub-html p{font-size:12px;margin:5px 0 0}.lg-sub-html a{color:inherit}.lg-sub-html a:hover{text-decoration:underline}.lg-media-overlap .lg-sub-html{background-image:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.6))}.lg-item .lg-sub-html{position:absolute;bottom:0;right:0;left:0}.lg-error-msg{font-size:14px;color:#999}.lg-counter{color:#999;display:inline-block;font-size:16px;padding-left:20px;padding-top:12px;height:47px;vertical-align:middle}.lg-closing .lg-next,.lg-closing .lg-prev,.lg-closing .lg-sub-html,.lg-closing .lg-toolbar{opacity:0;-webkit-transition:-webkit-transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear;-moz-transition:-moz-transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear;-o-transition:-o-transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear;transition:transform .08 cubic-bezier(0,0,.25,1) 0s,opacity .08 cubic-bezier(0,0,.25,1) 0s,color .08 linear}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable) .lg-img-wrap,body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable) .lg-video-cont{opacity:0;-moz-transform:scale3d(.5,.5,.5);-o-transform:scale3d(.5,.5,.5);-ms-transform:scale3d(.5,.5,.5);-webkit-transform:scale3d(.5,.5,.5);transform:scale3d(.5,.5,.5);will-change:transform,opacity;-webkit-transition:-webkit-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-moz-transition:-moz-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;-o-transition:-o-transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important;transition:transform 250ms cubic-bezier(0,0,.25,1) 0s,opacity 250ms cubic-bezier(0,0,.25,1)!important}body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable).lg-complete .lg-img-wrap,body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item:not(.lg-zoomable).lg-complete .lg-video-cont{opacity:1;-moz-transform:scale3d(1,1,1);-o-transform:scale3d(1,1,1);-ms-transform:scale3d(1,1,1);-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}.lg-icon:focus-visible{color:#fff;border-radius:3px;outline:1px dashed rgba(255,255,255,.6)}.lg-toolbar .lg-icon:focus-visible{border-radius:8px;outline-offset:-5px}.lg-outer .lg-thumb-outer{background-color:#0d0a0a;width:100%;max-height:350px;overflow:hidden;float:left}.lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-thumb-outer.lg-dragging .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer .lg-thumb-outer.lg-rebuilding-thumbnails .lg-thumb{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer .lg-thumb-outer.lg-thumb-align-middle{text-align:center}.lg-outer .lg-thumb-outer.lg-thumb-align-left{text-align:left}.lg-outer .lg-thumb-outer.lg-thumb-align-right{text-align:right}.lg-outer.lg-single-item .lg-thumb-outer{display:none}.lg-outer .lg-thumb{padding:5px 0;height:100%;margin-bottom:-5px;display:inline-block;vertical-align:middle}@media (min-width:768px){.lg-outer .lg-thumb{padding:10px 0}}.lg-outer .lg-thumb-item{cursor:pointer;float:left;overflow:hidden;height:100%;border-radius:2px;margin-bottom:5px;will-change:border-color}@media (min-width:768px){.lg-outer .lg-thumb-item{border-radius:4px;border:2px solid #fff;-webkit-transition:border-color .25s ease;-o-transition:border-color .25s ease;transition:border-color .25s ease}}.lg-outer .lg-thumb-item.active,.lg-outer .lg-thumb-item:hover{border-color:#a90707}.lg-outer .lg-thumb-item img{width:100%;height:100%;object-fit:cover;display:block}.lg-outer.lg-can-toggle .lg-item{padding-bottom:0}.lg-outer .lg-toggle-thumb:after{content:'\e1ff'}.lg-outer.lg-animate-thumb .lg-thumb{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}.lg-outer .lg-video-cont{text-align:center;display:inline-block;vertical-align:middle;position:relative}.lg-outer .lg-video-cont .lg-object{width:100%!important;height:100%!important}.lg-outer .lg-has-iframe .lg-video-cont{-webkit-overflow-scrolling:touch;overflow:auto}.lg-outer .lg-video-object{position:absolute;left:0;right:0;width:100%;height:100%;top:0;bottom:0;z-index:3}.lg-outer .lg-video-poster{z-index:1}.lg-outer .lg-has-video .lg-video-object{opacity:0;will-change:opacity;-webkit-transition:opacity .3s ease-in;-o-transition:opacity .3s ease-in;transition:opacity .3s ease-in}.lg-outer .lg-has-video.lg-video-loaded .lg-video-play-button,.lg-outer .lg-has-video.lg-video-loaded .lg-video-poster{opacity:0!important}.lg-outer .lg-has-video.lg-video-loaded .lg-video-object{opacity:1}@keyframes lg-play-stroke{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes lg-play-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.lg-video-play-button{width:18%;max-width:140px;position:absolute;top:50%;left:50%;z-index:2;cursor:pointer;transform:translate(-50%,-50%) scale(1);will-change:opacity,transform;-webkit-transition:-webkit-transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s;-moz-transition:-moz-transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s;-o-transition:-o-transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s;transition:transform .25s cubic-bezier(.17,.88,.32,1.28),opacity .1s}.lg-video-play-button:hover .lg-video-play-icon,.lg-video-play-button:hover .lg-video-play-icon-bg{opacity:1}.lg-video-play-icon-bg{fill:none;stroke-width:3%;stroke:#fcfcfc;opacity:.6;will-change:opacity;-webkit-transition:opacity .12s ease-in;-o-transition:opacity .12s ease-in;transition:opacity .12s ease-in}.lg-video-play-icon-circle{position:absolute;top:0;left:0;bottom:0;right:0;fill:none;stroke-width:3%;stroke:rgba(30,30,30,.9);stroke-opacity:1;stroke-linecap:round;stroke-dasharray:200;stroke-dashoffset:200}.lg-video-play-icon{position:absolute;width:25%;max-width:120px;left:50%;top:50%;transform:translate3d(-50%,-50%,0);opacity:.6;will-change:opacity;-webkit-transition:opacity .12s ease-in;-o-transition:opacity .12s ease-in;transition:opacity .12s ease-in}.lg-video-play-icon .lg-video-play-icon-inner{fill:#fcfcfc}.lg-video-loading .lg-video-play-icon-circle{animation:lg-play-rotate 2s linear .25s infinite,lg-play-stroke 1.5s ease-in-out .25s infinite}.lg-video-loaded .lg-video-play-button{opacity:0;transform:translate(-50%,-50%) scale(.7)}.lg-progress-bar{background-color:#333;height:5px;left:0;position:absolute;top:0;width:100%;z-index:1083;opacity:0;will-change:opacity;-webkit-transition:opacity 80ms ease 0s;-moz-transition:opacity 80ms ease 0s;-o-transition:opacity 80ms ease 0s;transition:opacity 80ms ease 0s}.lg-progress-bar .lg-progress{background-color:#a90707;height:5px;width:0}.lg-progress-bar.lg-start .lg-progress{width:100%}.lg-show-autoplay .lg-progress-bar{opacity:1}.lg-autoplay-button:after{content:'\e01d'}.lg-show-autoplay .lg-autoplay-button:after{content:'\e01a'}.lg-single-item .lg-autoplay-button{opacity:.75;pointer-events:none}.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image,.lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap{will-change:transform;-webkit-transition:-webkit-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s;-moz-transition:-moz-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s;-o-transition:-o-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s;transition:transform .5s cubic-bezier(.12,.415,.01,1.19) 0s}.lg-outer.lg-use-transition-for-zoom.lg-zoom-drag-transition .lg-item.lg-complete.lg-zoomable .lg-img-wrap{will-change:transform;-webkit-transition:-webkit-transform .8s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .8s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .8s cubic-bezier(0,0,.25,1) 0s;transition:transform .8s cubic-bezier(0,0,.25,1) 0s}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image{-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1);-webkit-transition:-webkit-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;-moz-transition:-moz-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;-o-transition:-o-transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;transition:transform .5s cubic-bezier(.12,.415,.01,1.19) 0s,opacity .15s!important;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.no-transition,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.no-transition{transition:none!important}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.reset-transition,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.reset-transition{transform:scale3d(1,1,1) translate3d(-50%,-50%,0)!important;max-width:none!important;max-height:none!important;top:50%!important;left:50%!important}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.reset-transition-x,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.reset-transition-x{transform:scale3d(1,1,1) translate3d(-50%,0,0)!important;top:0!important;left:50%!important;max-width:none!important;max-height:none!important}.lg-outer .lg-item.lg-complete.lg-zoomable .lg-dummy-img.reset-transition-y,.lg-outer .lg-item.lg-complete.lg-zoomable .lg-image.reset-transition-y{transform:scale3d(1,1,1) translate3d(0,-50%,0)!important;top:50%!important;left:0!important;max-width:none!important;max-height:none!important}.lg-icon.lg-zoom-in:after{content:'\e311'}.lg-actual-size .lg-icon.lg-zoom-in{opacity:.5;pointer-events:none}.lg-icon.lg-actual-size{font-size:20px}.lg-icon.lg-actual-size:after{content:'\e033'}.lg-icon.lg-zoom-out{opacity:.5;pointer-events:none}.lg-icon.lg-zoom-out:after{content:'\e312'}.lg-zoomed .lg-icon.lg-zoom-out{opacity:1;pointer-events:auto}.lg-outer.lg-first-slide-loading .lg-actual-size,.lg-outer.lg-first-slide-loading .lg-zoom-in,.lg-outer.lg-first-slide-loading .lg-zoom-out,.lg-outer[data-lg-slide-type=iframe] .lg-actual-size,.lg-outer[data-lg-slide-type=iframe] .lg-zoom-in,.lg-outer[data-lg-slide-type=iframe] .lg-zoom-out,.lg-outer[data-lg-slide-type=video] .lg-actual-size,.lg-outer[data-lg-slide-type=video] .lg-zoom-in,.lg-outer[data-lg-slide-type=video] .lg-zoom-out{opacity:.75;pointer-events:none}.lg-outer .lg-pager-outer{text-align:center;z-index:1080;height:10px;margin-bottom:10px}.lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont{overflow:visible}.lg-outer.lg-single-item .lg-pager-outer{display:none}.lg-outer .lg-pager-cont{cursor:pointer;display:inline-block;overflow:hidden;position:relative;vertical-align:top;margin:0 5px}.lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-pager-cont.lg-pager-active .lg-pager{box-shadow:0 0 0 2px #fff inset}.lg-outer .lg-pager-thumb-cont{background-color:#fff;color:#fff;bottom:100%;height:83px;left:0;margin-bottom:20px;margin-left:-60px;opacity:0;padding:5px;position:absolute;width:120px;border-radius:3px;will-change:transform,opacity;-webkit-transition:opacity .15s ease 0s,-webkit-transform .15s ease 0s;-moz-transition:opacity .15s ease 0s,-moz-transform .15s ease 0s;-o-transition:opacity .15s ease 0s,-o-transform .15s ease 0s;transition:opacity .15s ease 0s,transform .15s ease 0s;-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}.lg-outer .lg-pager-thumb-cont img{width:100%;height:100%}.lg-outer .lg-pager{background-color:rgba(255,255,255,.5);border-radius:50%;box-shadow:0 0 0 8px rgba(255,255,255,.7) inset;display:block;height:12px;-webkit-transition:box-shadow .3s ease 0s;-o-transition:box-shadow .3s ease 0s;transition:box-shadow .3s ease 0s;width:12px}.lg-outer .lg-pager:focus,.lg-outer .lg-pager:hover{box-shadow:0 0 0 8px #fff inset}.lg-outer .lg-caret{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px dashed;bottom:-10px;display:inline-block;height:0;left:50%;margin-left:-5px;position:absolute;vertical-align:middle;width:0}.lg-fullscreen:after{content:"\e20c"}.lg-fullscreen-on .lg-fullscreen:after{content:"\e20d"}.lg-outer .lg-dropdown-overlay{background-color:rgba(0,0,0,.25);bottom:0;cursor:default;left:0;position:absolute;right:0;top:0;z-index:1081;opacity:0;visibility:hidden;will-change:visibility,opacity;-webkit-transition:visibility 0s linear .18s,opacity .18s linear 0s;-o-transition:visibility 0s linear .18s,opacity .18s linear 0s;transition:visibility 0s linear .18s,opacity .18s linear 0s}.lg-outer.lg-dropdown-active .lg-dropdown,.lg-outer.lg-dropdown-active .lg-dropdown-overlay{-webkit-transition-delay:0s;transition-delay:0s;-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible}.lg-outer.lg-dropdown-active .lg-share{color:#fff}.lg-outer .lg-dropdown{background-color:#fff;border-radius:2px;font-size:14px;list-style-type:none;margin:0;padding:10px 0;position:absolute;right:0;text-align:left;top:50px;opacity:0;visibility:hidden;-moz-transform:translate3d(0,5px,0);-o-transform:translate3d(0,5px,0);-ms-transform:translate3d(0,5px,0);-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0);will-change:visibility,opacity,transform;-webkit-transition:-webkit-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-moz-transition:-moz-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;-o-transition:-o-transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s;transition:transform .18s linear 0s,visibility 0s linear .5s,opacity .18s linear 0s}.lg-outer .lg-dropdown:after{content:'';display:block;height:0;width:0;position:absolute;border:8px solid transparent;border-bottom-color:#fff;right:16px;top:-16px}.lg-outer .lg-dropdown>li:last-child{margin-bottom:0}.lg-outer .lg-dropdown>li:hover a{color:#333}.lg-outer .lg-dropdown a{color:#333;display:block;white-space:pre;padding:4px 12px;font-family:'Open Sans','Helvetica Neue',Helvetica,Arial,sans-serif;font-size:12px}.lg-outer .lg-dropdown a:hover{background-color:rgba(0,0,0,.07)}.lg-outer .lg-dropdown .lg-dropdown-text{display:inline-block;line-height:1;margin-top:-3px;vertical-align:middle}.lg-outer .lg-dropdown .lg-icon{color:#333;display:inline-block;float:none;font-size:20px;height:auto;line-height:1;margin-right:8px;padding:0;vertical-align:middle;width:auto}.lg-outer .lg-share{position:relative}.lg-outer .lg-share:after{content:'\e80d'}.lg-outer .lg-share-facebook .lg-icon{color:#3b5998}.lg-outer .lg-share-facebook .lg-icon:after{content:'\e904'}.lg-outer .lg-share-twitter .lg-icon{color:#00aced}.lg-outer .lg-share-twitter .lg-icon:after{content:'\e907'}.lg-outer .lg-share-pinterest .lg-icon{color:#cb2027}.lg-outer .lg-share-pinterest .lg-icon:after{content:'\e906'}.lg-comment-box{width:420px;max-width:100%;position:absolute;right:0;top:0;bottom:0;z-index:9999;background-color:#fff;will-change:transform;-moz-transform:translate3d(100%,0,0);-o-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);-webkit-transition:-webkit-transform .4s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .4s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .4s cubic-bezier(0,0,.25,1) 0s;transition:transform .4s cubic-bezier(0,0,.25,1) 0s}.lg-comment-box .lg-comment-title{margin:0;color:#fff;font-size:18px}.lg-comment-box .lg-comment-header{background-color:#000;padding:12px 20px;position:absolute;left:0;right:0;top:0}.lg-comment-box .lg-comment-body{height:100%!important;padding-top:43px!important;width:100%!important}.lg-comment-box .fb-comments{height:100%;width:100%;background:url(../images/loading.gif) no-repeat scroll center center #fff;overflow-y:auto;display:inline-block}.lg-comment-box .fb-comments[fb-xfbml-state=rendered]{background-image:none}.lg-comment-box .fb-comments>span{max-width:100%}.lg-comment-box .lg-comment-close{position:absolute;right:5px;top:12px;cursor:pointer;font-size:20px;color:#999;will-change:color;-webkit-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.lg-comment-box .lg-comment-close:hover{color:#fff}.lg-comment-box .lg-comment-close:after{content:'\e070'}.lg-comment-box iframe{max-width:100%!important;width:100%!important}.lg-comment-box #disqus_thread{padding:0 20px}.lg-outer .lg-comment-overlay{background-color:rgba(0,0,0,.25);bottom:0;cursor:default;left:0;position:fixed;right:0;top:0;z-index:1081;opacity:0;visibility:hidden;will-change:visibility,opacity;-webkit-transition:visibility 0s linear .18s,opacity .18s linear 0s;-o-transition:visibility 0s linear .18s,opacity .18s linear 0s;transition:visibility 0s linear .18s,opacity .18s linear 0s}.lg-outer .lg-comment-toggle:after{content:'\e908'}.lg-outer.lg-comment-active .lg-comment-overlay{-webkit-transition-delay:0s;transition-delay:0s;-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1;visibility:visible}.lg-outer.lg-comment-active .lg-comment-toggle{color:#fff}.lg-outer.lg-comment-active .lg-comment-box{-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.lg-outer .lg-img-rotate{position:absolute;left:0;right:0;top:0;bottom:0;-webkit-transition:-webkit-transform .4s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .4s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .4s cubic-bezier(0,0,.25,1) 0s;transition:transform .4s cubic-bezier(0,0,.25,1) 0s}.lg-outer[data-lg-slide-type=iframe] .lg-flip-hor,.lg-outer[data-lg-slide-type=iframe] .lg-flip-ver,.lg-outer[data-lg-slide-type=iframe] .lg-rotate-left,.lg-outer[data-lg-slide-type=iframe] .lg-rotate-right,.lg-outer[data-lg-slide-type=video] .lg-flip-hor,.lg-outer[data-lg-slide-type=video] .lg-flip-ver,.lg-outer[data-lg-slide-type=video] .lg-rotate-left,.lg-outer[data-lg-slide-type=video] .lg-rotate-right{opacity:.75;pointer-events:none}.lg-outer .lg-img-rotate:before{content:'';display:inline-block;height:100%;vertical-align:middle}.lg-rotate-left:after{content:'\e900'}.lg-rotate-right:after{content:'\e901'}.lg-icon.lg-flip-hor,.lg-icon.lg-flip-ver{font-size:26px}.lg-flip-ver:after{content:'\e903'}.lg-flip-hor:after{content:'\e902'}.lg-medium-zoom-item{cursor:zoom-in}.lg-medium-zoom .lg-outer{cursor:zoom-out}.lg-medium-zoom .lg-outer.lg-grab img.lg-object{cursor:zoom-out}.lg-medium-zoom .lg-outer.lg-grabbing img.lg-object{cursor:zoom-out}.lg-relative-caption .lg-outer .lg-sub-html{white-space:normal;bottom:auto;padding:0;background-image:none}.lg-relative-caption .lg-outer .lg-relative-caption-item{opacity:0;padding:16px 0;transition:.5s opacity ease}.lg-relative-caption .lg-outer .lg-show-caption .lg-relative-caption-item{opacity:1}.lg-group:after{content:'';display:table;clear:both}.lg-container{display:none;outline:0}.lg-container.lg-show{display:block}.lg-on{scroll-behavior:unset}.lg-overlay-open{overflow:hidden}.lg-hide-sub-html .lg-sub-html,.lg-next,.lg-pager-outer,.lg-prev,.lg-toolbar{opacity:0;will-change:transform,opacity;-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s;transition:transform .25s cubic-bezier(0,0,.25,1) 0s,opacity .25s cubic-bezier(0,0,.25,1) 0s}.lg-show-in .lg-next,.lg-show-in .lg-pager-outer,.lg-show-in .lg-prev,.lg-show-in .lg-toolbar{opacity:1}.lg-show-in.lg-hide-sub-html .lg-sub-html{opacity:1}.lg-show-in .lg-hide-items .lg-prev{opacity:0;-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}.lg-show-in .lg-hide-items .lg-next{opacity:0;-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}.lg-show-in .lg-hide-items .lg-toolbar{opacity:0;-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}.lg-show-in .lg-hide-items.lg-hide-sub-html .lg-sub-html{opacity:0;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}.lg-outer{width:100%;height:100%;position:fixed;top:0;left:0;z-index:1050;text-align:left;opacity:.001;outline:0;will-change:auto;overflow:hidden;-webkit-transition:opacity .15s ease 0s;-o-transition:opacity .15s ease 0s;transition:opacity .15s ease 0s}.lg-outer *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.lg-outer.lg-zoom-from-image{opacity:1}.lg-outer.lg-visible{opacity:1}.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-current,.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-next-slide,.lg-outer.lg-css3 .lg-item:not(.lg-start-end-progress).lg-prev-slide{-webkit-transition-duration:inherit!important;transition-duration:inherit!important;-webkit-transition-timing-function:inherit!important;transition-timing-function:inherit!important}.lg-outer.lg-css3.lg-dragging .lg-item.lg-current,.lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide,.lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-outer.lg-grab img.lg-object{cursor:-webkit-grab;cursor:-moz-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.lg-outer.lg-grabbing img.lg-object{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:-o-grabbing;cursor:-ms-grabbing;cursor:grabbing}.lg-outer .lg-content{position:absolute;top:0;left:0;right:0;bottom:0}.lg-outer .lg-inner{width:100%;position:absolute;left:0;top:0;bottom:0;-webkit-transition:opacity 0s;-o-transition:opacity 0s;transition:opacity 0s;white-space:nowrap}.lg-outer .lg-item{display:none!important}.lg-outer .lg-item:not(.lg-start-end-progress){background:url(../images/loading.gif) no-repeat scroll center center transparent}.lg-outer.lg-css3 .lg-current,.lg-outer.lg-css3 .lg-next-slide,.lg-outer.lg-css3 .lg-prev-slide{display:inline-block!important}.lg-outer.lg-css .lg-current{display:inline-block!important}.lg-outer .lg-img-wrap,.lg-outer .lg-item{display:inline-block;text-align:center;position:absolute;width:100%;height:100%}.lg-outer .lg-img-wrap:before,.lg-outer .lg-item:before{content:'';display:inline-block;height:100%;vertical-align:middle}.lg-outer .lg-img-wrap{position:absolute;left:0;right:0;top:0;bottom:0;white-space:nowrap;font-size:0}.lg-outer .lg-item.lg-complete{background-image:none}.lg-outer .lg-item.lg-current{z-index:1060}.lg-outer .lg-object{display:inline-block;vertical-align:middle;max-width:100%;max-height:100%;width:auto;height:auto;position:relative}.lg-outer .lg-empty-html .lg-sub-html,.lg-outer .lg-empty-html.lg-sub-html{display:none}.lg-outer.lg-hide-download .lg-download{opacity:.75;pointer-events:none}.lg-outer .lg-first-slide .lg-dummy-img{position:absolute;top:50%;left:50%}.lg-outer.lg-components-open:not(.lg-zoomed) .lg-components{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-outer.lg-components-open:not(.lg-zoomed) .lg-sub-html{opacity:1;transition:opacity .2s ease-out .15s}.lg-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1040;background-color:#000;opacity:0;will-change:auto;-webkit-transition:opacity 333ms ease-in 0s;-o-transition:opacity 333ms ease-in 0s;transition:opacity 333ms ease-in 0s}.lg-backdrop.in{opacity:1}.lg-css3.lg-no-trans .lg-current,.lg-css3.lg-no-trans .lg-next-slide,.lg-css3.lg-no-trans .lg-prev-slide{-webkit-transition:none 0s ease 0s!important;-moz-transition:none 0s ease 0s!important;-o-transition:none 0s ease 0s!important;transition:none 0s ease 0s!important}.lg-css3.lg-use-css3 .lg-item{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.lg-css3.lg-fade .lg-item{opacity:0}.lg-css3.lg-fade .lg-item.lg-current{opacity:1}.lg-css3.lg-fade .lg-item.lg-current,.lg-css3.lg-fade .lg-item.lg-next-slide,.lg-css3.lg-fade .lg-item.lg-prev-slide{-webkit-transition:opacity .1s ease 0s;-moz-transition:opacity .1s ease 0s;-o-transition:opacity .1s ease 0s;transition:opacity .1s ease 0s}.lg-css3.lg-use-css3 .lg-item.lg-start-progress{-webkit-transition:-webkit-transform 1s cubic-bezier(.175,.885,.32,1.275) 0s;-moz-transition:-moz-transform 1s cubic-bezier(.175,.885,.32,1.275) 0s;-o-transition:-o-transform 1s cubic-bezier(.175,.885,.32,1.275) 0s;transition:transform 1s cubic-bezier(.175,.885,.32,1.275) 0s}.lg-css3.lg-use-css3 .lg-item.lg-start-end-progress{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s}.lg-css3.lg-slide.lg-use-css3 .lg-item{opacity:0}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide,.lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide{-webkit-transition:-webkit-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-moz-transition:-moz-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;-o-transition:-o-transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s;transition:transform 1s cubic-bezier(0,0,.25,1) 0s,opacity .1s ease 0s}.lg-container{display:none}.lg-container.lg-show{display:block}.lg-container.lg-dragging-vertical .lg-backdrop{-webkit-transition-duration:0s!important;transition-duration:0s!important}.lg-container.lg-dragging-vertical .lg-css3 .lg-item.lg-current{-webkit-transition-duration:0s!important;transition-duration:0s!important;opacity:1}.lg-inline .lg-backdrop,.lg-inline .lg-outer{position:absolute}.lg-inline .lg-backdrop{z-index:1}.lg-inline .lg-outer{z-index:2}.lg-inline .lg-maximize:after{content:'\e909'}.lg-components{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);will-change:transform;-webkit-transition:-webkit-transform .35s ease-out 0s;-moz-transition:-moz-transform .35s ease-out 0s;-o-transition:-o-transform .35s ease-out 0s;transition:transform .35s ease-out 0s;z-index:1080;position:absolute;bottom:0;right:0;left:0} \ No newline at end of file diff --git a/lib/lightgallery/lightgallery.min.js b/lib/lightgallery/lightgallery.min.js new file mode 100644 index 000000000..2a4d1fb7e --- /dev/null +++ b/lib/lightgallery/lightgallery.min.js @@ -0,0 +1,8 @@ +/** + * lightgallery | 2.7.2 | September 20th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).lightGallery=e()}(this,(function(){"use strict";var t=function(){return(t=Object.assign||function(t){for(var e,i=1,s=arguments.length;ir){n=a;break}l===o.length-1&&(n=a)}var d=n.split("-"),g=parseInt(d[0],10),h=parseInt(d[1],10),c=e.width(),u=e.height()-i,m=Math.min(c,g),p=Math.min(u,h),f=Math.min(m/g,p/h);return{width:g*f,height:h*f}}},E=function(t,e,i,s,n){if(n){var o=x(t).find("img").first();if(o.get()){var r=e.get().getBoundingClientRect(),l=r.width,a=e.height()-(i+s),d=o.width(),g=o.height(),h=o.style(),c=(l-d)/2-o.offset().left+(parseFloat(h.paddingLeft)||0)+(parseFloat(h.borderLeft)||0)+x(window).scrollLeft()+r.left,u=(a-g)/2-o.offset().top+(parseFloat(h.paddingTop)||0)+(parseFloat(h.borderTop)||0)+x(window).scrollTop()+i;return"translate3d("+(c*=-1)+"px, "+(u*=-1)+"px, 0) scale3d("+d/n.width+", "+g/n.height+", 1)"}}},O=function(t,e,i,s,n,o){return'
\n \n
'},D=function(t,e,i,s,n,o){var r="',l="";o&&(l=("string"==typeof o?JSON.parse(o):o).map((function(t){var e="";return Object.keys(t).forEach((function(i){e+=" "+i+'="'+t[i]+'"'})),""})));return""+l+r},L=function(t){for(var e=[],i=[],s="",n=0;nr){s=i[l];break}return s},z=function(t){return!!t&&(!!t.complete&&0!==t.naturalWidth)},M=function(t,e,i,s,n){return'
\n
\n \n '+s+'\n \n \n \n \n \n \n \n
\n '+(e||"")+'\n \n
'},G=function(t){var e=t.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type="text"]:not([disabled]), input[type="radio"]:not([disabled]), input[type="checkbox"]:not([disabled]), select:not([disabled])');return[].filter.call(e,(function(t){var e=window.getComputedStyle(t);return"none"!==e.display&&"hidden"!==e.visibility}))},k=function(t,e,i,s){var n=[],o=function(){for(var t=0,e=0,i=arguments.length;e-1&&(d=a),d&&(e[d]=l.value)}}var g=x(t),h=g.find("img").first().attr("alt"),c=g.attr("title"),u=s?g.attr(s):g.find("img").first().attr("src");e.thumb=u,i&&!e.subHtml&&(e.subHtml=c||h||""),e.alt=h||c||"",n.push(e)})),n},A=function(){return/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)},P=function(t,e,i){if(!t)return e?{html5:!0}:void console.error("lightGallery :- data-src is not provided on slide item "+(i+1)+". Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/");var s=t.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)([\&|?][\S]*)*/i),n=t.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)(.*)?/i),o=t.match(/https?:\/\/(.+)?(wistia\.com|wi\.st)\/(medias|embed)\/([0-9a-z\-_]+)(.*)/);return s?{youtube:s}:n?{vimeo:n}:o?{wistia:o}:void 0},B=0,F=function(){function w(t,e){if(this.lgOpened=!1,this.index=0,this.plugins=[],this.lGalleryOn=!1,this.lgBusy=!1,this.currentItemsInDom=[],this.prevScrollTop=0,this.bodyPaddingRight=0,this.isDummyImageRemoved=!1,this.dragOrSwipeEnabled=!1,this.mediaContainerPosition={top:0,bottom:0},!t)return this;if(B++,this.lgId=B,this.el=t,this.LGel=x(t),this.generateSettings(e),this.buildModules(),this.settings.dynamic&&void 0!==this.settings.dynamicEl&&!Array.isArray(this.settings.dynamicEl))throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.galleryItems=this.getItems(),this.normalizeSettings(),this.init(),this.validateLicense(),this}return w.prototype.generateSettings=function(e){if(this.settings=t(t({},I),e),this.settings.isMobile&&"function"==typeof this.settings.isMobile?this.settings.isMobile():A()){var i=t(t({},this.settings.mobileSettings),this.settings.mobileSettings);this.settings=t(t({},this.settings),i)}},w.prototype.normalizeSettings=function(){this.settings.slideEndAnimation&&(this.settings.hideControlOnEnd=!1),this.settings.closable||(this.settings.swipeToClose=!1),this.zoomFromOrigin=this.settings.zoomFromOrigin,this.settings.dynamic&&(this.zoomFromOrigin=!1),this.settings.container||(this.settings.container=document.body),this.settings.preload=Math.min(this.settings.preload,this.galleryItems.length)},w.prototype.init=function(){var t=this;this.addSlideVideoInfo(this.galleryItems),this.buildStructure(),this.LGel.trigger(i,{instance:this}),this.settings.keyPress&&this.keyPress(),setTimeout((function(){t.enableDrag(),t.enableSwipe(),t.triggerPosterClick()}),50),this.arrow(),this.settings.mousewheel&&this.mousewheel(),this.settings.dynamic||this.openGalleryOnItemClick()},w.prototype.openGalleryOnItemClick=function(){for(var t=this,e=function(e){var s=i.items[e],n=x(s),o=C.generateUUID();n.attr("data-lg-id",o).on("click.lgcustom-item-"+o,(function(i){i.preventDefault();var n=t.settings.index||e;t.openGallery(n,s)}))},i=this,s=0;s '+this.settings.prevHtml+' \n "),".lg-item"!==this.settings.appendSubHtmlTo&&(i='
');var s="";this.settings.allowMediaOverlap&&(s+="lg-media-overlap ");var n=this.settings.ariaLabelledby?'aria-labelledby="'+this.settings.ariaLabelledby+'"':"",o=this.settings.ariaDescribedby?'aria-describedby="'+this.settings.ariaDescribedby+'"':"",r="lg-container "+this.settings.addClass+" "+(document.body!==this.settings.container?"lg-inline":""),l=this.settings.closable&&this.settings.showCloseIcon?'':"",a=this.settings.showMaximizeIcon?'':"",d='\n \n ";x(this.settings.container).append(d),document.body!==this.settings.container&&x(this.settings.container).css("position","relative"),this.outer=this.getElementById("lg-outer"),this.$lgComponents=this.getElementById("lg-components"),this.$backdrop=this.getElementById("lg-backdrop"),this.$container=this.getElementById("lg-container"),this.$inner=this.getElementById("lg-inner"),this.$content=this.getElementById("lg-content"),this.$toolbar=this.getElementById("lg-toolbar"),this.$backdrop.css("transition-duration",this.settings.backdropDuration+"ms");var g=this.settings.mode+" ";this.manageSingleSlideClassName(),this.settings.enableDrag&&(g+="lg-grab "),this.outer.addClass(g),this.$inner.css("transition-timing-function",this.settings.easing),this.$inner.css("transition-duration",this.settings.speed+"ms"),this.settings.download&&this.$toolbar.append(''),this.counter(),x(window).on("resize.lg.global"+this.lgId+" orientationchange.lg.global"+this.lgId,(function(){t.refreshOnResize()})),this.hideBars(),this.manageCloseGallery(),this.toggleMaximize(),this.initModules()}},w.prototype.refreshOnResize=function(){if(this.lgOpened){var t=this.galleryItems[this.index].__slideVideoInfo;this.mediaContainerPosition=this.getMediaContainerPosition();var e=this.mediaContainerPosition,i=e.top,s=e.bottom;if(this.currentImageSize=T(this.items[this.index],this.outer,i+s,t&&this.settings.videoMaxSize),t&&this.resizeVideoSlide(this.index,this.currentImageSize),this.zoomFromOrigin&&!this.isDummyImageRemoved){var o=this.getDummyImgStyles(this.currentImageSize);this.outer.find(".lg-current .lg-dummy-img").first().attr("style",o)}this.LGel.trigger(n)}},w.prototype.resizeVideoSlide=function(t,e){var i=this.getVideoContStyle(e);this.getSlideItem(t).find(".lg-video-cont").attr("style",i)},w.prototype.updateSlides=function(t,e){if(this.index>t.length-1&&(this.index=t.length-1),1===t.length&&(this.index=0),t.length){var i=this.galleryItems[e].src;this.galleryItems=t,this.updateControls(),this.$inner.empty(),this.currentItemsInDom=[];var s=0;this.galleryItems.some((function(t,e){return t.src===i&&(s=e,!0)})),this.currentItemsInDom=this.organizeSlideItems(s,-1),this.loadContent(s,!0),this.getSlideItem(s).addClass("lg-current"),this.index=s,this.updateCurrentCounter(s),this.LGel.trigger(o)}else this.closeGallery()},w.prototype.getItems=function(){if(this.items=[],this.settings.dynamic)return this.settings.dynamicEl||[];if("this"===this.settings.selector)this.items.push(this.el);else if(this.settings.selector)if("string"==typeof this.settings.selector)if(this.settings.selectWithin){var t=x(this.settings.selectWithin);this.items=t.find(this.settings.selector).get()}else this.items=this.el.querySelectorAll(this.settings.selector);else this.items=this.settings.selector;else this.items=this.el.children;return k(this.items,this.settings.extraProps,this.settings.getCaptionFromTitleOrAlt,this.settings.exThumbImage)},w.prototype.shouldHideScrollbar=function(){return this.settings.hideScrollbar&&document.body===this.settings.container},w.prototype.hideScrollbar=function(){if(this.shouldHideScrollbar()){this.bodyPaddingRight=parseFloat(x("body").style().paddingRight);var t=document.documentElement.getBoundingClientRect(),e=window.innerWidth-t.width;x(document.body).css("padding-right",e+this.bodyPaddingRight+"px"),x(document.body).addClass("lg-overlay-open")}},w.prototype.resetScrollBar=function(){this.shouldHideScrollbar()&&(x(document.body).css("padding-right",this.bodyPaddingRight+"px"),x(document.body).removeClass("lg-overlay-open"))},w.prototype.openGallery=function(t,e){var i=this;if(void 0===t&&(t=this.settings.index),!this.lgOpened){this.lgOpened=!0,this.outer.removeClass("lg-hide-items"),this.hideScrollbar(),this.$container.addClass("lg-show");var s=this.getItemsToBeInsertedToDom(t,t);this.currentItemsInDom=s;var n="";s.forEach((function(t){n=n+'
'})),this.$inner.append(n),this.addHtml(t);var o="";this.mediaContainerPosition=this.getMediaContainerPosition();var r=this.mediaContainerPosition,d=r.top,g=r.bottom;this.settings.allowMediaOverlap||this.setMediaContainerPosition(d,g);var h=this.galleryItems[t].__slideVideoInfo;this.zoomFromOrigin&&e&&(this.currentImageSize=T(e,this.outer,d+g,h&&this.settings.videoMaxSize),o=E(e,this.outer,d,g,this.currentImageSize)),this.zoomFromOrigin&&o||(this.outer.addClass(this.settings.startClass),this.getSlideItem(t).removeClass("lg-complete"));var c=this.settings.zoomFromOrigin?100:this.settings.backdropDuration;setTimeout((function(){i.outer.addClass("lg-components-open")}),c),this.index=t,this.LGel.trigger(l),this.getSlideItem(t).addClass("lg-current"),this.lGalleryOn=!1,this.prevScrollTop=x(window).scrollTop(),setTimeout((function(){if(i.zoomFromOrigin&&o){var e=i.getSlideItem(t);e.css("transform",o),setTimeout((function(){e.addClass("lg-start-progress lg-start-end-progress").css("transition-duration",i.settings.startAnimationDuration+"ms"),i.outer.addClass("lg-zoom-from-image")})),setTimeout((function(){e.css("transform","translate3d(0, 0, 0)")}),100)}setTimeout((function(){i.$backdrop.addClass("in"),i.$container.addClass("lg-show-in")}),10),setTimeout((function(){i.settings.trapFocus&&document.body===i.settings.container&&i.trapFocus()}),i.settings.backdropDuration+50),i.zoomFromOrigin&&o||setTimeout((function(){i.outer.addClass("lg-visible")}),i.settings.backdropDuration),i.slide(t,!1,!1,!1),i.LGel.trigger(a)})),document.body===this.settings.container&&x("html").addClass("lg-on")}},w.prototype.getMediaContainerPosition=function(){if(this.settings.allowMediaOverlap)return{top:0,bottom:0};var t=this.$toolbar.get().clientHeight||0,e=this.outer.find(".lg-components .lg-sub-html").get(),i=this.settings.defaultCaptionHeight||e&&e.clientHeight||0,s=this.outer.find(".lg-thumb-outer").get();return{top:t,bottom:(s?s.clientHeight:0)+i}},w.prototype.setMediaContainerPosition=function(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.$content.css("top",t+"px").css("bottom",e+"px")},w.prototype.hideBars=function(){var t=this;setTimeout((function(){t.outer.removeClass("lg-hide-items"),t.settings.hideBarsDelay>0&&(t.outer.on("mousemove.lg click.lg touchstart.lg",(function(){t.outer.removeClass("lg-hide-items"),clearTimeout(t.hideBarTimeout),t.hideBarTimeout=setTimeout((function(){t.outer.addClass("lg-hide-items")}),t.settings.hideBarsDelay)})),t.outer.trigger("mousemove.lg"))}),this.settings.showBarsAfter)},w.prototype.initPictureFill=function(t){if(this.settings.supportLegacyBrowser)try{picturefill({elements:[t.get()]})}catch(t){console.warn("lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.")}},w.prototype.counter=function(){if(this.settings.counter){var t='
\n '+(this.index+1)+' /\n '+this.galleryItems.length+"
";this.outer.find(this.settings.appendCounterTo).append(t)}},w.prototype.addHtml=function(t){var e,i;if(this.galleryItems[t].subHtmlUrl?i=this.galleryItems[t].subHtmlUrl:e=this.galleryItems[t].subHtml,!i)if(e){var s=e.substring(0,1);"."!==s&&"#"!==s||(e=this.settings.subHtmlSelectorRelative&&!this.settings.dynamic?x(this.items).eq(t).find(e).first().html():x(e).first().html())}else e="";if(".lg-item"!==this.settings.appendSubHtmlTo)i?this.outer.find(".lg-sub-html").load(i):this.outer.find(".lg-sub-html").html(e);else{var n=x(this.getSlideItemId(t));i?n.load(i):n.append('
'+e+"
")}null!=e&&(""===e?this.outer.find(this.settings.appendSubHtmlTo).addClass("lg-empty-html"):this.outer.find(this.settings.appendSubHtmlTo).removeClass("lg-empty-html")),this.LGel.trigger(r,{index:t})},w.prototype.preload=function(t){for(var e=1;e<=this.settings.preload&&!(e>=this.galleryItems.length-t);e++)this.loadContent(t+e,!1);for(var i=1;i<=this.settings.preload&&!(t-i<0);i++)this.loadContent(t-i,!1)},w.prototype.getDummyImgStyles=function(t){return t?"width:"+t.width+"px;\n margin-left: -"+t.width/2+"px;\n margin-top: -"+t.height/2+"px;\n height:"+t.height+"px":""},w.prototype.getVideoContStyle=function(t){return t?"width:"+t.width+"px;\n height:"+t.height+"px":""},w.prototype.getDummyImageContent=function(t,e,i){var s;if(this.settings.dynamic||(s=x(this.items).eq(e)),s){var n=void 0;if(!(n=this.settings.exThumbImage?s.attr(this.settings.exThumbImage):s.find("img").first().attr("src")))return"";var o="';return t.addClass("lg-first-slide"),this.outer.addClass("lg-first-slide-loading"),o}return""},w.prototype.setImgMarkup=function(t,e,i){var s=this.galleryItems[i],n=s.alt,o=s.srcset,r=s.sizes,l=s.sources,a=n?'alt="'+n+'"':"",d=' '+(this.isFirstSlideWithZoomAnimation()?this.getDummyImageContent(e,i,a):D(i,t,a,o,r,l))+"";e.prepend(d)},w.prototype.onSlideObjectLoad=function(t,e,i,s){var n=t.find(".lg-object").first();z(n.get())||e?i():(n.on("load.lg error.lg",(function(){i&&i()})),n.on("error.lg",(function(){s&&s()})))},w.prototype.onLgObjectLoad=function(t,e,i,s,n,o){var r=this;this.onSlideObjectLoad(t,o,(function(){r.triggerSlideItemLoad(t,e,i,s,n)}),(function(){t.addClass("lg-complete lg-complete_"),t.html(''+r.settings.strings.mediaLoadingFailed+"")}))},w.prototype.triggerSlideItemLoad=function(t,e,i,s,n){var o=this,r=this.galleryItems[e],l=n&&"video"===this.getSlideType(r)&&!r.poster?s:0;setTimeout((function(){t.addClass("lg-complete lg-complete_"),o.LGel.trigger(d,{index:e,delay:i||0,isFirstSlide:n})}),l)},w.prototype.isFirstSlideWithZoomAnimation=function(){return!(this.lGalleryOn||!this.zoomFromOrigin||!this.currentImageSize)},w.prototype.addSlideVideoInfo=function(t){var e=this;t.forEach((function(t,i){t.__slideVideoInfo=P(t.src,!!t.video,i),t.__slideVideoInfo&&e.settings.loadYouTubePoster&&!t.poster&&t.__slideVideoInfo.youtube&&(t.poster="//img.youtube.com/vi/"+t.__slideVideoInfo.youtube[1]+"/maxresdefault.jpg")}))},w.prototype.loadContent=function(t,i){var n=this,o=this.galleryItems[t],r=x(this.getSlideItemId(t)),l=o.poster,a=o.srcset,d=o.sizes,g=o.sources,h=o.src,c=o.video,u=c&&"string"==typeof c?JSON.parse(c):c;if(o.responsive){var m=o.responsive.split(",");h=L(m)||h}var p=o.__slideVideoInfo,f="",y=!!o.iframe,v=!this.lGalleryOn,b=0;if(v&&(b=this.zoomFromOrigin&&this.currentImageSize?this.settings.startAnimationDuration+10:this.settings.backdropDuration+10),!r.hasClass("lg-loaded")){if(p){var I=this.mediaContainerPosition,C=I.top,w=I.bottom,S=T(this.items[t],this.outer,C+w,p&&this.settings.videoMaxSize);f=this.getVideoContStyle(S)}if(y){var E=O(this.settings.iframeWidth,this.settings.iframeHeight,this.settings.iframeMaxWidth,this.settings.iframeMaxHeight,h,o.iframeTitle);r.prepend(E)}else if(l){var z="";v&&this.zoomFromOrigin&&this.currentImageSize&&(z=this.getDummyImageContent(r,t,""));E=M(l,z||"",f,this.settings.strings.playVideo,p);r.prepend(E)}else if(p){E='
';r.prepend(E)}else if(this.setImgMarkup(h,r,t),a||g){var G=r.find(".lg-object");this.initPictureFill(G)}(l||p)&&this.LGel.trigger(s,{index:t,src:h,html5Video:u,hasPoster:!!l}),this.LGel.trigger(e,{index:t}),this.lGalleryOn&&".lg-item"===this.settings.appendSubHtmlTo&&this.addHtml(t)}var k=0;b&&!x(document.body).hasClass("lg-from-hash")&&(k=b),this.isFirstSlideWithZoomAnimation()&&(setTimeout((function(){r.removeClass("lg-start-end-progress lg-start-progress").removeAttr("style")}),this.settings.startAnimationDuration+100),r.hasClass("lg-loaded")||setTimeout((function(){if("image"===n.getSlideType(o)){var e=o.alt,i=e?'alt="'+e+'"':"";if(r.find(".lg-img-wrap").append(D(t,h,i,a,d,o.sources)),a||g){var s=r.find(".lg-object");n.initPictureFill(s)}}("image"===n.getSlideType(o)||"video"===n.getSlideType(o)&&l)&&(n.onLgObjectLoad(r,t,b,k,!0,!1),n.onSlideObjectLoad(r,!(!p||!p.html5||l),(function(){n.loadContentOnFirstSlideLoad(t,r,k)}),(function(){n.loadContentOnFirstSlideLoad(t,r,k)})))}),this.settings.startAnimationDuration+100)),r.addClass("lg-loaded"),this.isFirstSlideWithZoomAnimation()&&("video"!==this.getSlideType(o)||l)||this.onLgObjectLoad(r,t,b,k,v,!(!p||!p.html5||l)),this.zoomFromOrigin&&this.currentImageSize||!r.hasClass("lg-complete_")||this.lGalleryOn||setTimeout((function(){r.addClass("lg-complete")}),this.settings.backdropDuration),this.lGalleryOn=!0,!0===i&&(r.hasClass("lg-complete_")?this.preload(t):r.find(".lg-object").first().on("load.lg error.lg",(function(){n.preload(t)})))},w.prototype.loadContentOnFirstSlideLoad=function(t,e,i){var s=this;setTimeout((function(){e.find(".lg-dummy-img").remove(),e.removeClass("lg-first-slide"),s.outer.removeClass("lg-first-slide-loading"),s.isDummyImageRemoved=!0,s.preload(t)}),i+300)},w.prototype.getItemsToBeInsertedToDom=function(t,e,i){var s=this;void 0===i&&(i=0);var n=[],o=Math.max(i,3);o=Math.min(o,this.galleryItems.length);var r="lg-item-"+this.lgId+"-"+e;if(this.galleryItems.length<=3)return this.galleryItems.forEach((function(t,e){n.push("lg-item-"+s.lgId+"-"+e)})),n;if(t<(this.galleryItems.length-1)/2){for(var l=t;l>t-o/2&&l>=0;l--)n.push("lg-item-"+this.lgId+"-"+l);var a=n.length;for(l=0;l')})),this.currentItemsInDom.forEach((function(t){-1===s.indexOf(t)&&x("#"+t).remove()})),s},w.prototype.getPreviousSlideIndex=function(){var t=0;try{var e=this.outer.find(".lg-current").first().attr("id");t=parseInt(e.split("-")[3])||0}catch(e){t=0}return t},w.prototype.setDownloadValue=function(t){if(this.settings.download){var e=this.galleryItems[t];if(!1===e.downloadUrl||"false"===e.downloadUrl)this.outer.addClass("lg-hide-download");else{var i=this.getElementById("lg-download");this.outer.removeClass("lg-hide-download"),i.attr("href",e.downloadUrl||e.src),e.download&&i.attr("download",e.download)}}},w.prototype.makeSlideAnimation=function(t,e,i){var s=this;this.lGalleryOn&&i.addClass("lg-slide-progress"),setTimeout((function(){s.outer.addClass("lg-no-trans"),s.outer.find(".lg-item").removeClass("lg-prev-slide lg-next-slide"),"prev"===t?(e.addClass("lg-prev-slide"),i.addClass("lg-next-slide")):(e.addClass("lg-next-slide"),i.addClass("lg-prev-slide")),setTimeout((function(){s.outer.find(".lg-item").removeClass("lg-current"),e.addClass("lg-current"),s.outer.removeClass("lg-no-trans")}),50)}),this.lGalleryOn?this.settings.slideDelay:0)},w.prototype.slide=function(t,e,i,s){var n=this,o=this.getPreviousSlideIndex();if(this.currentItemsInDom=this.organizeSlideItems(t,o),!this.lGalleryOn||o!==t){var r=this.galleryItems.length;if(!this.lgBusy){this.settings.counter&&this.updateCurrentCounter(t);var l=this.getSlideItem(t),a=this.getSlideItem(o),d=this.galleryItems[t],c=d.__slideVideoInfo;if(this.outer.attr("data-lg-slide-type",this.getSlideType(d)),this.setDownloadValue(t),c){var u=this.mediaContainerPosition,m=u.top,p=u.bottom,f=T(this.items[t],this.outer,m+p,c&&this.settings.videoMaxSize);this.resizeVideoSlide(t,f)}if(this.LGel.trigger(g,{prevIndex:o,index:t,fromTouch:!!e,fromThumb:!!i}),this.lgBusy=!0,clearTimeout(this.hideBarTimeout),this.arrowDisable(t),s||(to&&(s="next")),e){this.outer.find(".lg-item").removeClass("lg-prev-slide lg-current lg-next-slide");var y=void 0,v=void 0;r>2?(y=t-1,v=t+1,(0===t&&o===r-1||t===r-1&&0===o)&&(v=0,y=r-1)):(y=0,v=1),"prev"===s?this.getSlideItem(v).addClass("lg-next-slide"):this.getSlideItem(y).addClass("lg-prev-slide"),l.addClass("lg-current")}else this.makeSlideAnimation(s,l,a);this.lGalleryOn?setTimeout((function(){n.loadContent(t,!0),".lg-item"!==n.settings.appendSubHtmlTo&&n.addHtml(t)}),this.settings.speed+50+(e?0:this.settings.slideDelay)):this.loadContent(t,!0),setTimeout((function(){n.lgBusy=!1,a.removeClass("lg-slide-progress"),n.LGel.trigger(h,{prevIndex:o,index:t,fromTouch:e,fromThumb:i})}),(this.lGalleryOn?this.settings.speed+100:100)+(e?0:this.settings.slideDelay))}this.index=t}},w.prototype.updateCurrentCounter=function(t){this.getElementById("lg-counter-current").html(t+1+"")},w.prototype.updateCounterTotal=function(){this.getElementById("lg-counter-all").html(this.galleryItems.length+"")},w.prototype.getSlideType=function(t){return t.__slideVideoInfo?"video":t.iframe?"iframe":"image"},w.prototype.touchMove=function(t,e,i){var s=e.pageX-t.pageX,n=e.pageY-t.pageY,o=!1;if(this.swipeDirection?o=!0:Math.abs(s)>15?(this.swipeDirection="horizontal",o=!0):Math.abs(n)>15&&(this.swipeDirection="vertical",o=!0),o){var r=this.getSlideItem(this.index);if("horizontal"===this.swipeDirection){null==i||i.preventDefault(),this.outer.addClass("lg-dragging"),this.setTranslate(r,s,0);var l=r.get().offsetWidth,a=15*l/100-Math.abs(10*s/100);this.setTranslate(this.outer.find(".lg-prev-slide").first(),-l+s-a,0),this.setTranslate(this.outer.find(".lg-next-slide").first(),l+s+a,0)}else if("vertical"===this.swipeDirection&&this.settings.swipeToClose){null==i||i.preventDefault(),this.$container.addClass("lg-dragging-vertical");var d=1-Math.abs(n)/window.innerHeight;this.$backdrop.css("opacity",d);var g=1-Math.abs(n)/(2*window.innerWidth);this.setTranslate(r,0,n,g,g),Math.abs(n)>100&&this.outer.addClass("lg-hide-items").removeClass("lg-components-open")}}},w.prototype.touchEnd=function(t,e,i){var s,n=this;"lg-slide"!==this.settings.mode&&this.outer.addClass("lg-slide"),setTimeout((function(){n.$container.removeClass("lg-dragging-vertical"),n.outer.removeClass("lg-dragging lg-hide-items").addClass("lg-components-open");var o=!0;if("horizontal"===n.swipeDirection){s=t.pageX-e.pageX;var r=Math.abs(t.pageX-e.pageX);s<0&&r>n.settings.swipeThreshold?(n.goToNextSlide(!0),o=!1):s>0&&r>n.settings.swipeThreshold&&(n.goToPrevSlide(!0),o=!1)}else if("vertical"===n.swipeDirection){if(s=Math.abs(t.pageY-e.pageY),n.settings.closable&&n.settings.swipeToClose&&s>100)return void n.closeGallery();n.$backdrop.css("opacity",1)}if(n.outer.find(".lg-item").removeAttr("style"),o&&Math.abs(t.pageX-e.pageX)<5){var l=x(i.target);n.isPosterElement(l)&&n.LGel.trigger(c)}n.swipeDirection=void 0})),setTimeout((function(){n.outer.hasClass("lg-dragging")||"lg-slide"===n.settings.mode||n.outer.removeClass("lg-slide")}),this.settings.speed+100)},w.prototype.enableSwipe=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableSwipe&&(this.$inner.on("touchstart.lg",(function(i){t.dragOrSwipeEnabled=!0;var s=t.getSlideItem(t.index);!x(i.target).hasClass("lg-item")&&!s.get().contains(i.target)||t.outer.hasClass("lg-zoomed")||t.lgBusy||1!==i.touches.length||(n=!0,t.touchAction="swipe",t.manageSwipeClass(),e={pageX:i.touches[0].pageX,pageY:i.touches[0].pageY})})),this.$inner.on("touchmove.lg",(function(o){n&&"swipe"===t.touchAction&&1===o.touches.length&&(i={pageX:o.touches[0].pageX,pageY:o.touches[0].pageY},t.touchMove(e,i,o),s=!0)})),this.$inner.on("touchend.lg",(function(o){if("swipe"===t.touchAction){if(s)s=!1,t.touchEnd(i,e,o);else if(n){var r=x(o.target);t.isPosterElement(r)&&t.LGel.trigger(c)}t.touchAction=void 0,n=!1}})))},w.prototype.enableDrag=function(){var t=this,e={},i={},s=!1,n=!1;this.settings.enableDrag&&(this.outer.on("mousedown.lg",(function(i){t.dragOrSwipeEnabled=!0;var n=t.getSlideItem(t.index);(x(i.target).hasClass("lg-item")||n.get().contains(i.target))&&(t.outer.hasClass("lg-zoomed")||t.lgBusy||(i.preventDefault(),t.lgBusy||(t.manageSwipeClass(),e={pageX:i.pageX,pageY:i.pageY},s=!0,t.outer.get().scrollLeft+=1,t.outer.get().scrollLeft-=1,t.outer.removeClass("lg-grab").addClass("lg-grabbing"),t.LGel.trigger(u))))})),x(window).on("mousemove.lg.global"+this.lgId,(function(o){s&&t.lgOpened&&(n=!0,i={pageX:o.pageX,pageY:o.pageY},t.touchMove(e,i),t.LGel.trigger(m))})),x(window).on("mouseup.lg.global"+this.lgId,(function(o){if(t.lgOpened){var r=x(o.target);n?(n=!1,t.touchEnd(i,e,o),t.LGel.trigger(p)):t.isPosterElement(r)&&t.LGel.trigger(c),s&&(s=!1,t.outer.removeClass("lg-grabbing").addClass("lg-grab"))}})))},w.prototype.triggerPosterClick=function(){var t=this;this.$inner.on("click.lg",(function(e){!t.dragOrSwipeEnabled&&t.isPosterElement(x(e.target))&&t.LGel.trigger(c)}))},w.prototype.manageSwipeClass=function(){var t=this.index+1,e=this.index-1;this.settings.loop&&this.galleryItems.length>2&&(0===this.index?e=this.galleryItems.length-1:this.index===this.galleryItems.length-1&&(t=0)),this.outer.find(".lg-item").removeClass("lg-next-slide lg-prev-slide"),e>-1&&this.getSlideItem(e).addClass("lg-prev-slide"),this.getSlideItem(t).addClass("lg-next-slide")},w.prototype.goToNextSlide=function(t){var e=this,i=this.settings.loop;t&&this.galleryItems.length<3&&(i=!1),this.lgBusy||(this.index+10?(this.index--,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):i?(this.index=this.galleryItems.length-1,this.LGel.trigger(y,{index:this.index,fromTouch:t}),this.slide(this.index,!!t,!1,"prev")):this.settings.slideEndAnimation&&!t&&(this.outer.addClass("lg-left-end"),setTimeout((function(){e.outer.removeClass("lg-left-end")}),400)))},w.prototype.keyPress=function(){var t=this;x(window).on("keydown.lg.global"+this.lgId,(function(e){t.lgOpened&&!0===t.settings.escKey&&27===e.keyCode&&(e.preventDefault(),t.settings.allowMediaOverlap&&t.outer.hasClass("lg-can-toggle")&&t.outer.hasClass("lg-components-open")?t.outer.removeClass("lg-components-open"):t.closeGallery()),t.lgOpened&&t.galleryItems.length>1&&(37===e.keyCode&&(e.preventDefault(),t.goToPrevSlide()),39===e.keyCode&&(e.preventDefault(),t.goToNextSlide()))}))},w.prototype.arrow=function(){var t=this;this.getElementById("lg-prev").on("click.lg",(function(){t.goToPrevSlide()})),this.getElementById("lg-next").on("click.lg",(function(){t.goToNextSlide()}))},w.prototype.arrowDisable=function(t){if(!this.settings.loop&&this.settings.hideControlOnEnd){var e=this.getElementById("lg-prev"),i=this.getElementById("lg-next");t+1===this.galleryItems.length?i.attr("disabled","disabled").addClass("disabled"):i.removeAttr("disabled").removeClass("disabled"),0===t?e.attr("disabled","disabled").addClass("disabled"):e.removeAttr("disabled").removeClass("disabled")}},w.prototype.setTranslate=function(t,e,i,s,n){void 0===s&&(s=1),void 0===n&&(n=1),t.css("transform","translate3d("+e+"px, "+i+"px, 0px) scale3d("+s+", "+n+", 1)")},w.prototype.mousewheel=function(){var t=this,e=0;this.outer.on("wheel.lg",(function(i){if(i.deltaY&&!(t.galleryItems.length<2)){i.preventDefault();var s=(new Date).getTime();s-e<1e3||(e=s,i.deltaY>0?t.goToNextSlide():i.deltaY<0&&t.goToPrevSlide())}}))},w.prototype.isSlideElement=function(t){return t.hasClass("lg-outer")||t.hasClass("lg-item")||t.hasClass("lg-img-wrap")},w.prototype.isPosterElement=function(t){var e=this.getSlideItem(this.index).find(".lg-video-play-button").get();return t.hasClass("lg-video-poster")||t.hasClass("lg-video-play-button")||e&&e.contains(t.get())},w.prototype.toggleMaximize=function(){var t=this;this.getElementById("lg-maximize").on("click.lg",(function(){t.$container.toggleClass("lg-inline"),t.refreshOnResize()}))},w.prototype.invalidateItems=function(){for(var t=0;t\n
\n
\n ';this.core.outer.addClass("lg-has-thumb"),".lg-components"===this.settings.appendThumbnailsTo?this.core.$lgComponents.append(e):this.core.outer.append(e),this.$thumbOuter=this.core.outer.find(".lg-thumb-outer").first(),this.$lgThumb=this.core.outer.find(".lg-thumb").first(),this.settings.animateThumb&&this.core.outer.find(".lg-thumb").css("transition-duration",this.core.settings.speed+"ms").css("width",this.thumbTotalWidth+"px").css("position","relative"),this.setThumbItemHtml(this.core.galleryItems)},o.prototype.enableThumbDrag=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0},i=!1;this.$thumbOuter.addClass("lg-grab"),this.core.outer.find(".lg-thumb").first().on("mousedown.lg.thumb",(function(s){t.thumbTotalWidth>t.thumbOuterWidth&&(s.preventDefault(),e.cords.startX=s.pageX,e.startTime=new Date,t.thumbClickable=!1,i=!0,t.core.outer.get().scrollLeft+=1,t.core.outer.get().scrollLeft-=1,t.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))})),this.$LG(window).on("mousemove.lg.thumb.global"+this.core.lgId,(function(s){t.core.lgOpened&&i&&(e.cords.endX=s.pageX,e=t.onThumbTouchMove(e))})),this.$LG(window).on("mouseup.lg.thumb.global"+this.core.lgId,(function(){t.core.lgOpened&&(e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0,i&&(i=!1,t.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab")))}))},o.prototype.enableThumbSwipe=function(){var t=this,e={cords:{startX:0,endX:0},isMoved:!1,newTranslateX:0,startTime:new Date,endTime:new Date,touchMoveTime:0};this.$lgThumb.on("touchstart.lg",(function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.startX=i.targetTouches[0].pageX,t.thumbClickable=!1,e.startTime=new Date)})),this.$lgThumb.on("touchmove.lg",(function(i){t.thumbTotalWidth>t.thumbOuterWidth&&(i.preventDefault(),e.cords.endX=i.targetTouches[0].pageX,e=t.onThumbTouchMove(e))})),this.$lgThumb.on("touchend.lg",(function(){e.isMoved?e=t.onThumbTouchEnd(e):t.thumbClickable=!0}))},o.prototype.rebuildThumbnails=function(){var t=this;this.$thumbOuter.addClass("lg-rebuilding-thumbnails"),setTimeout((function(){t.thumbTotalWidth=t.core.galleryItems.length*(t.settings.thumbWidth+t.settings.thumbMargin),t.$lgThumb.css("width",t.thumbTotalWidth+"px"),t.$lgThumb.empty(),t.setThumbItemHtml(t.core.galleryItems),t.animateThumb(t.core.index)}),50),setTimeout((function(){t.$thumbOuter.removeClass("lg-rebuilding-thumbnails")}),200)},o.prototype.setTranslate=function(t){this.$lgThumb.css("transform","translate3d(-"+t+"px, 0px, 0px)")},o.prototype.getPossibleTransformX=function(t){return t>this.thumbTotalWidth-this.thumbOuterWidth&&(t=this.thumbTotalWidth-this.thumbOuterWidth),t<0&&(t=0),t},o.prototype.animateThumb=function(t){if(this.$lgThumb.css("transition-duration",this.core.settings.speed+"ms"),this.settings.animateThumb){var e=0;switch(this.settings.currentPagerPosition){case"left":e=0;break;case"middle":e=this.thumbOuterWidth/2-this.settings.thumbWidth/2;break;case"right":e=this.thumbOuterWidth-this.settings.thumbWidth}this.translateX=(this.settings.thumbWidth+this.settings.thumbMargin)*t-1-e,this.translateX>this.thumbTotalWidth-this.thumbOuterWidth&&(this.translateX=this.thumbTotalWidth-this.thumbOuterWidth),this.translateX<0&&(this.translateX=0),this.setTranslate(this.translateX)}},o.prototype.onThumbTouchMove=function(t){return t.newTranslateX=this.translateX,t.isMoved=!0,t.touchMoveTime=(new Date).valueOf(),t.newTranslateX-=t.cords.endX-t.cords.startX,t.newTranslateX=this.getPossibleTransformX(t.newTranslateX),this.setTranslate(t.newTranslateX),this.$thumbOuter.addClass("lg-dragging"),t},o.prototype.onThumbTouchEnd=function(t){t.isMoved=!1,t.endTime=new Date,this.$thumbOuter.removeClass("lg-dragging");var e=t.endTime.valueOf()-t.startTime.valueOf(),i=t.cords.endX-t.cords.startX,s=Math.abs(i)/e;return s>.15&&t.endTime.valueOf()-t.touchMoveTime<30?((s+=1)>2&&(s+=1),s+=s*(Math.abs(i)/this.thumbOuterWidth),this.$lgThumb.css("transition-duration",Math.min(s-1,2)+"settings"),i*=s,this.translateX=this.getPossibleTransformX(this.translateX-i),this.setTranslate(this.translateX)):this.translateX=t.newTranslateX,Math.abs(t.cords.endX-t.cords.startX)\n \n '},o.prototype.getThumbItemHtml=function(t){for(var e="",i=0;i'),this.core.outer.find(".lg-toggle-thumb").first().on("click.lg",(function(){t.core.outer.toggleClass("lg-components-open")})))},o.prototype.thumbKeyPress=function(){var t=this;this.$LG(window).on("keydown.lg.thumb.global"+this.core.lgId,(function(e){t.core.lgOpened&&t.settings.toggleThumb&&(38===e.keyCode?(e.preventDefault(),t.core.outer.addClass("lg-components-open")):40===e.keyCode&&(e.preventDefault(),t.core.outer.removeClass("lg-components-open")))}))},o.prototype.destroy=function(){this.settings.thumbnail&&(this.$LG(window).off(".lg.thumb.global"+this.core.lgId),this.core.LGel.off(".lg.thumb"),this.core.LGel.off(".thumb"),this.$thumbOuter.remove(),this.core.outer.removeClass("lg-has-thumb"))},o}()})); diff --git a/lib/lightgallery/plugins/zoom/lg-zoom.min.js b/lib/lightgallery/plugins/zoom/lg-zoom.min.js new file mode 100644 index 000000000..0993acf10 --- /dev/null +++ b/lib/lightgallery/plugins/zoom/lg-zoom.min.js @@ -0,0 +1,8 @@ +/** + * lightgallery | 2.7.2 | September 20th 2023 + * http://www.lightgalleryjs.com/ + * Copyright (c) 2020 Sachin Neravath; + * @license GPLv3 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).lgZoom=t()}(this,(function(){"use strict";var e=function(){return(e=Object.assign||function(e){for(var t,o=1,i=arguments.length;o':"";this.settings.actualSize&&(e+=''),this.core.outer.addClass("lg-use-transition-for-zoom"),this.core.$toolbar.first().append(e)},h.prototype.enableZoom=function(e){var t=this,o=this.settings.enableZoomAfter+e.detail.delay;this.$LG("body").first().hasClass("lg-from-hash")&&e.detail.delay?o=0:this.$LG("body").first().removeClass("lg-from-hash"),this.zoomableTimeout=setTimeout((function(){t.isImageSlide(t.core.index)&&(t.core.getSlideItem(e.detail.index).addClass("lg-zoomable"),e.detail.index===t.core.index&&t.setZoomEssentials())}),o+30)},h.prototype.enableZoomOnSlideItemLoad=function(){this.core.LGel.on(a+".zoom",this.enableZoom.bind(this))},h.prototype.getDragCords=function(e){return{x:e.pageX,y:e.pageY}},h.prototype.getSwipeCords=function(e){return{x:e.touches[0].pageX,y:e.touches[0].pageY}},h.prototype.getDragAllowedAxises=function(e,t){var o=this.core.getSlideItem(this.core.index).find(".lg-image").first().get(),i=0,s=0,a=o.getBoundingClientRect();e?(i=o.offsetHeight*e,s=o.offsetWidth*e):t?(i=a.height+t*a.height,s=a.width+t*a.width):(i=a.height,s=a.width);var n=i>this.containerRect.height;return{allowX:s>this.containerRect.width,allowY:n}},h.prototype.setZoomEssentials=function(){this.containerRect=this.core.$content.get().getBoundingClientRect()},h.prototype.zoomImage=function(e,t,o,i){if(!(Math.abs(t)<=0)){var s,a,n=this.containerRect.width/2+this.containerRect.left,r=this.containerRect.height/2+this.containerRect.top+this.scrollTop;1===e&&(this.positionChanged=!1);var l=this.getDragAllowedAxises(0,t),g=l.allowY,c=l.allowX;this.positionChanged&&(s=this.left/(this.scale-t),a=this.top/(this.scale-t),this.pageX=n-s,this.pageY=r-a,this.positionChanged=!1);var h,m,u=this.getPossibleSwipeDragCords(t),d=n-this.pageX,f=r-this.pageY;if(e-t>1){var p=(e-t)/Math.abs(t);h=(d=(t<0?-d:d)+this.left*(p+(t<0?-1:1)))/p,m=(f=(t<0?-f:f)+this.top*(p+(t<0?-1:1)))/p}else{h=d*(p=(e-t)*t),m=f*p}o&&(c?this.isBeyondPossibleLeft(h,u.minX)?h=u.minX:this.isBeyondPossibleRight(h,u.maxX)&&(h=u.maxX):e>1&&(hu.maxX&&(h=u.maxX)),g?this.isBeyondPossibleTop(m,u.minY)?m=u.minY:this.isBeyondPossibleBottom(m,u.maxY)&&(m=u.maxY):e>1&&(mu.maxY&&(m=u.maxY))),this.setZoomStyles({x:h,y:m,scale:e}),this.left=h,this.top=m,i&&this.setZoomImageSize()}},h.prototype.resetImageTranslate=function(e){if(this.isImageSlide(e)){var t=this.core.getSlideItem(e).find(".lg-image").first();this.imageReset=!1,t.removeClass("reset-transition reset-transition-y reset-transition-x"),this.core.outer.removeClass("lg-actual-size"),t.css("width","auto").css("height","auto"),setTimeout((function(){t.removeClass("no-transition")}),10)}},h.prototype.setZoomImageSize=function(){var e=this,t=this.core.getSlideItem(this.core.index).find(".lg-image").first();setTimeout((function(){var o=e.getCurrentImageActualSizeScale();e.scale>=o&&(t.addClass("no-transition"),e.imageReset=!0)}),500),setTimeout((function(){var o=e.getCurrentImageActualSizeScale();if(e.scale>=o){var i=e.getDragAllowedAxises(e.scale);t.css("width",t.get().naturalWidth+"px").css("height",t.get().naturalHeight+"px"),e.core.outer.addClass("lg-actual-size"),i.allowX&&i.allowY?t.addClass("reset-transition"):i.allowX&&!i.allowY?t.addClass("reset-transition-x"):!i.allowX&&i.allowY&&t.addClass("reset-transition-y")}}),550)},h.prototype.setZoomStyles=function(e){var t=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),o=this.core.getSlideItem(this.core.index).find(".lg-image").first(),i=this.core.outer.find(".lg-current .lg-dummy-img").first();this.scale=e.scale,o.css("transform","scale3d("+e.scale+", "+e.scale+", 1)"),i.css("transform","scale3d("+e.scale+", "+e.scale+", 1)");var s="translate3d("+e.x+"px, "+e.y+"px, 0)";t.css("transform",s)},h.prototype.setActualSize=function(e,t){var o=this;if(!this.zoomInProgress){this.zoomInProgress=!0;var i=this.core.galleryItems[this.core.index];this.resetImageTranslate(e),setTimeout((function(){if(i.src&&!o.core.outer.hasClass("lg-first-slide-loading")){var e=o.getCurrentImageActualSizeScale(),s=o.scale;o.core.outer.hasClass("lg-zoomed")?o.scale=1:o.scale=o.getScale(e),o.setPageCords(t),o.beginZoom(o.scale),o.zoomImage(o.scale,o.scale-s,!0,!0)}}),50),setTimeout((function(){o.core.outer.removeClass("lg-grabbing").addClass("lg-grab")}),60),setTimeout((function(){o.zoomInProgress=!1}),610)}},h.prototype.getNaturalWidth=function(e){var t=this.core.getSlideItem(e).find(".lg-image").first(),o=this.core.galleryItems[e].width;return o?parseFloat(o):t.get().naturalWidth},h.prototype.getActualSizeScale=function(e,t){return e>=t?e/t||2:1},h.prototype.getCurrentImageActualSizeScale=function(){var e=this.core.getSlideItem(this.core.index).find(".lg-image").first().get().offsetWidth,t=this.getNaturalWidth(this.core.index)||e;return this.getActualSizeScale(t,e)},h.prototype.getPageCords=function(e){var t={};if(e)t.x=e.pageX||e.touches[0].pageX,t.y=e.pageY||e.touches[0].pageY;else{var o=this.core.$content.get().getBoundingClientRect();t.x=o.width/2+o.left,t.y=o.height/2+this.scrollTop+o.top}return t},h.prototype.setPageCords=function(e){var t=this.getPageCords(e);this.pageX=t.x,this.pageY=t.y},h.prototype.manageActualPixelClassNames=function(){this.core.getElementById("lg-actual-size").removeClass(this.settings.actualSizeIcons.zoomIn).addClass(this.settings.actualSizeIcons.zoomOut)},h.prototype.beginZoom=function(e){return this.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),e>1?(this.core.outer.addClass("lg-zoomed"),this.manageActualPixelClassNames()):this.resetZoom(),e>1},h.prototype.getScale=function(e){var t=this.getCurrentImageActualSizeScale();return e<1?e=1:e>t&&(e=t),e},h.prototype.init=function(){var e=this;if(this.settings.zoom){this.buildTemplates(),this.enableZoomOnSlideItemLoad();var t=null;this.core.outer.on("dblclick.lg",(function(t){e.$LG(t.target).hasClass("lg-image")&&e.setActualSize(e.core.index,t)})),this.core.outer.on("touchstart.lg",(function(o){var i=e.$LG(o.target);1===o.touches.length&&i.hasClass("lg-image")&&(t?(clearTimeout(t),t=null,o.preventDefault(),e.setActualSize(e.core.index,o)):t=setTimeout((function(){t=null}),300))})),this.core.LGel.on(o+".zoom "+l+".zoom "+r+".zoom "+g+".zoom "+c+".zoom",(function(){if(e.core.lgOpened&&e.isImageSlide(e.core.index)&&!e.core.touchAction){var t=e.core.getSlideItem(e.core.index).find(".lg-img-wrap").first();e.top=0,e.left=0,e.setZoomEssentials(),e.setZoomSwipeStyles(t,{x:0,y:0}),e.positionChanged=!0}})),this.$LG(window).on("scroll.lg.zoom.global"+this.core.lgId,(function(){e.core.lgOpened&&(e.scrollTop=e.$LG(window).scrollTop())})),this.core.getElementById("lg-zoom-out").on("click.lg",(function(){if(e.isImageSlide(e.core.index)){var t=0;e.imageReset&&(e.resetImageTranslate(e.core.index),t=50),setTimeout((function(){var t=e.scale-e.settings.scale;t<1&&(t=1),e.beginZoom(t),e.zoomImage(t,-e.settings.scale,!0,!e.settings.infiniteZoom)}),t)}})),this.core.getElementById("lg-zoom-in").on("click.lg",(function(){e.zoomIn()})),this.core.getElementById("lg-actual-size").on("click.lg",(function(){e.setActualSize(e.core.index)})),this.core.LGel.on(i+".zoom",(function(){e.core.outer.find(".lg-item").removeClass("lg-zoomable")})),this.core.LGel.on(s+".zoom",(function(){e.scrollTop=e.$LG(window).scrollTop(),e.pageX=e.core.outer.width()/2,e.pageY=e.core.outer.height()/2+e.scrollTop,e.scale=1})),this.core.LGel.on(n+".zoom",(function(t){var o=t.detail.prevIndex;e.scale=1,e.positionChanged=!1,e.zoomInProgress=!1,e.resetZoom(o),e.resetImageTranslate(o),e.isImageSlide(e.core.index)&&e.setZoomEssentials()})),this.zoomDrag(),this.pinchZoom(),this.zoomSwipe(),this.zoomableTimeout=!1,this.positionChanged=!1,this.zoomInProgress=!1}},h.prototype.zoomIn=function(){if(this.isImageSlide(this.core.index)){var e=this.scale+this.settings.scale;this.settings.infiniteZoom||(e=this.getScale(e)),this.beginZoom(e),this.zoomImage(e,Math.min(this.settings.scale,e-this.scale),!0,!this.settings.infiniteZoom)}},h.prototype.resetZoom=function(e){this.core.outer.removeClass("lg-zoomed lg-zoom-drag-transition");var t=this.core.getElementById("lg-actual-size"),o=this.core.getSlideItem(void 0!==e?e:this.core.index);t.removeClass(this.settings.actualSizeIcons.zoomOut).addClass(this.settings.actualSizeIcons.zoomIn),o.find(".lg-img-wrap").first().removeAttr("style"),o.find(".lg-image").first().removeAttr("style"),this.scale=1,this.left=0,this.top=0,this.setPageCords()},h.prototype.getTouchDistance=function(e){return Math.sqrt((e.touches[0].pageX-e.touches[1].pageX)*(e.touches[0].pageX-e.touches[1].pageX)+(e.touches[0].pageY-e.touches[1].pageY)*(e.touches[0].pageY-e.touches[1].pageY))},h.prototype.pinchZoom=function(){var e=this,t=0,o=!1,i=1,s=0,a=this.core.getSlideItem(this.core.index);this.core.outer.on("touchstart.lg",(function(o){if(a=e.core.getSlideItem(e.core.index),e.isImageSlide(e.core.index)&&2===o.touches.length){if(o.preventDefault(),e.core.outer.hasClass("lg-first-slide-loading"))return;i=e.scale||1,e.core.outer.removeClass("lg-zoom-drag-transition lg-zoom-dragging"),e.setPageCords(o),e.resetImageTranslate(e.core.index),e.core.touchAction="pinch",t=e.getTouchDistance(o)}})),this.core.$inner.on("touchmove.lg",(function(n){if(2===n.touches.length&&"pinch"===e.core.touchAction&&(e.$LG(n.target).hasClass("lg-item")||a.get().contains(n.target))){n.preventDefault();var r=e.getTouchDistance(n),l=t-r;if(!o&&Math.abs(l)>5&&(o=!0),o){s=e.scale;var g=Math.max(1,i+.02*-l);e.scale=Math.round(100*(g+Number.EPSILON))/100;var c=e.scale-s;e.zoomImage(e.scale,Math.round(100*(c+Number.EPSILON))/100,!1,!1)}}})),this.core.$inner.on("touchend.lg",(function(i){if("pinch"===e.core.touchAction&&(e.$LG(i.target).hasClass("lg-item")||a.get().contains(i.target))){if(o=!1,t=0,e.scale<=1)e.resetZoom();else{var s=e.getCurrentImageActualSizeScale();if(e.scale>=s){var n=s-e.scale;0===n&&(n=.01),e.zoomImage(s,n,!1,!0)}e.manageActualPixelClassNames(),e.core.outer.addClass("lg-zoomed")}e.core.touchAction=void 0}}))},h.prototype.touchendZoom=function(e,t,o,i,s){var a=t.x-e.x,n=t.y-e.y,r=Math.abs(a)/s+1,l=Math.abs(n)/s+1;r>2&&(r+=1),l>2&&(l+=1),a*=r,n*=l;var g=this.core.getSlideItem(this.core.index).find(".lg-img-wrap").first(),c={};c.x=this.left+a,c.y=this.top+n;var h=this.getPossibleSwipeDragCords();(Math.abs(a)>15||Math.abs(n)>15)&&(i&&(this.isBeyondPossibleTop(c.y,h.minY)?c.y=h.minY:this.isBeyondPossibleBottom(c.y,h.maxY)&&(c.y=h.maxY)),o&&(this.isBeyondPossibleLeft(c.x,h.minX)?c.x=h.minX:this.isBeyondPossibleRight(c.x,h.maxX)&&(c.x=h.maxX)),i?this.top=c.y:c.y=this.top,o?this.left=c.x:c.x=this.left,this.setZoomSwipeStyles(g,c),this.positionChanged=!0)},h.prototype.getZoomSwipeCords=function(e,t,o,i,s){var a={};if(i){if(a.y=this.top+(t.y-e.y),this.isBeyondPossibleTop(a.y,s.minY)){var n=s.minY-a.y;a.y=s.minY-n/6}else if(this.isBeyondPossibleBottom(a.y,s.maxY)){var r=a.y-s.maxY;a.y=s.maxY+r/6}}else a.y=this.top;if(o){if(a.x=this.left+(t.x-e.x),this.isBeyondPossibleLeft(a.x,s.minX)){var l=s.minX-a.x;a.x=s.minX-l/6}else if(this.isBeyondPossibleRight(a.x,s.maxX)){var g=a.x-s.maxX;a.x=s.maxX+g/6}}else a.x=this.left;return a},h.prototype.isBeyondPossibleLeft=function(e,t){return e>=t},h.prototype.isBeyondPossibleRight=function(e,t){return e<=t},h.prototype.isBeyondPossibleTop=function(e,t){return e>=t},h.prototype.isBeyondPossibleBottom=function(e,t){return e<=t},h.prototype.isImageSlide=function(e){var t=this.core.galleryItems[e];return"image"===this.core.getSlideType(t)},h.prototype.getPossibleSwipeDragCords=function(e){var t=this.core.getSlideItem(this.core.index).find(".lg-image").first(),o=this.core.mediaContainerPosition.bottom,i=t.get().getBoundingClientRect(),s=i.height,a=i.width;return e&&(s+=e*s,a+=e*a),{minY:(s-this.containerRect.height)/2,maxY:(this.containerRect.height-s)/2+o,minX:(a-this.containerRect.width)/2,maxX:(this.containerRect.width-a)/2}},h.prototype.setZoomSwipeStyles=function(e,t){e.css("transform","translate3d("+t.x+"px, "+t.y+"px, 0)")},h.prototype.zoomSwipe=function(){var e,t,o=this,i={},s={},a=!1,n=!1,r=!1,l=new Date,g=(new Date,this.core.getSlideItem(this.core.index));this.core.$inner.on("touchstart.lg",(function(s){if(o.isImageSlide(o.core.index)&&(g=o.core.getSlideItem(o.core.index),(o.$LG(s.target).hasClass("lg-item")||g.get().contains(s.target))&&1===s.touches.length&&o.core.outer.hasClass("lg-zoomed"))){s.preventDefault(),l=new Date,o.core.touchAction="zoomSwipe",t=o.core.getSlideItem(o.core.index).find(".lg-img-wrap").first();var a=o.getDragAllowedAxises(0);r=a.allowY,((n=a.allowX)||r)&&(i=o.getSwipeCords(s)),e=o.getPossibleSwipeDragCords(),o.core.outer.addClass("lg-zoom-dragging lg-zoom-drag-transition")}})),this.core.$inner.on("touchmove.lg",(function(l){if(1===l.touches.length&&"zoomSwipe"===o.core.touchAction&&(o.$LG(l.target).hasClass("lg-item")||g.get().contains(l.target))){l.preventDefault(),o.core.touchAction="zoomSwipe",s=o.getSwipeCords(l);var c=o.getZoomSwipeCords(i,s,n,r,e);(Math.abs(s.x-i.x)>15||Math.abs(s.y-i.y)>15)&&(a=!0,o.setZoomSwipeStyles(t,c))}})),this.core.$inner.on("touchend.lg",(function(e){if("zoomSwipe"===o.core.touchAction&&(o.$LG(e.target).hasClass("lg-item")||g.get().contains(e.target))){if(e.preventDefault(),o.core.touchAction=void 0,o.core.outer.removeClass("lg-zoom-dragging"),!a)return;a=!1;var t=(new Date).valueOf()-l.valueOf();o.touchendZoom(i,s,n,r,t)}}))},h.prototype.zoomDrag=function(){var e,t,o,i,s=this,a={},n={},r=!1,l=!1,g=!1,c=!1;this.core.outer.on("mousedown.lg.zoom",(function(t){if(s.isImageSlide(s.core.index)){var n=s.core.getSlideItem(s.core.index);if(s.$LG(t.target).hasClass("lg-item")||n.get().contains(t.target)){e=new Date,i=s.core.getSlideItem(s.core.index).find(".lg-img-wrap").first();var l=s.getDragAllowedAxises(0);c=l.allowY,g=l.allowX,s.core.outer.hasClass("lg-zoomed")&&s.$LG(t.target).hasClass("lg-object")&&(g||c)&&(t.preventDefault(),a=s.getDragCords(t),o=s.getPossibleSwipeDragCords(),r=!0,s.core.outer.removeClass("lg-grab").addClass("lg-grabbing lg-zoom-drag-transition lg-zoom-dragging"))}}})),this.$LG(window).on("mousemove.lg.zoom.global"+this.core.lgId,(function(e){if(r){l=!0,n=s.getDragCords(e);var t=s.getZoomSwipeCords(a,n,g,c,o);s.setZoomSwipeStyles(i,t)}})),this.$LG(window).on("mouseup.lg.zoom.global"+this.core.lgId,(function(o){if(r){if(t=new Date,r=!1,s.core.outer.removeClass("lg-zoom-dragging"),l&&(a.x!==n.x||a.y!==n.y)){n=s.getDragCords(o);var i=t.valueOf()-e.valueOf();s.touchendZoom(a,n,g,c,i)}l=!1}s.core.outer.removeClass("lg-grabbing").addClass("lg-grab")}))},h.prototype.closeGallery=function(){this.resetZoom(),this.zoomInProgress=!1},h.prototype.destroy=function(){this.$LG(window).off(".lg.zoom.global"+this.core.lgId),this.core.LGel.off(".lg.zoom"),this.core.LGel.off(".zoom"),clearTimeout(this.zoomableTimeout),this.zoomableTimeout=!1},h}()})); diff --git a/lib/webfonts/fa-brands-400.ttf b/lib/webfonts/fa-brands-400.ttf index 430a02edc6d675c9111f345b5e617c7352b5d85a..30f55b7435491ed4c2b11de8ab5e5c7e1e1ed669 100644 GIT binary patch delta 30068 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 delta 21962 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

(0wGwLXB2naKMKgASi>6$6=JG#)$u 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 literal 105536 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 z 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
b{1Un3e%Cgw2 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 Qp8T2TST4Tv3;!Pj1NhvUfdBvi diff --git a/lib/webfonts/fa-regular-400.ttf b/lib/webfonts/fa-regular-400.ttf index 23e3febe0d8195ea33e82f21880ef5ac5e5f4717..c79589d83dd5569afad3a4bf7dd96d97cfd52e57 100644 GIT binary patch literal 63348 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 literal 60520 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 diff --git a/lib/webfonts/fa-regular-400.woff2 b/lib/webfonts/fa-regular-400.woff2 index 80e3b1247cec5162882db0342ad99f5da8acca30..059a94e2fd7a6144d1496157ce0c21e39fcde121 100644 GIT binary patch literal 24488 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 Lgti_09|HpbvH4-J literal 23940 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 B77+jd literal 388460 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 z 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

%2NHKpN>D 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

V+nX z2sOs^`D--9G!9?h@PTck>`gaP(}y8MwJXpHWv8MZuYh$3RT1J6x8(>C=3qLg)~c!e zSfG9IOD5tspv9I8Ct#{3R^uC~WRl#NKgaxI!u=CgFcN>|9Jl9AY8eq9i1yF-Rn#5K{iFtWKojZ;iyQpg7O%)90%DzR{p1?>Yo;hU+D{sKP}* zRYlte<+B6OwmxuC+K!c8h4X;~f=bvznKOyOwLxTi9UMWPhJ&wRCZ=ZGGgApfqzWYR zf(D~dU_uGM`}+?2e<&7%t=w%yB1j45F=H|0C=XJg3L;nepIw%Jh`_qPC7#1PT?VHF zf+q!gvf}+Czy)&#e-cy+^cv@%LGhCyU9X85sGy>E*+RiU{A2|7cFraz6@gDp5RiczJqiWh9j{y^&R~ zKZs(-!OpscGchjUQQxfxW;4CnfZ3ULbtF4-0 z3x3c=pi|X%+>a`vQ&%57I`7eR<3snQ|f4(K&&Jr2uL8R z7#d%c7vw|o#p*zrG+8UnUV#;HX=6tM$9<2^^)6zPbuZXY*gMX<4lZwEzhS?)_Xm1k z#cOLeA+>iGO8if>!2shwjeLsq1t_vw?6?kDaL_>x14r4N1D(43pgm?{b363tITJw^#I3i%E0YX;4Gua#+bw~8j zR!EPyM@O5J@YxW?c~qwjM3)oEv1CFEe>$w;NLY`Bre{`OWYwe>S7xR|kKqwgXuR=h ztjvYt_{Tp!UM%=rMvtdca_K48!>*r(m+k;p#|0FPgMNEJ97W5a)!4zWfV0r($zMTw z2iTxALN&2Oo-d7#4qtH|t-+=PePAUSfpu#8t2GF)yWinQJ2uj+4@;yRy7l&;SV%E( zOB+E3SuD1}5#*gkwj`Y3@Vens=OGi9h1mH9Mt0{#K5I{fPDko$`w}Wq1JQBYE+RG`iUH*iI?M|) z{8H$mk{SY<R3H*!EhI_@+j8@wTA|-(<%|jas##lYCtli zdcA&VX?Y2SGBgvx3P|qpo?q0s-VE@uCb*((5e|AKm(UBk?Hyi$|ROb~OH!cfzd)0x2WH zxA{^D4Aa&irRhM7_0-4$rPDPJgxXZ8JT+A=rE;h^=UfL3%R1M$f@3~^A`$o{zi$j0 z@I>NqG3EvD&a$x1(V6WiYz5*;K7ZElBRcqlW1zhh6iZrL+(XF_izXHQ(zT6+WcT;Y|@C^7^S%}Dm)~BW91XT-|Bw9IL zRgzI62SpDs0KgA)5N)Q~C(X+)En7Qsq`q+I@Fe{2#a~VyIy^7xM~+NpQ1veKen-@G z_J94SX*UWokBC5#blnW*LD-9;`@IoVYIdjpG-w(fXPt5OYMx8I;yiOv#U-7VVmKD| znu@JhCW9h@Jh(**v9N%wV~Eh=-WKhbbiTsANZq6CCB@>GGD=p$e3?%Lh)KB&3f;uu z3mWyBzI4>`;!}%WE1LG1sNIrI#ZWXS1A>HH-E07ViC+?D?Jp^N<`!VG0ge5BXj)H6 z$WS)KnxPPjXlX~Omj{j~7)MLPI$+aCVpT2!h*eMqTR(*p7KN60oJs==U;gZ9 zChM=pP=gos5@b0}S%a;Fb$iFE^e3$mux?axZkeU!L6( zFy*3ovYGv(?v{cBFN==qpxP26q@z~vKt5UOzblX0-0~mn*gE`j-zZ+fti2BPq29mQn~uTA~FulvliD$oLE~jq zX=_pbPVgNl3PV>x%Bc`6siOHb&m8x{(z)0*a)Y|6(#j za3o|PH(Q`ukEGLCD`1qq;t_$5yd`C#Hmsp1gga%pA?di2;wAqz2sVPukU1Ehzorb4 zEpS5!)tijDt005x>1+I_t7bf&yE!%XK_rNVKPf&xdc|mn>Fap>fvWeal<6}L>%N8m zkG3}fkmM@Q1oK5^WE>fh_kCw&Wo8{+U72;OugX?;t6OwS>PF}mQb|Zc2puhBkPu)M zh5@nTqp=5&2Mh&_4cHjBjW0YlD*0w@;|A6s`vG3H8GgZn6<|j@BfKocI@1@hUV}h`iCyd4gS5akkMHxhH8d${&c4o@ZpsOKffWo$Hb7Sb*$yBYMloOV5x(J#&b z1zh6=#31E=EG}*UP!Sr-k1r3xKd#o(Fnc`K)y9GICIWvSEI=PYB~hkgXn~+e)I@Fn_VL_CsQxwxkQj#LM^2G75^usILX+hXcYSt_OY7* zcua9ry#*vtu0C1T-V>s=mg6i|&F4OV6Tj79xl%`5F)gFoYrRxFz}N z{nT54g2A||xsEB%A(LZEz$jrq0VXaZRUrm2N3VGjI)Dvbi8@(tZhpCkdo$bSq^;yv zlP!t7s$d+@;ll!+w8P={U@K;RwFTPFm%eIR>#JsLjn^-Gqvo}QiznPz%smeAE(L*J z{XUwL@(#7G5CV?wSn1!2YVSkV}n5$^6ReSKyTwXV`GkUXEe%F7PA2K4V2Z& zr-afC_?H9*TbR@S*JDcG8xG@k+!c+EjYXqxm#uY4;qi0_&DMmCq-RS_pih7f2#&EC zIpd0g4Jk)&y9ywA?=N%tKcXAVALVm@%>5q=YxH#S*;eb>#ov8)ad#o@tnWuCQR9B@ z<5A=OKN~&EUlWgClmFZ``Q3#8CQ4Qs@c5u%L{V>Q$w`+|8e$eH88^un4w(cSa*c2l zeJw7724M6+%gif3Bc8GXZ@IXekmnjWJUta@Dmc-MOidqFE9o+&;0Ly?gJ~taxtl?e zNoilck&y?!6!1-r{XKbzm!6k#72p9XNo|Rf4=eLQnI@3tgtQFe=PPg_c?f(Z*Cn8= zN;U&{OvpmWA&Yq_o6**_R;zaiVH|FT#v!PG`qSX_H4DD`!J84};ZU#D(n5_B2ml(7 zSE_I~Y9QPNBG zRDd6>NWu~@Au`I(ybk`911r}oM^`RnDcfRk3#6KNOE$ORh}c9-IBJ+htnVAUgEE`d z5FPd0(s)aV*7(xkMJ1mUTX>`QR;}9-Ad7Eq`{gEzWO5nIB=jMJhZ5kjFNOWn#emN>gQt7 zxlbWhule)o^59#1>0@R2#urI>;~m%4uD*$=g8jNt7zZ)#d^yXH%2cD(qr9cACcE06 zJ({^0FUUE#De)9CpDT7xzLi=?^0lOF!B_mNv_@$|QUHkS&zYt;K{S%i)CTXD=rW!t z;r(E~7ll0e35Pz9>)9=)>U1XO`yLl`5&UYp)7J({4**j&~`a6^M zO;bth^arR%{=jJ~IhA%!zsgPTDLd_?M|IrH-gykv-RlEy^=E)5LQ@0pLln^yK2`$%yR$eI|YDCvRn4 zwqKZFg`^@8)O^!8lpcYVXfPjMNVhSt$FB9UZ)*Pj~dT2U9(mB{R<|sCC)Cz5JZ* zT)96kGuN*8Syz}gindlTwdiRG@p6}cKW~VeesUWnP=kc+%CGo)XRK7(xek~-SR`Ie zriw_z2nEO$Uv%jQkwGT)gWG+L0mvtn@75Nu*hU}?*vW{bHvEa0f3lnEjw zi7csSkYe6<0AmqIE&5T*JaPoM;Q#LmVrwvB2jdF}VY~!Xr?5Hjy+rzc$+~~wl^!Qe zt17?pOQa(FyI}JLe6($*Cjxwp?d-&LzCe9VZsjZCX?4jpumyGXF22Oo{?)7R@{eB0 z)m<%fP1xk;hGV$|$a5?B^>+lm7qMu50&rc9<_?Aj)~>q;OW9sZqC^evw=W1@p<$vm zq6p5P3}(fSb2Pi-e0kTo78oc`MD(&ygN-SRSc0QNymRPY?yT!g7_=caC5%J6w07%n z4=L{7IW2aajnM#U6rf_7!0DhADh%95aB5w7EAsGs0>$NI~xhI`l?i_wr*?e|JBZcoo* ztIlL%(NH~HEOk1KMz=RHY1M;Bb3FLwuomxv^` zQqJ_;=Yzcr0*hz$@KupyD*O4#dL6c8#Ys587T;&+QN-X5hw*qV7V7VOQCUMusn z`}WT?>V}?3qVdmXA=kf$bwYU6unsFQ3)yjg)2h`cCtbVPfxhNhS;&TH0FFvhX0Zv~ z;wE5mTYBAivbF^Jjy=j45m=N#xn|L)Ii9i{%S=)Wis|JQ0A&E-(KraOBU=Z?{(>v%wZyU`xu)80NeFqV)Fl-342_3ka{2jpaJNcNzY|Zw|aS@OE zBNMMj_3so*c}7ldui@> zA>$ZeCX;1l|kf}%cUcDIVnd4INpRc-x6?qpfw`eCa|Jw7G4;bp#_BRk?JJZ zF(jDaq`ml;8meI$88n9_H@M`}HIk2}mSu2B`lf=i>5|x>Rzx1YI8?JByses)q^dUA z0IZvn)~lo0P1t31X`9v6T#`oT*}{3WFu3GRN2!C`lrqpnpblC6Iq)DJx6Ci`kz9`N z%h^WNQ`qRpPf+A6f>JFmEW(^!4pCEWITXtOB17&4*a7y_;>E+06Ph+LdD!1~mtf`N@i!dohhe*GP4K5f3+#W16o0A(G8(X8Tu(b_gUE}qSR8Ms;@TS?L zh?A;sh#pV6+_2FuH|GI95m$=1(2+D7ap8XW-JOCg=3ZE*y&YMlJ{b69;9}sHC9Fbk zNZ_=+$b4m+*D=_6SStg{%bTN^pCHZ9Dc(6|@%9yP&fXkGDX6>cE12rrS9Y`pT)Exa zE4)W+NtnaW{??Y?3vn*`zTEJ_8q3$@?2?;-qJ!C|qw$lk6hL{THVAt;p4eQFx62K+ z@_uo5yLhBj1o$4q_Y-}-(J8LNQ))XLzzZW!8);yq+4I{EJG=d`_;%^}?b6G)aOtvj zC2aaSY(75@-T&(`FC?`gsXb14kmZu5S6f9NA_No$lhAq*(mD{}H36qbNxRFuOS57D z_Bg4yaN{?yfp;@`%x7hA0== z<#Zz%f>BR|w*R3}CLB+tg6gUniHA(k_v%s*k#jQXp!m2bm1k!UoL=da%1mj6_-FAH z%l02QFgsf=i+`>|IIBSlh-V|(XGlXbFXS5w1rfej1Rb|lNBSCG7a?9oxL_pvLYhb< z!*$&n)|k>gagCM06TJ&PN9F|6oP_dr*C~jD!pnCUQn^v&`3gD=i;fth+Z%)ThN3DI zJcBw1tQ2j;+8wdsXDJYqQ3rwU@JR<+vj-Sg{|ElR^rn$yZ@#J{w56q2Lqasaa4s=7 zcVd33wS*2s^ix>8$NiXIhh_?3z!2~Yp}+(~bxqZ*%XKnr(1*S3jRN8}C-?O7H})T4 z)6kz7r-_;> z94rqnvIh<%BqW+?gM_JJjbWYu90L7#@jY-LaX$zkX|ga2T?23x7Z@&~1=>>KqT%g$ zC)Ob@;9!}S*pi9y%^`AZ2Zowzhl#;z;+qMp2|H8do{sE41Ta_y$T+kgYMm?$P@85V zrfD%%C5yb!`wxMl@T<5PR)NwARerx!okDcng;30$uC^ZR!RI=hDfNRE48Pu`t`$|s zsckV7i%tzIwq(8j3-ZaM&EmB;N~!JZX6~mI+YvXW$J0iUGK_n@FoDrZE)K4yRtnD!a zh)ynXC>L{!jSLMNM~u8YyDvfp5h!H8LbM<@hz-7yE&Q#U;Q4h7lpfNf2}JfyCZd?+ z2%CN#>m=Od8p!M9;8!*X<9BUpBL1P@XEmlv{ZAi?4QzKGLJMJy!8Qdt4j4v8uwbBD z#Y6VFb}VOK^Mx;5W9MRb3gmf(?+=6o*k~>c!SGMoaX?tSf!JFOtg0rF_@1y@B>5z5 z5H`f6&A$AW?XTj|`o}Yxmf6Sw+ljS4OO*SrtX1a=|7S2qa3Rl%9nYM7nP(~(svbQ; zyj|%HR)U$VIKbCf3F0v;FZV9Im^r{Vk~drhGD3JTo^*R28n<8^Ms1%G?cuN%VJ^ z?!i5UHaROuGjZN@AP^%?L=mQqnjE+V93nPGHv^dhu;Q2u!{0W-IY`fN7p9y>m(jX%Saevoabv2oYmkQ+W1&hQ?pH)Vti-*`t#P z^w+iHH*BSHgHQSNuD@>qjYgwD2^Q~$37=KYA%Gfibr3E`ctD8B0Ynhy#K0O3ea9kN z$S&nAn%Bt$0V3%2cL4p(Oex=m{w96CO^t4!p|2#9?QJB?UqpNu`qtp5h<3RqL8s$~ z3<>=CHc^u4_BKn)De4!QTwYoutDUqHcrvR^ke-wVq4Eg*ss0ls)cH>m^qkIT&5_F0ulj@?cgQyofSs z+}f?91SfUXhoI*+VZlosEF;J&A9DFgidn;lLSc$YnU=iU@RUnkPSAOaEDzmx{RwQk<)RrP_gmaX3Gm;+eaA8Xmu6D=hUqd&Z$H5%G{b9OO36N}HJ7H7x*A^sq&9Kwg*=(=w_6gJH0gYlr_7>hT;qa^=0 za+ch7n<0{q=V6`^xpC2OoZutQ($v(FGf^<-D#&U(XBOzRC+I^Zb0oc;)Cn{uN(u}! zQ^1ym#d!(2l$(Z9$YW6fE)kY3lYW=hznB)J>}vv$5P*TAcUlzC7K~IrgffJG1bUFy z;|MbgTSB&M&X`Z*^udY7)kkl7&C#QciG#YBos5)AQz0GRltEit35zhYDuvBb zv89!mqa!^9U=*GLm!RwLAOgm5s=LceTB}$x!?s<(?N666*{Y!(@DKyWwEf#mmR{nk9N745QqKO9kKf!Jp zk*%m{h2WO#QT(Cbl?4xboskJu-$VQ$ZGK=eiJoQ8GcW-ApE<5L0vyW@dK`_c0;hHH zGiX7Pmi|3mWO?>RpHrJtd7+2j@+*_y{CWndTtcOI4eq5Wkd8GZe-(OW@y?`XliU8zh?Rw{NL0f14| z(*OAtNQ5qC*+{XT$mDXde7$PIPSmWl$B}c@(2--Z)cb&25!#r_+U!`kv`!EOkQDY*B8GWsKY1m zK;Q(RZD1LZ2y%Kxfe+8b&NIQofPnaKkpYk?_h;0UZRSoeE7dxI2PkfUKIt>_-_V+ic}*#9S=9@qA%rO)G^Fdje4j zL;;~EbeOF@t)sn(*~zhHb}2n>fSD;2>TnT^MXd1BqG3gFUajLiX&K|`rQBF^Vs;{e zP!VHCR<9{#k6QXvx&hlPkg} zl@|v6tf{AG_0L}HPxQO^gHSf9o4G+hXX?o=`s0^O^In+PxyqByMWBXz|I4QQ_iKm` z2htj3f3z-sO|GLl@X{LQOhVd>oMDvK9N?HVN+NJP3`ERm|4@M_+Kg#SNUr770hf~` z-CEuSLRFYW`j(#tMYWqT_uW{%(gE?^V09qP=W3SWp4Zl;)zXJ73;$6?6&4f8;HF1a z_2Hv=-}k7K@3{}4jB157b-pQSJLfyX;qRbBwL1i8*idY@9+dw+=fxt>?oyu6tltaK3)O)$hJ-@m4S(ksl--uS1(#ZZg zItYvd0CSX4KfKb7ouv{DjMQSUj+~x{6qbE0TjVt*=!EiMQ%Q;89);x&4)nZKCWzQT zNl5$soek}3cWvj@b@j$dYjNR1503=y&@|v3L}cmV39&t;JL~K`YoI=!ASJ&vPrD#n zpteJD%RD1n(WgNNuEqb=5Aa?Ib5F@PD61TUb@W|+0w8g{Ca(dz;X{dg@bmEaGM5uc z=nfVXJ4dSjxwvF4){~e|35eSr$#GEzAl-MBh>2j1_*2!9>w7s&DKmuv60`c(03=x? z-heI*W)Y3qFu0wctiqapHes3Yv0j;oI3>$=6P#9XGObw{jd;kCnal|gk5#KNcv9=( z7$OuNTpAxokg}|7A#O(m_>F2h69HL^{C?@oY`cshESIOJraSFIL4*7qy@p6jodXcB zGAoKD-i23?FBA@|{dbFU!5*8eXF)KJMCLCXJ3#joiP;Yn>f>$^n*FXsh z&8RfTiU>pw+xTXM4cL*`eF%_*8)H-)v^{PQu2=U>|T%HWWygEpiCSLgmyl1jdp-Nid-e?=6-|qw`*#^Wl6){~o27 zL98vdgrGq362j)P4W4L^7gEV+)`CZ4FeK^mSP9gQ5tBj)EGaW;+6l1gg+!6LcD>Gz zB#Ve)kQ$mui#RS9z|hBS+z^WvNcmV$f1A-*z65fb1UDWLwzAP=s*nm>Ak_>9@w4I) zClCHN7|gd|51rwCjcnF+bc92`rP*|Mx`3V9!T{G947D!v-k|Kt(V^?hlWYC8$>l9=-^__;5ai&&XRg@? zXqEI zx59s0_(l8nkqt? z#EzUyTrAl1z!l(wG1L2Lb&9v~_SyZFpkBXoYz%^DB^T8osd@Bh zMZG_8&~xzNS_4I)W)lH6g*@_|jWO8N6940iB%MH-1LLRMUr=urejGqoxJ>GTL<8@J z_!0%oi%jmBs(TU!B92ZaxQSjLhR(K_5O0p(obXk(A}pgE*Li2IbcXkwW0o<~a-W{4Rh=FcQ|4OE#BeJ5ROUn|z#i--@I`^4w}8j; zgC9Y>8GK*Ipu`JNj}|*dx+ybI$!JMPa{=OsnA+oDq+VPK#T3R|f_MutrYS4~KPlEc z>w5X2AhSt$gVIJiblU5J-U#WLpk6_aa!t6EN5-p&PKKz9bRDOYHv;wrHN86Sr$l=O z?p)ql!~y{b8f;~w=d1)Wfv{QC{*P&Tx(sCp@k^+jhAjcZu7&PRLxcs96Pji7L12pz z(~ZhpWrJtDrGS2t^Il`Fp)zwYv>1DcKTZP7di)^pkkS!M56l}mC#a;7V3`yG7X)Sw zZ{lPk9YHOpB5+hQl8`sV|MkR_73uY^IkB=_tD1JNd(DkUo^;}I$8o-4wrQ6Ub9LHf z=rA;37C2qchlQ3%rh@9SOSW{1+ zNwoXLG1H{Q1^h}qiwt1kAY9Iw(is8dYx25CS z%OYQBjpu==qOoMsfe1M0z}+5XSA2LsS{eM3<6NnC#gXv><&K5%bg`7rL&WOl^9Un_ zH9|Q_9ejurXuuNx2-XPV)4($kZw$dra2ZN2HG+KgRSr7%FgY_M!-DHZiqOy3bct06 zxt}Iv*f@3V#w}IYxkq!^LJi88NMz!{o2!um_f zGU11QljjVAJ2}a%Wlc@(JqOPTekC{fzz-ype9!)JLO}BWY14{+>GHR1H|gOc>f9!o zKTiidACq(r=g-`{gu@tSXx&c5bxfuky3GPi0`(i~m1>;{)Hhw1of1GU>^5 zdNT9++ipvP&wFhuc^3@5(l|qKlGmn_uhnoSV(s?e?;DNpYc&3*-M;%4{F5h`liPBU zEMUee?0As7itsNnO1vhpj&dL(n(FiLaWFw9>9B-P&nab$;@XX7qLEMpuAfFqEZO#3 z%aX2@T52YeT@pu5pJio=RPWD^4}N6b zXJ^*M9pm}?pES*~W|u0qR+dMV5{}+l*Y%Tb>fN$xWbhAc@7*c)q^{SIQ;oJRlm!I? z25i@ASdUYHCdUx1_2IyIj4Eu6plLEBRU%bX5)dYUGMaibM^&eB5Q&tUP;`=T*;Pd} z&<81qYE{Qj>Y;Q~)0p7YPf?&mO%{ODe8)h8qMsa3t|Hv>;HM<959I0Z#hY5GZ=&L>*p-MR7=#@iAc@wTwuwjXVOin1#4VJt;F`hcyN~X?L ztIMKV6Dxoc0}on=O+bk+RjZHT!pidU%HE3ufZjo0v~AI|?H-6jpu~tB;R%BK0g>4g zmCACp>chHC;AzH^2RukYQ!(Gb+Lp`?s6jw#?+=~Y$qmi7eCkA5u_?)0Ly{}faG@DE z3G%=#7EZDU;(ai4{Wv>L=e~39}2_B+y>d08y6_c@R=MVrOewVg7KAB0#8&sR+a# zfwG-?yP`on!PB4y5tbJ0)Mpq2Z9;wj#*W5UqDTYHnd8+?jVLY?P5>_ zfePB!a);-xdj9#oI68Pv{8$3YPW(@d#|Uot}g0G7`YDQHcULrw@8vSROjjlZs5^Ipp_fH_3+_h+L> zKsnn@Al>Y&JnqiQWAVeL`y^=D^xa6>@uV5F(&8Oy>%Yj0U3HVHsBRjJpQ;n~PVLdnAS{#V6xcWlk|p4^9|0-6#f8Q(A46S!6KUNAkGsWVJ6DsPFP9b&T zBq&+CV+Tba%&#PP#40`zqL-(YY7zQPnCi@aEID{u)RXs;dwVGPcJAJt{2){2e8&+- z3tf9!kE}Xo-btOi@BVWLt`@9A{h(7dC)CjrPU5D7Db};zR zL&2bp=%v?PC&Jsd3m4fg|5O}59&cXB!9~D-hJ7B9bE_ru(WX4oq`@wPrB6z7eoKVb1f^Ixz|X0UF)vR2 zwIdlav46@R z9x2$6;}n2~Bbl1Knb(Jl`lSHLDa}ow@wE%A_vH}uA2VzH_plxx`=0(;HPU{QkXcKf zUC!+)qxmCl8z!=pMfvVt4f&a?6vB1jCh95S!I;m>{!y!cz9W7)W~B!oOd{mp~h?%DDqtxTRFelp-jh%BbT3iF=xNAv7@gW*U2u8SpA%7`?zg_&CJ&Ihu6&1~$ zZTinJm&ObzO9|8Tg?g2qkA!IKNp`JWO(gk-=s7J|Dt7$&T}Ny#ug?Hzo)+uK-XkG( zONt&r2;$qMWgF-}6$~3h+%TJ|lr>@Tk|Unu;>I!NyISNj-k9u8;yeU1GL+y-x=kBE z?`oB6PuZa7;`Y_m?%;V!%W^`7(}mtf#8x5UOu{k%RG6-Z9q9c;I;yz<*|o@IBA;~J zP$p;&UdoMikw7Y97^xpkfjIn4f4Tm6^g8N9&Db3sDdf93g``n{AP<)8uratKmrxYO zLwFPuIB{PzqjFJQtWTxlN74cYT93GqM{^A!8aao8KDhLM!G{XyJbTDbM*=BGa%O?= z4#EQUMo2v$!|WS_nt@q!Ad*AGK+1!2h&a`qXZ%ZWPe`F43pqDo^yl-R%^cEL=cFAV zn5@p?a(WR~e)4=d7evlmS`5n5PHqlytH_8gFZC8OY3XKgMrdC{pt6S^{;iPsZHU`` z6@;^XE8R~y#iK(-`_j%X~X<L)dh=O3UjOV^%wg1YScE$jYZs3ol5Xr*7PiTDd|)+9|Q-%BIj&4BBJ z{1H$Bea?Odpuh`)2QoTT+Hu}Pj7=`ci=@mU8#(nRK5#QRs`;F_E|hW%WGaXzSHPKI zrJm5w=icPcTC#g&BU;n@#=XNCC}WMV8-=rc$jE>By!b5g7eO(HjVC;Gwygfv%TuH>(d}$Jgoh9Ho%tVeJ0T3_tbl%VF7(i0ionA{;P>w;k z8{;mgJ(nFAlE&x>B8p-`TW-luE6&lM0lur5whM;EsSA}Cy!Z>gBFlTP>&tAY#U}TB6~IiGGp*k6ktow zoXrXpBDvQIY1AnLik}thG)+*)gOTIW@;~qwQr|xSq3JEnW;A)mhOc9)Y=T0Yv7i;) zhp84ngEtF?!weyO=5#m|w9h2zfMv~qvNOx6Ur0svL%U>;Pttb@M(>f7uJcVM$89K~ z_QUNTQTldm)_0xD(=J~`F*k!3dAxh$*&aw;YBq2+{BG6*?*>dIw|P(`II$(;Aa%zo z5T6X6DRsnDEdtLEM-n3?ak?bl33_pb;7$tj3Dh_d2>VFVqAHGXI|CR?1%=mK+8|Ux zj+ZR}vvs0hMS1gR!;7C7r;`bL*@y#X%MH$;WR2flgk6xt(8Uy(%q&ln{PLtceFN`; z_kam!12A*wn|OYGU2Luc^bNKoS&7FeRsI&*JF8T_CR>o1y3X=>>J*o5iG~>D7VSjc z6mli_XF&QmJ;}T3i~HadVD4M2%d=*!)~vq>T3a9HdUOL7NNi3ZW(_2T=sRjVq?@YJ z=gKoEMIgkXmF0*P0(BvmvqZpRAx7cSlw*Tl2bHRLD%l!VGnfl3(!)@Rjdj@3`2Gnu z0#=Gkx9pyj6|kwr$BU~t*pG}fG^0v z3iizk)!U0r{i>_Z4gLuj*G!sr*S2ROkr^8YI7I|`5x;SH$?Iv=%cEPLZzu0HE@S+0 z9uW2t;sQVq$zy3MuNDmBXJH|EDlsfDZ6yZ?VuaJ-;!N+vi8*5})5}y0EKwLo82~|d zL}P>h91gvh$z+lL>??>2{V!Q)7t*crOczGnW;a^R^pKJyqa$I2VcY@Fcis3(wo-xa z_M5ss2YeWp_>g^XLW)s)=mWBQ-;g!AM@msgowMh5>`I>r0HFWarti&0B+&~CBt-{OeHLx-84RF+tL}=>RQ1~F-%j+ zg=OCG*fGrR_E`j>h<2R)51(LeD;l13Qx$v}H0;YAauQ6&B~xw1Gb@F%QRQv+-v}-Vix^YFC6a0;e-~9^T@n(vu&>Y(s<&r3udk0ghEas6!Q1N8W1&L zRFzA(h@INLQyoqGui4yZ-k53sKNG(*dM8^L{I%*l-VbS$Z%f1VnSlK74tjt>8wVr7 z?Uj*5d@?{t3MzcNa5$2$&ZprnwT@2i;z>5?+BQ!7E#Fj}JD5f27mG@$Gp}mgr zqAwHl_Zv=V5)qPYyPVA$u$y5JSp2KQBBD8)$|H}24guRO(xJvq&5Bem;?BYm9YU+v z;Oh`!ApUo_urLPoDL&6{mHX#J-*Ar5ls+Qr737b&FRLI7&+Tv-cR3O>bTV3r*+6-hO#$B%RSmAw;;sM`5 z{JSRNVK~>t!$|F;WqT8Xq4EBL$E$RkS>@5EIbmXTETy$VG8r5S9sTdw)cP3zv&fWA zI}5%VMRlaQNRTaZ&k>j67pUs+J<^Db!dB|FfonL%^1GHGN9Z0Fz^M|qE-!9>WZ!~T zESS*ECn-Yw_`Y&0kF*+YoaQdb$yPMS6a?rbJfVFa9Lq!12@HoN!} zZ*nd0)gc=`!xUWtsL&E>1=mDuB@MS&O`9$qPo-~xh$rI2Z|djXqsI0V_5I=jqfL`^ z*UDU%k`y6&(c{_J2jJP11tjBV;OnL1Sz8$@z!s2Q!^l-+-Qc+gUL6OZw7~h$h}Gz! zBk|^VBT$8JYoBwRx45u9K6H~Eu023%v5q&fMF5{7pYx=^wVi>-}S{^I8}W zJ2#%RoCQh3vcagmg{-7^wbXaKb=Ho`cisXWz9Cnvl&MM!9=r_!3j(BjIxk>TfS>IX zj2=mBENJW%Gp9H*1e{Y$DVo6g966D&faJxSkknYp?ZeZ{)7^SqgwpDjj%&fWx2eNF zi*WJnYZRbgXErV^qE9dHo84J?{_S36XgS?zX1Y-@#3|P01N1Rbug@lE4uo2osHg)s znZZg<>%N{L+yH2(cjJ5NrMTkLAqk(cVEd3eGP@Ww>uR+k3@Q5{s}fLQV#{LyVkwaB z1i_qg1#oRDnz*s2MAYAQWHkeJ3sGw_aA8l|@wlCaS$swYx5;EykGyT&XAk_n3WCW& z9hR&MgbkhTo}JxK0YY|y;`a&o`olDG|5;ps2?O$VjNIYhIlA{?QUG%y25A!WZ~{(` zWZuj*AxRSd_<|LSSuZ4FiMqH@$L=3bo$A(ZSQ2+R&fpW}N=XytN?8=o_ZQ#h>l}#} z?g*@b&ttqoDZmDohJ}$Cu|0siN;2q@d60}ZI0$IjFJJD@tNDgpNo3hkoy1%-2t$W? zDm0qnf)BmBzG8N*>lY29hjd>GT&8eMO)W8U?ZWzceSLkCoEsQ@>b?5PdA2w2?kpXw`x6G-EJf8dJ}hY}AUt_L^7rihBpe)3Ik0YuP`_`wHi$ZetU zu;Okh4U+Q@FcyBPpePhahJl5l1DHC5oMWp5M#`oSkQ%c!lP13{*Em)=yH;UxI0>_x zha&}{O?SveH)#PZ*=m>&OCYyJgu%ac|3Ewi#?=~w=%3~APo2@TQFlZ2^__6!G|f2U z2{LtMzEE%3l{0h!Qr7|K*-j){DvtHXilt}-r*ZtM6}-g8>fC&#ia3P(PYoX6Wbez_ z?ZO=*JO+yf6P#h&6^;orhz2~sDJ8G_zlkqph&0-2{-64FT=fG?6=^Z?M=OV3N2 zcjj6?3fntKm#GvVDgtQEu#LBRJMuCR^eEYnPoGQ45rV|^mZ;b#U?OF&_LSQ~pM>U! zBIUj(&SP1i&+cJ|SLh`-IeF*^0#ANP4GfD(sywbv)pqb#2r%OO)aS9GVYc(0_kab_ zS@!v#+F2(0W2JJ!3r3txluKj2p1G?AN^Se2C!b(rx825u+1RmTZ1{3zT#8~Shk!+6 zYAHwgH2mKnnU1Bjvwo&~@$+$K(Dn1ztNR?t^XIW%-hs6O@izE3O1aTRG!IEzV15aJGjEH!Kt!+D(iQL9 zkBDMH_qzHK+d(9nkRH1iVY?A7igOYVg}zIhxi_XGiqoTxeWZT93$e9(TO>3+rQ5g3 zd#|sr4(~mZFK4hWt$ZGvbQ)~{JRQ0G{hGQY4RHEh?!qh<%sduB}DlAVOn$j z5ppg{qk@Lv!_=Xr$KHcw35zl3bGT1Zw_r`ZxJ4-Ck}{s2z_;pQa0?6$BMMnl(1|n= zFAx3{MidJFK!Z%ra+vwhC!M9k1G%Er0Kv|nTtet|+L5b;fw)cp;GZpIvvntG!ukx6 z%}SMW=d-JGbCoS0w_Rz!#S~JKL-dTr_R@%u7yEX*kIG!n&jvm&sS*HeG6T>uO5Y*1 z^f6VX1ewH147dQ49J+vVICciEQvW*wYA9X}`j4;>-J7>XrHE61iHsPLxim_z>{hfzY5-1=-A0a}o+{{)&A$jh()7(mq znSV;Ek4Vi=jLs$U2MQP*OKB5i2HZd$a+)K7S5dDjhYB`L%Q=k4ydlx?LWiuo zz|N7So{l? zD>&`$%t7SN2HpxjV48DB<=e-ui$P}C>s>qe8{3Xm7*qI%-Vt-f&p43zj2}N<$;@5k zy@-y4f8j72+_=jbBMv?u^{y zqG!^^4|9DV9+zni6p#0!V%eZ+O(urS9!)3xbHy|Kil7fj6Hl{mUEC5 zE_O+7A;D#nCG`0K=GGS=JOri269^MQJENjB*5v^%BK#kWn7U0YS=IoVNeNBcpiQU@ z=_INAWicP>W#D9`WqJs3G&~H6e?~dtO0s-dBRIGOMI?k~OwkH57Y5EQyqGHpu6-wr zKqHaCUrtBGTWo8}ioy*Wb9p-J-Hy7$mc$?LY*sx$blIvD+Q|0R5oB}a2W$sndjDB- zTMyB7W(sl>#G;XO8ujbcdtA%N6e*AXA`tRPPfyx`G_R@zflPK^lT4FGsCqa+#)Fac z(Kd5Cyv;`xb>*5zz)tCn2YRrRQDCrNUsuK6&adQSPK1l`u81qv@XwAm* z%4=7?gl>~E0@ZJISb7F%p@vuyMq9~qhe}n*K$f#uSsl??MhMt{J`S-Y{HMp;?aD_} zsoT?qV)~<%uo1fsQDAL*@C&y;b^BA|iQ~47K&;on9HH`2R=GWu`e>!y9*6674)fy^ ztc7>j_DM@%)}La;#=V#rOMDl;VALyv=m9Sai~+1c3GyFLAy_2(}JOM$QCsQBc7M?H?shm?NIJs29ARlEUkT50868Pn~s_au71^N#F zp0#t)VzEI=UviqfGL85KRrva2V}++V71nk$B)iWe+mG`f4~-6=55Ck?s)D-G+`Zl=^FYc z3d-m{(D?5Te1P#HL5*|PKqVt*haw7jOgaLzfHV^r5)slQO_36$oG^Q6^4Sq_it6I>~+|!nZ zD4f=5S(er#wBP>JPN;#2mCFKZG!ZEqG*{WeS`TSiwOy0D47Xv!ez`NT2tW`|6w-)v zlXS+)<1IK= zN@rxjY1_GQ=)5e01a!O5P=)Coh2c;wYSFAlhGoNk{pmlc)RW0`aRl-)!&B3`5lzHh z$c*s@uZt(ka9nCWd_8Qd5Tgevc%W5_=L`+pi;;^XC;);>rD4PRO3N@zfKgn7b&S*9 z@P>Un@RZE!Krx(>o?+jkoRmZ)m==&9O4K98hl^nhn+(@&3`?(A#+qvIma#fX_egIT zbpYmXR|(!Jo=9EYnP`mldN(P;P;(nGab{s*-(Y?_l{KxeDgBAY(B}(o>z5rtZ0Pgz=!ZIFo zq@?CO)rs`L#>n8uMIgx(AAh0?cQKAzLz)}i7cXdf*t%hUUSqzDJlry^>lf6CbfWOF z9`|2Y-Hk0pqEDZ;z*R>MT=i<^)WAvDKYnTSCelEoH2OHL)Igd@b%C$E1v`T&gIA`d z5$2KLy8{#F8iNj z00EPy3dH#MKLwtEtnfo!rHb`OjHR7DQ97^^)chAOSxBHv-&aI$3q`WoN*VN zhpxH`2ckAL)oy1E0}c!LT{SmXh44n(qOsW!5W$AjDNy@c}rfmMdAnupmN^z-bo}EGr1f)ZjmjHZ8`-mkBXBIRLsM&RMmH zw5alF)cTmeCUm$R(B`jW1_5*k!A3J9nhJt2rcG1I?TM>9Uf)2_w-%AaDj`oQU89U|||DvOQ9x7=i1)6s|*yXy?{}yqt=g zGU~3KatR;cOwc%cdj!(r$KarVgHQ+uk?)PCD3*#PSVv12JqD_jikpQ(lZ9{>$ewqF zm21vul~R_^Z59fMqy+gIa`vu6=QROt{1JbpQmN!&E3QK+sFk3IGm+ocW?GqDwJ=e= zn|K}b64zg@3Mz?}Tdz4e30_R*#cDPW96WV$<*KoUSFms2t6p`7w#d*WvI0o1ayq3> zw03(%9PagCub?hYPanHxb{2y8I_6KUwy@9_8^M`<*Is+;L!3}=Jay<`v#E_Wue$2w zc@~_%*ose4edtPGCsrjbqG@S{uAS6+#qGOHb=&$%VyJ$?{l(ehNDvgwV z0Pc3Q>U!*BcmU%BdDNV{Hr>eObwtZ;L8F3xrv7sib9EE)Z`xYI-<0MI&}I-Va8{CG zq3U7?6m!P5)Q?q|gPPq4ew#ql7)l4df(svM_Ik}je)`H%4l%JOS0^V|{j4SC<3Jby z>W@qHz}B~3%mNo!8VvTpU-SphsjK2Bi|q}dhZ-d^Y|m+?Gh}A`tbG@89|(WS_}8=y zkGNU$N_p(hEhV!{N(-jzrN1dg8VghrG3wj55v<=AnLVcJ=palYrFu1Y@BoG4d@b?P%s_lmVrBGCQ`3*(wyo5zHzYTNsjP~2t{Hgj%ItKcqk+I_# z?&xIpo5YP$ww{M=$Q5y8XZhO*v}7zF!X+R@e@2S6ld~bXQvHw#e8|HfEOg{a|H>k( z+3#_a%r_7+O47NWUvSSG9H78;BVs>96u536*6<5gl&!oO^3ZrZe#rlJk3QW59B~l& zWIQkrXbrYmx*=2I3Ge|$a061oc84Z(l6Gol4JLA8*j;=OUAD!u5#5Ln-k(AAJ#nu) zo=!l{{gcV2xZR1oMnrYpHm=Tppb%ak{OrW!bp1bq3yp~nMzE%|4B{Er|9vVRPaGPL zxq}xHre+*nX%Y6Z^wWynU`z2!V(mvp14m|MG(mLqRfL;>4h^DD{&^&MDP zedsV>9r#S(pFC;%B4lw=E`YBg?z-HW7x-BTbMO`X9DdEn9%r1p898UYCe>}*jb8p7 z-H7J0syR8wapv#6X5j)e@~oWqZ0{l-08{U8_YE8^|4~{yhcGfw(1XevNBAzW`xtqj za;{+_W}O{vr(^kiqmj?UT1D;CZMY|ELDO)(X0&9g={JM;lG{x>&J~&&%jKi#cFaat zJTx;1T;U<|>J{F#iCDw(y`4zjf7h=f9}w6X&4#Tq#7X{<1%FKt0y;m3RZW_L(;E=} zVruWA(4g0~b^$@#aAOckPGR%L?IXmaQcWN~n&pBrKrCw{*+#r{7tNdU_HVpQ+riNA z?KErW+u>b?Z-=Q0*hm@5#{e6tpF7S>$bc~%K&3Xu44@EYx6z+OqgasA9z+c{MUFIV z0&|2J3b>`Fo2Mh16+c`%v;f6})pb*D#D(u_>6nt6ZW~2>0dPAyInnJ-Oh#c`Z3VUH zWHP;(PEJN49lq^Q4Uy}DZp2BsT?;CV`SIG)Vk8=K`f(GP>Z9Y|!Yecy%qW8W805pS z(+OIYa=F5$*ksu?+ilY=^FcqiSRaof;k_B}JF#eF(W5s5;^z>7VMh8y2U0Y|C7_X^ za6CgAWqv0uhR{!xXz;h#Sj3m33Ko#O#!|p8z+fJ+9WJexUJ4eA`w%t9_|A6{Bzm%e zI(*Y>lau?Wr(lZ#Df#-~V}vb;dLMN&62QFEr>Tbfz{>vpRm3i_KT{`QRa|esJ>D#p zU>b(lAI;Ui1vkkZm&NIGKs94B9# z-9HnHvW3A5+n>*_y;m!YBN)tB%^H6_G@P>a-fFd|$LfbDeM-P1)Sa1`?UpQEgY8SC7SHG7wFr-Ot2Eo4 znQ@(h6^FPeJnj#w9G2*TX0bHU=~~ITv3~&VGM-2@6N4`o#~X7=tJ|3CiR{1Mge*`r50ZSki7oX%Wacj_>)j=Jgp&di_x zcw%bGu`AWd)$Xi}wIFFEX%{sHo)Eq}DZm^|O7bzVXXCel{pPm}i!(+e!O05h4uJ#k z=|iDKbHk&DyPOmV-H74vY)?0o+ki?)dX{83$OLR4QSw);tS#^KN;U>B`jbn<`~Dru zmiK?sdxN&YkTw1_@2wKe54Qd_Z!QJ>*eE-+=cUckB#}=ZZ3wD+wFLYoaqS zAu;_7F*Sh%b_iapgB6-vhtqfJJ%|q)iCpzSD~;rGvv(qfKn-za8s_-aRHM*nK+Ky$ zD2o+1)9Z7C{~K}TjiYmr#@koTB|F{O*?hBJN4=@3rr8i$y9!+w@wz?aCFUVHxfYb@ z9ndO15_k(F%+G+bo`Yr)ZX+@*Cx;EM$N=%)D)H<@VJE1d1cr#BQa~Iq9RL|Y%tMLX zvbklJ@=R`cBI~h4e)G2}k?wH-31|NRQBFcqqgxs%!@OK5k<720^)(k?-{b<^kQ?|w zazBt~aAKxVMa!=F2k@a(B^UgImno4M6#9Tfh=G>>pkZ92Se|6*8pHS?Xwf>}j+eW> z25NBLKl%&x6fgTLPwIZjD>>jeg%CIAd6-sjBErKmB0NDNyG&L_dSUn`S{|7$Mfg(q zMUsrdeYpT7J_bxvieROgS6&!BoPG2ZxXDL3#=}EE~|0!OINkw$Zg9T621HxgiCu=pJ8$twQXD2oAsY1yzQxNjw-&#Z*u~*PzYe`LZ zSX6urp;_SXy>R-#wUuI4Nb^rd>pT|WmH<`|4s-a8<{$7YkhrmA7 zY8u_g$pLu1j`$OS7D(8UsLCq3GQ{j86udu>4j>@-hnr$&p}pcyB7ZD?{NF-+PWk^u z91VweyI592Jvhw>lmLkk9VstzN-opAJ zpJ2(B6HYW$hVH;NEh@1xP$GP&nXA^a%_@{sP;Y`n+N^Jq>IsFQn5w2t2MZYv=#`H+ zMztp;;DbNdyugZEvfc&pzN7;)ytI}n&xR2%WD7xzaKGrYP9~a4IO#$b*&IR^228gz zxl^J%F#!b+nnx5n+j3cf6?(y9I!*)yc+VQ6p%4!a$~uFe)(G^hB-Zq|=dlZ6bug zWT=8mA>$KaZSaBf<9DZSP2D|yKFUJt{?gR+XL}>?{`j~?DP@kPReq(Fm*Q&gROw+Pi03gg(-u`;+S43 zd?z#@9i+c~VQ>^K)M6!+OcVs79wtI7pzGr+gP%@|x4_CUOL{PE>Tq!lEBZ`KnMH5_4!h9YJ_U_Q>;*5D5br3kP9)CdWGsA^fWVRQV9 z8+OK`>53jKj?cqjOV=Bv@meGtYb|6`XB>odqvO-yH|4E<69jnphYjeTfcPNd)56aY zq+=TK4iso3rHG(M@{=-LD01N_5B%N}BRaFNKfp`%EPAnSDpYOYIJL4kb$x^l_m) zaS_($AH)mNj**gPQm`HLatx6}kd4+mqtGY^(nK*!6h=_%y=bt+2otmM^*K6J?(&GE z!#ZdU$P&l+!x7RXcm@A&Xqk_+;^a~gxgS{P$*ZqT0r^#zVFTK zt}Lge{Nrfn&6_uGX5Rbm?|a|FwAz?ZZpy+B-wsNMk>I983*oCpZXsi0OJOWam=mxZ z^LsCuXux<(i;G~wJ$MNF#ajV36(g1cf9mqcYgZm6Rb_2QNHy0ujr|PX@ir7QL_xhevmV zY9JpZDm#Oy?8fbpgL_dl_+etX_Rzj*9A`?rli4N)p5}^U(GXdLu{NtY62O0rS zh$a&gfHb*$Srmx@T9MmbhCZFeo-sh(pQJz}x4}l)DpfS7qg`F=d)s%06T`94&Y1m9 zUt@D$v!SEI4z{;%49TlD-FV}|^*~~Ld-4V$+fwUn71hBWY@>!809#vAMWc6h)$xJ8 zVF|f&TZ9DE3?S91@q_ulNcjQ4=_9xjkK9T&x+57%#`X~?|VG9IBmm5SD>pA*0-B=kVFgl?nBJqB~$u z#>ylFcR;c?A{h@OQ66vKL*zLF7wjJqW6Qr7ICSXhL?S(!$!vJ=5zyy#myC~zu`w2| z9`qe*4-%v-iS#Aw#JEUbgy0$Li3_m}>CD257BAZmF*VJiQGK-=%S*@8i~BEI^yhmC zv3qUMJ6gQ`v4LPLGti<>*k*@-ur$|%f*V91I^3YyH-cLdD zi!oP13BtJ155XJ+U>1aF(6EcCp%z3-=${FL=j%SfX;h2*m+vPqf=`*(>ej;y5Jkx7 z25;dvQc!Xs*hV8ARO*C_s-t|KI^OB7zT(&S_@5c~DfI6n-JS3`g}U22;GH6{rqX#U z`TIkUd{X=d(Ui%SG;$FfAs&2=*JYS6izfl!OyZN78P@TM6iPb)BQFz6cIyEXMT`Gk z{_%oi2*QgVO~7^4dY`rFGf~8>9@}KyhZ(XGN9WtRyW5UI^oi}b`!trqUA?uWyuL_jvDCb2;gu6dQjq#hp;!) zgRn@g1%KL$RUMPCaqxGvlXU`g+^_;7?k47mFqXc9z5)zv3kA$!%PUCfHksV;Kh3() zXbnifu-nXh4U}%j1+th`aWV%sZD@cZq^}T-!3<@&K@a7rzoH;|nprL$ua{WBh3d zMtQ(+)r%3M5j#kM0zeg{r6+%s&t-YcK#&?W#A!+0^ukCX98j0T0gg5^J#ny^S47wW zIvo%fQ_5K&i0H}(l8KJp9f@QB`i&i<#87e2gaoa54~D`BiGVFh4cy}KRS(0&y%fC@ z>!3_3U}^VmUD=D)$*rIj*ax3MsQkTmL+c8HiUXu8_xwESA$y#ug@ zct?!JnkrVW1P&a&WOyhP+5iW=jf}g7H+g%>cEY-t23Gc)CF#uIftWx|Fr|*+`i~e} z;sxW41YlUWM&H)%u1*hiOa*$7+g)h+W($2_`?DQB9L zBq9xywBcV6gETGQ@DzJu1!Ni^nnTbt%H}P`8nV_5<5td9)S!RB#XZA=h(jaDtS|K* z7SHuLUkAkuc2MSyaauuwXdUcfyZlQ8rv+_&DLG`czBJwr{G(kCGk3u<5Jiy1o$H~w z-P7I*qgU!$14!|MLfk;CE|UB_kP?_=yoLUg=m>8jq-_3!p4W=KVwJiSPrzd?jbk+u zc~ZexZcbBgUJ0#WR+l1v?2yyS(hm7y_-fjws!my6WhZlpXQF zXM&LZ<6@yxg}N_9?$^*-36xER)(k_t5IT*oh;|?<0Nbs3vg8=!&_P(zA#cFA zn64e|NfFKElvt5y8Y!_r!ju@fU4PttMHP-f(kIaXa$$ zb{wB8n?brALJSYfCp%fFxtlzSV#sXLIn<6^m|a z-+lencA(cJ%X-l00B5a5*kQ;6)sg}=VXy!^0av|6N2p|b5GyT2U+_opG6EuFmL(bC z%wMoXA=eGZ{KZ;s?eFi@>xYIeginnIgop(WB#VzNjZtu_sn}p0rlq0FT|T=LKk6jC z5m&_-0V98ZU~yuWvkQA(gHMM_%L?TO@NL{%d33q z!~}}qf@Dwnbo1+rn7H5>7-;nem=~}GBVa5LI1ku#1_0X4I~;b>k_iluQ9UtkD5Fy^ z_g2T~|Ft*KVr+)iC~V3Swmy6JrcJ4#{mqud$Jkr3Mn2LiZRGC=2UAj{EQt_QDS><# z3uVUxHfpisfk5n&d=U|-6y>@%sZqm`Kz~2tY{fiv6pO^AM&#zBcVzh;VQSW_-L-4~ z)uRJz*3y!F>{XFSnY#VEc3~a$&kSpiQV6ScW!rcOL4MS*f*Di`89#43^#N_|lOOyO^6};c@tZw%B32>c=9qSt)9Kd8~ z-}oaRD*j>qiLDU51p6TzE_f#JKw=b-aqK~k*L z(R1;dPzvxX*M(AvZ5zdv9Y{R5B?(CvB62jcRumGgsbn1DE*KAj{Q|egRHsPox#Xq? zQbN7~t1Y?ygV?i5js%__Q!rh?sR$H7I$j{c`ThVC<_gSM8_epMR_yoNuuF8L zT07Ty>ms(U>rA9N#4du?bx~}?7Y~f4k~^>5+Sk{KMbcZZ+?h;`2I3deGwE;n=e%Gx z)@qHdD%^@qD$MQ?NPktoqdpg))3jdDJe6#XW~ua6LbT*HQ@6TyO022W@EVB(-2bKEj;KQSBnV|GM^ zdi2Ahe+f?UvG|4lE`j?-DKA|&5o6i9(|;4 z!e|&X>fs#bx&A{M#}`PoVWhL|7?R$H=%JUtelI;Q6dG;s8Sd=$7g20n(;J@!VwMTD ztj(X5>b>J*XAmnz26|6jrK86qIrnl3@pmmL5~yJ!^M;U}Bpoa2nm6c$Ib+L63&=0V zfSI13ILJR=G;C^-cpUwhQ~Wkg&YJ48s3cf0vfvV6VGClBpdAQI8HePM7Z}Wj@QnBv zPZMo>Ko~bNjAf*-jo~`{!Xvz`Fz^a84H{xz`^AF0e%wEb`x){0=j9!1cMc5n9%egfG@3ZvivX`RoiC@{>fWv_ z57)mGpGV)-umh%H1G$pqk<9=<0z)!!f#&oR)j$bQh<_bjdxyKoDiRnN89=%-N)!ZW zt%tV+U`R4L0&RC6@TrKndV4yxp#y1`gBDzBN3T9=V>7Y7O&6?N7qD)O#`d&zb#)Z( z9UDJ13-@4K4Js zkqznX(ddn8v<-}F_R#pn_s({7b)m1wo+!F=*Ix8|>Z!ebKE3fZKIqoRfb)JHfE_dk zUu#Q>(rd7>9X4xxA8)e+5Mw(hW|Q3`#G#OiXFFL5DMOz@-jV(;(yQ3#>gAGvLWO(J zT`b?f+7fqbDvGrd354QZAlfeIMd$!lsK!z!wi4a5`Y*wj!$G8Y9bFs^#kRuTp)cv@ zv>01YTw%b~gWm=iuYhTsi2LDXj^Y_)c%w(b=RC+#+^)5k*lJ5Kd+id8~qcDWQid2 z0TL^8M2SgY&#kpknZX~Eoymk!1Ca!h2&dZDZr-rodeRMOO1JDlI<_dbki2Q^#lWD); zilc2>##)h)0*QC~uiA2a^Y&0`%iz{qw_USoL|oIoXVbM?Z{0e0K}>Gne0M6~rhyXPVo zQR|3k-P0;YiTEIADT;ehY-wzhTNcoSAk=`(FSF$xns;01hIr>2P1B~kxVZcS4=g|) zJs;^A?Au|o=z0X2-VNN3C^P{E&AiouBvh1PlF4*n4MgN4M-~>296`bucni-O;5!Qw z=5Qt>B~od4{K0C04i%+*?8YujVHXEQAMCZ7`DzRL?TTf~lNX!%E0i*?|@?Pp%j zSxsWE5H0ps@3{C7WG)XjNQd1{S?o6xbv6;q|I=m!)Tke@OsW|PX7oqwfJLqmNCzW$ zMe-Xhe~3&vgg>jdCLqgTx{Qq#5YE&p_R(zAi)YUGrl2#_Z1pAuq_k~4_b$_cq3vwj zGWm=tikQQb__gV$$-+e_*^b#${_FqVTKGp;kB8^sS zf|$St4mDxcD~wKd)jrbGu*sp()7Gxtx$7dMr~UZ+xCEGFnFHVPVfYFM5DjjkCjt#i z9h;3tiC)o8xSdEbgotRST}0T(!hHr(7}O#H_shd9CW6Mph#k4+$i7T5wdT|uCn7AY4W#CFj*i;0?Yd9^&Fgyo%aPlF zGM(QHykWx*s~?bZ$$N>AI*d3I*iN6^0+e`Vif^xAv6zLUdJQ;kzo&Mw}5N zrv9~q9eu~PrBdx%lF_yC?yjvz(>v(1%=k! zi^Lx~BWn)!1p__1Ixq26O6aG=I z3#z)8dqR>Ok{<}(9s-^{2)?ovvO@#jjLVF<9cGCfX{0O=`s{@Sv4kL{US#I+^302# z-W}UV(mfQL2@(huU`;p{4vGhn`}L9|qkb~t(Ib~2k?ZLVJ9k|`q+)2#@Wu#23+nJf zG^`Wrsm2J~2S}4XM-=H#p1&Fr4Coi-HlaB55o9hIvC`%Aai9FMn0)T}a++gmF}!D& zmX@&Q0i`qMjzt`n&z@630i6(d%eXdncI-I&E6>7Td4^&92(sDClNWCDxxrAoy8XtVf7HG_-qF|fU?qjIJ>J`fycQ8oTX<%iQWqza>r=7BU{}05 zL!iRcpYHjj*>>=Q9pnbU7Lsv99Q$&>7~rP^Fz@BrB$EcQV$3yu`$oF903KL5BXNV? z7~n9x7uh_-)`0_iMDot0*mGb28#}dZ(BVIxh5ZYmJH3Yv&Q2dVxOS}+LG`*z_l$Jk z{&-qD{rKCvNA_HL?AQr7v4S#@B$*T;s!0XokKwr%;oxRSa5uH&F^tSZ$@>D>V*X2# z0p8F*(Cd(cR##>~ndD zo`upmz4Egj^4YR~{2X;ky`xj~&EsX_1Cv-M^Zb@qV!RMZy)j^%%k-?G58@*b}z1XY{!m1G2Yd+yA^I^VmiEuu-0*$V-+?sR1xxN_}^oZFcuV(dx@G- zc|}vKH>QeuV?h;ghy|DPVq>JeyQl370KQa2e0cd=&8KhZ>RLY2w_`^vk{06-#Cq9!PjQaC>jl+vFB}yd+{nO8zby4@>#Jl3f7eTLaMvFJ^EC< zM*S=T9+-w7^$g%X04%Ot{pDRGOM z6dSP;40|%efQ{wfp)e&DAS#H33){BuKd>EXjlkE>d>$Le!i@X*$0G$LZl%@Tuy-I{ zSH@ehHYSGjy%$m2ZQHR=HS8TMR~i3HqNR`4u29w*P&3cO280uR$>Ap5YdA?JRF>yG zgj|8FR{4)-fL0LmtriwbTbC1Jag4BJnaS7KgK1vI!0Q#7ia?siMmOjo4MDaM81-|} z^7C`=FgN2H=sPgzViB?D>tK`O=rv86q9Y-u0sc*WS_BkG(P; z7)d3eaQCH$j6);Q{fu00q-#p-U)R^SHVGcnw+R7+{r$IJJFxHK3tsGWt=~4Vg*O9e zrKQ7&(Zu#c`@EQ1jO`M~Q0;^yh4_;cEjS!yc_Xzd^Uvt2nw8Ql;J#nNmPX%TtZ5+S zxk=yO{JhQxD!=ZeARldKsw^Lt`Vu=P2&+!DO7M?{B)uDbe8aeVoy$bKmE zPrL3qB#|c(l?I!BAHbL!;T0$2{uPczDT$s7_02awI}uuQ$5mGj?m{53uWL}wmK`lm z!>mBBCBB4L#vYr4%xUQLX+l`J_9-eDQ5Q{{A;?4|A@p~3cCdXLpScA)nDgWg4+6&; zLIduntH`=Z4FLv-S zTiSL3LI!RU?MW*X=nhCb5W!xh9S9RAcVP%1k2;fh)3uF|Qy|zRQE-i2a z-i9EMg+eJiOcBO18H$SWV}AaKV`-(@HujJ1yTNlkY`bCKX#YlRAcQ4TXpU?EYg^+8 zCRZ?;k-%p|-m>7zz+y_QSAcLv%|MVrmewU=@jz5l8^m@)6-0YU&7|Fg&mGvocaS75 zBRBA{@_;kv>Vulfi_@T%pL~NAxY!^pb&*P71vSN;0FBXV%-6WN zFqTfAId828E0745@TLQ-VPne4q|JJqPunj-NCd>1KFkM9q>xVrBpb*fI6}lGdP?C) z5GDaTLt<@vC@^k-++Rj89tgFc`lEPK2Xw8}ZxAqUbv}3;0m+F01f+FY14*oJJC4O0 z0lZ2Qw>BaJ9{e)p*PBCVShT@*T-KFF*R^6!+`11~1 z&-k+ByQZi2_VtkfDNaM!v-;9|@24Azok8GKI@npH&VJaqm3p|XzJE;OMbp#C9Xl>E za^gihb|gKU;-YvttfMWOO^8UJSr>mnJLuEA%|fx3rBUWK44vW|FGO;h@kqG!35Gak zQS__Kj+rs4O5;!5`BJnczzT+5+KR9+{W@0gdfHONHuh2wK}l6 zjTk5F^--FRJ|B*RwjJ2+;mZM-AG&Ttrk2>Dk+U>AJi*>^k@tK@P>X*APyFASG7ljZr1uu3EwJsU#t<_3o#sbU|Cdu7jsHkGUjDzfFg*J#;GgusUc~Wj zqUd@?35!m`V5Ppkavk?(vXcNNGlG7#nS%hRuR@|m*gqCA`+57?r zVTXRiyn|Vba}56bS?p={T^OdvBy{)*i;vV2O#R(hSUgPDenrx{dZ_|sQ88EGH#3qmp z)ll}4cBDnpccFoxvV4HWf~`Mbd}6f|pHV)jiF+RAOYcK!4w{zfAwB~|3U)*|~37#KMh7n(W z<>$#Dxp&jTA!zW>Fd}30i;X(po&0hvo!PVP2<^K{{)r{TozC)J4-k~_uEe8QA{t>uvvCSX*WRun)-^~A!Pl^0 zWi$>}nGmDm2~ZqfNDJ3AtFfj=5pK4$qLS2H3 zFvO{W%BTgc{#^NuI(VpCh1RSY>BKVKh=q1z zdxke)PlL$r7|4pD`(}+;H!S+Qk)`lzWEXK;o(ZcVyNi>INe!zTgh`B!XLW;)KJut1 zD?-Cem|wk{5!!=bKsWp23Hpb%&HgV;3MmUDFk(gmpc<5@sqE7tv%}h%--+OQq)~m; zpTWkZcOmf_0V){_U>?9y`3^q}1V~Nhk(g-Jq2+IfV7Iso)>z$nu?~gwJzBwT2IoER zcjaY%MJLAxVcGJ#pE+;wZH-#-B6{$-frn$wWd7kG%-Q3C!1}uafiv*4kiE*}9qEMc z8D4(uGB5!5RDd0LjU5>DX4pQ--r!Ms;|W>^l?$xEtam}O5n9fNQOu-9)4Q0{VApjR zVTA2!C@Y4D7L1AMU>XyfGP1-6!cL^6BJDz z^%QhOkS5S;jw@qJng8L#DQd?q3$m_UEQX1Q5mBQc>i(HVf`D61!Z*1UniG^2<&FlZnu@Nt58l2@X z(cpyRBI6Iv-alt-G{KEE2DoVhP1=V&V6aE$W}mr%^BE+-QZr}`g$KaY0YTbe0iFJbYNGx%{w=>Vyt;w79aIQ?DfYd(r*A0`FE2sz4h54$s*<}r z(-!(C>W3lo=oXDxKV*f=k&lJ-Lx15ii`(ZRUa%X zICvYFQ`FYC>oE4Mi-Gq&DV5st5!P@;PZ)x5AMMh&TCzBbcZZ>tbwHv)TwgjSJ?}N48zjqftj~H?wg&ODts6JOPiA$N)=1UYk9^5H+EbC( zmMz0#+}i@=(DL%FSftcwD4+ zC&?cn2ztlJMLV`95jxUoZM62Abl<)rv^VIrqQp6vQ*p;aeiwCrSg@xcTg9~?|PNR{LMS`?Vc$EhN{w3Mbg zno_dO&>rj`!aDw~@M=;_6nx8@0lS>HI50#82wJ=f8JqxG!-+#GKUP&76kX)6cY4z`FTJZyujF9Om412 zoW!;qvf9C40Sw3g%>YeJ&zE#XwD^8$|7d8E`E6dR+FU-@p(1!8uipb5 zSI7;x{3!YSmKV?U2w~3oyBW5Iq1VtJ*qCtu5nzfJG5be4HPm?n1rxGL1BWF+0;xZk z(?3Ox7UO9SK{daF#Hd;B!~%JQyb*FBuPOup5qOZ+K|R{fIP0-k4Fe*cxPtKe3f%Sf zSg5P6R+qa%vA1JjA8xFt0s#0+tD1`b7%=|#gQHzT{48bc#Pp$%AK~aBD=`~6Xlf}0 zVqiqW8AV_X-=!zELsdQRaw5|k-DC)3XP0N~CCu{#@8u=4LUWBUZq>0x!>MRE@EvCj zkSux!=>1shfkE?+#+pkQeFk@+l@B1q6wdyfITZDSi%Vy{KD`6htTlB+9TG8U=@fCY zF7bb4nKWeqzW*GrY=L5Y(<@8Rr4M>#)zn7A4%6$^+n`=od*v{!zY|_Lg4m+hdF2H1 z9e&p#bf{wj8ofcxBbpMz`d|Hm}}p*&&|o zmBTH!iT8NrNXt&^h*wUuY_a_MB=vu!R9>j$r)R3^t&`i*mz9du^x=8OEzLQ%I2AWv zDyB#GUbu5`XlQh3-{?qsYjcbANz-J1dhgDmokQE`ns@Ww%PNkOxv^Bp=Wd#D((}&5 zfSaBxxz%*JRIU}Wm2`d*eY;LIoh|0l)l#W2o3HL%(fi&sb&}>zW~$Y)i-ihPctqB` z-_FU>+@rS7@Eh^1=V=4hUTP_0v*ii`W2dp9Z?z>2wlE22ZMx+$Tq|m!Xtea*e>N9(=lV~GE@)t|lc z$$L>>!F>)~J~!g&1-wHJ3~UB9X@18E1i-i`&*7@e?_Nf!4A)QrX2J@t5bt zQz{&Pj2hqnr@beziv~373;)$_|wz0=u7mAO$gK7A_l}(u}xecwu>Di zBX+{2GYF6SZZRzO2<#anM#VmHq1Z1j5(mUVaY$S&#>8Q934HRGilgE(aZFq;t`Jv> ztHjmf8gZ?-P8=84iyOp^;wE_QZxOeO+r(qU?cxq`r+BQmOWY0nYgSB%Ns$wdn1Ww_ zM&!jkVpbHyoG6NtD2o%KB3w}wHE~kRi&J7joEDE0j~7o6PZalpS3XHRSv*BNRXk1H zC!Q{zA)YDzLOe_SrFgb@j(9E>`92{2O8m8Wo_M}^f%qHoLRd^+EM6jBDqbf37P|?Z z5w8%h6t5Dm7OxSn6|WPo7jF=66n`h)B;G9EBHk(<6n`(?Cf+XoLA*n}Q@l&OTf9fS zSG-TWUwlA(kXF8m4~u^k9}yoF9}^!JpAerEpAw%IpAnxGpA(-KUl0$8FN!aTe-d97 z|1ADRd__DgzAC;ZzAnBYzA3&Xz6~3}cf@zazl!gP?~5OZe-l3xKN9~gek^_>{zLp! z{0!?mej$D-{!{!){2Dp;ek*<_{!9F~_`Udp_@h`Bk610_6tg6muubb|KMm36gsjdiVcops#0-nzlM(YndH*}BEL)w<1kjCH$phjpj*SnDq9 zZfo4iS`*f!m9rdc%9^%jth{xPHER{DIjd-utg>~&s#va7wQAN$Yu-9#Em)_m$61fJ zo?t!Ey4PB?o@71QdW!W_>uJ_~*3+$LSkJWn!g`kVm)5hb=UC6R?zbMW{>u7m>v`7m ztru8-W4+LNk@aHhCDu!=msx*nz1%uuy~28>^(yPt)@!WSTCcNSZ@s~KqxE;zo2)lm zZ?WELJ!t*C^)~D6)<0P9u-<9C%X+u<9_zi<`>gj{AFw`XeF%vJK5YG?^%3i%*2k=m zTc5B#X?@E2wDlS5v)1RV&s$%x9&w()1{Z(857 zzHObgzGHpY`d90F*7vO+SpR1I(E5?}@79m4pIHB4{nYxI^>gbN)-SF9w0>p%+WL+4 zTkCh$e_8)+{oeY6^+#*jdPKHJWU0rh6*RX5L8fJ&+$j6yCb?N|kppt8+=d*}+vN_KkvrusIVgwZZaFOX z$Pu|$j>>)VLb+dFBoD}g@{qh(j>*IF5_v>kDv!#``H%A4fP@)mikyiGnv-Y)Nucgn}gyX4(+TxR8joRm4~$SFB3XJlU9BWGnn&dH)I z$+A2lE7Fx!S(7K_ygVfrSe{)2pne5ZVue7Ag$e6M_;e82pF{Gj}h zT#_G_|0q8qKPo>aKQ2EZKPf*YKP^8aKPx{cKQF%^ACg~`Uy}bMzbyY*{)_yId{}-} zeocN|enWm!eoKB^o|WH`-lZL@;CCg@^|vT>bAQN3!7TC3Kn^=gAkt3I_+^{Y*4v)ZBt)K;}kU7)tB9V(-Cs$FVO z4XNE~SnW|GYOfkq`_zSMzq&{rPzTi^b+H;#ht(zOh`LlARhOw_>T-33x>8-Gu2$Em zYt?n?xVm25pl(z*shia;>Q;4|dW^bV-J$MOk5zZ6yVbbLstGlza>`LtYFf>xyt+rt zs)CwRMO8w+=M$=;Tvb&ybyCf%Q))q-R*zGUS5Ht+RQIYy^(6IV^%V6~^)z*#db)as zdZzjd^(^(5>e=c!>bdHE^?>>-_1Efo>iOyg>TlEw)r-`N)l1Y%)yvf1s+X%X>J{ph z>Q(C1>NV=M>UHY%>J93R>hIK>)SJ~?)LYeq>hIOt)Z5iRsCTG$s&}b(tM{n)s`sh) zs}HCTst>6p^Lco->SOBT>J#dd>Qm~|>ND!I>T~Mz>I>>2^+ok1^-t={>YvrW zsIRDp)mPQm)YsKF)Hl_))VI}H^&RzH^{?uC>ig;k>fh84)sNJ_s~@YMsQ*wuRX>QTKoI*;U!sp7E8S6eH;?Jd^%eR` zeU-jiU!$+p*XiT>dVPbwQQxF**0<$JxX$VcJ*jir(NlU_ z&*(f{qqDl8=X6n*bXlL!747P(uIZC{UZ2tn`m}zWe!PByexkltFX|`hC+nx^r|PHa z`}EWGGxRg{U+8D)ztqpx&(Y7-_v;7rU+KTr&(qJ>FVKIZU#MTCU#wrEU#efG|5m?T zpV6<-uhg&7uhy^8uhp;9uh(zTZ`6OM-=yEH-=g2DAJl)Z-=^QL|3SY)zf-?UzgxdY zzgNFczh8eqe^7r&FX<2Kf7Bn*AJrezAJ?DIpVXhypVptzpVgn!pVwc|59u%JFX?~M zU)KMu|3!aAKdis1zox&gzoEaWzooye&+6~!@9KZm-_zgMKhXcCf2e^&j*f^|F4%Zn1@JAtYbf+P0z32JMg? zwj*}bj@fbKB2CyyyUkA7?TEzbM5^^}yT|Ue*Vt?Ab@qCDgPpef?2UH6y~*BeZ?OlE zOKY2bfxX?{VQ1`}_AYx6F+98NVSA4~V(+y_?S1xz_I~>!`+$AWK4f2PkJ*RqOY9@| zrS?(#GW(c)xqXFwrG1rswSA3!t$m$++`itv!M@SH$-ddX#lF?P&3=r1yM2d!r~O#_ zF8gkK+|Jq)_N1M&orrU4vXGt2R-wWLX0q-~H9H;2l?qV3GH!mlcs^M)RB&83Q=Q2c zZRbQSTX3V(6(?JDDqQ#H$d>k0wl?WhBj%9FRr2NbnNrPlGLtj;xuUa>na>wcGkgQ&6Nu{ z6flOZP1WYy$>z`^hwmxXre`{4R-T)?;*Hw5tUKG2Idy{Bu+n%^zLzosU@ zWye(~9k&{#AKZ&aIBvpBXtm;CMrc~&%@wtBhdHg4GgFn)TxOz@ot$;5(QM7dOcxk* zF~u`gE=4Eu)yY!6$S3iMQlXkDkS(K#X^u^lO0yaInZpdnCbM$@sZ6C*1we-;0RpCn z$(d}WirFjF=86$>GMz0}t5IN28DBe5%2smrWT6CGM|85pGd%~GK_7H7RjSM;xdf|5 zAyWa~;A6w+uVmgTHd(2icJh@HKQ55VyO^nkP_6_(BybNp1?OZIL!Fw+7YNlR^OZ@= z@F{xh$W) z<|~;wOkilDG>7C8MKc&3UJuoo3SquS z$HMesRh$&6DAwG}T)tRygDz+k0I3>qok=3dwmVY+SxEu9Pv;9fBaR2$Q3Hd9>O?VH z(-_7~(K%I3`6qbkoHGehU8*GgI=41yYGMxHc_veubN~{dhBbg0k*XxX3slMg7Z7oB zc0~9=8YfaDUF&Iy@ zAOp0|PF70bLIeSAE3Z)Fl&NBxm#LQULDhxcl_X;t69S+BNpmXQD=%?fhA5)f51wbb z%9X0FsdJesQQ!0mh8#8O4E;5)+)RJ{_7Q#{=pr!BJe6O7Lja21HozO{R!J+ z-d(7`i!_}%3r^C%R;vJUiMsjk37jZWAN1~iD}0dm<^Xn(Z}2<^gt1!1W-$@Sak=#NUYw^R3QuQ;6Ks4n15EBF16M# z8HO3DpVx|w+lZXT>sOfM=!sgzt=f~2uu8=+9jdir(J6qf;Oj7VQw1l;WiY>}_oYQ} z5w~r!kS{Z*$uR!_iAaIY*C1QWl;(-g@{k2#@h;Z@*0IUj1m+3^6GNEmaEd3LLaDrR znnKR0GFSz=(o;^Qve4B`0GdW?1sPy+m1u5BRII(Z!hgXCS9(JQ^cu>k7iG1!8P!7b6NqWxbT}ezF^oyv%5XcWU5xYosp`|1%9x{ z_i1YUA^<;WdVpY2@@V9yRW<$)HDRIG10hSVY434Fzby}5`n;E#Ui19-^6PqE>vzjY zYPzeswPJP-maJ?ggue_UTl^l3;1rQVjBBkNy9bOe=ip=-96ADD5?%-r7|0#Q79s*@ zIj}NDCnQ;AsQ-u&u+a@jFj0G==wO@0=_EdsRi_N-c!s{(#t&rBwU9N6`Kbl8$rw0p z8l=uu7nzy2ggMdo{;5O`Jj=Cdu5V(F&6%5r8F_&R2KY}l~QS{#}kyyI5C&^IMm83 zK!29_srPp8o(ZU*Zgt9mv|gOXyRgj0!-psE$t1L%q+g!N7G{}>ru>>F)bXF@p??!l zp3|C9yKQ9;gxj4ft9&|m&fNxX%cu1V%zpeqsMlgDOb`BmRY_8y^bT!vBJ!C~o!#A5- zqU^3{!mkkp^762ObyuR5608Rk`1ZV0iI@`>w~}0L{?xAKn&y{iuIDF&xQ4%zOAth7 z9amOr(_t6Vg3&8eF68%8!T)gn&YqQZO%FMzH9scewPrHvmFb}|%qbZP!0xO0NthGZ z<3fu5Qz zPUCCL`N_O9kI8`j0ooum)n?cXa}CeVT4p+=diyP!z(~!PDsxeW9;4p5o?y(BE$#`) zP8NmYbP7BZWGwG7Sr`PX3wo~R<|h;9GFi=VqzI!Fy{!T}pG)#w@Sx*iSx5zurkb!R z7xHdZGw^GEt&VfM23&#euc~Ei50!aZOH)%eSv;}@H4X7nv&f<$yid+5LckzFTLA@~ zFG9oeR9a((GU{B6XV;f{bQ#7aQdr0|rYN)q*9$otoCG3kqza=$X2u~I zE6nBje6BhZ#PS2H04rdhaZbV{#RCxYPxz}N z-m4SP`05>lihsgD=ASU!wR*Ss!i3*NzBpA1vmu0xSFW7M7Q==J&}SMWgMpr)sjij1 z>ogV`mg|aRLji=)$x0*14%!Gd-V>Vi-Ky$KFK%I&sVRQ)L&)9m}t1zk)CCD`0 zp_!_{rdoj935h%h$`Np9pqUk%0F=}@nrK2B2c}SOylUn8(9t^vAlQN!RnZA_GBP}o zt_R+kD-6w{>P&5Jg7oT!RjH|!0lm&9dQ1T68L5eamuD928uV`9d%=M;t{G!}7RD!b z4fFtF$Rx~ounXb)bF$*PVaypU;+6bKCpZDA8U{8Pq#aPfDR?WYPJ+~2Bi@;rXJ>?0 zL8D>(87%){u$r&(xOwy5fFd8$nm)z{M<1q=D{f-Ynl6+k9D5!XjLDfWAvQcYFecg{ zx*!4}uq|h5GV3~RtMO7ZF99_u&JuyFz8A;dlgvWJlIyIfw# zz+^san}JuDWH-Q1trg6%REU8}K*sS5u_0(SPKCIdW+ESMSco+<$Z$hPA{z~a75c8A zDFTg5fziwq4Mp>~2m1+JI8G|n5dHAY0WQ_bLEjK#fYh^NFs0DbS=eZZyut_!`}$nA z90Z_MAQWUlg+O0I?76_qPpkm1#(X7=MaWdpJI9+VU`war#rsS`n}qWQ15$D^qE66- z0!UM$Ch)ZI99e|PD_04kL78a1CsTN;cfxP)yO1JHs&;(B!9%DIX30TMHk*lf1)_Zs zrWeLK8uiLNh#~I;@9LH4Gs0ZvQ8Lv&VPmR8gpCW-)HVuxj3=WCC8=74PVZ^T<}7@o zR)TcT^Jj|u=l~gHVV$xKM2E?Xk#V60Ii?8J6F|VVbIwd)8Z5C4<_#Lc3T2!)uz_?3 zXd48mgPMZp6L$?&oN{3y14S-g=VUxf3KYB?Veb$~gh80%tf8xlNPNVFBc|d`!YvAL zs!f=Z4Q`C7gd6YlY0%wr9>)IgT%I~3_Md1JO;_+Hkjw`VHslx>=TX{B&5kGF|Sq5W8)@CMNF8BvLTfkyB?>nU!cuimE2ifyE9~oV|`vyU1T~Sjjx2-rg;Ox{qw;o6k(;VZ{3pcsf7RU$%c?osU z4UBJW-g6C-pbGFKD-TQLo+p&PE0fKfj@DluC!SlBuR#n$Pv8%pCxBREqprD^q0EJi zUT|W#8}ZTz^Eso(c!SD)!)-b34LN$HGw&+F3ZHupTpj_g@T~(Ln4`6fHOt{2p}w<$}7^% zg1IcH4e&9@6IISl!N85TfieRpER`S^IfYhpl~e-ez~&N*x5iL@I#1qYQ=P5l@+DJb zG1&CTq@<9ag3S+z>x+rS5-gb!<9KJOE6KV=Gj9oyW`JA3IxFNZEYAekeq3=Q2H=g4 z!2{r?DzKxu345wm1zVEU>Oy!TUxbwt>XHlbxHcUsI`bHHytkT%6av;*psV07VPYkQ z`hcs#kOObHw~in}q9aM{^tol27poHpa+rZ^hF}Vq>v9OMfKW(MAGmMUlion&yh>I` ztEFiYIicW${9-XMkvH=*0m}*o0bX$QS0*hQACFIUW*sj;05eE7h??8VC4)!=-|)X@ z!T)m#B-3Mz42s7F;eCYLnR3`%pc+$clpNEQDFZ)~e1~_+xMmj}a{Yu&_Y|pP zlNA9n7xR7kTGr!@g-1>}IhvV#G0MLgaF_Y)LUaOFW*BHQQ;;w_{S$~zFhYSh4^^#B|D8k zYEMJZhO`Z7+AV`GMjL`PhS!|H3gN&slg&X;tIUQGC4er8^IO%E&{#aRhsHc!KVx>) zIAvw8ampMj2<4XoSr!72|H!ovCf-1%BDX401-Nou(uh5p$m*%jAxTTc+lQM=Xb?Hz46rUpEppHtHI17aC)|fA0=PqtN2t$aMl;KG*m(!yGwZ~B z;+-M=E}G4GW^$M&>Li9EKZmV~&g0&7DBPeYjxV1uFd%9M zG8|Y>Iph{g^AIU#9SsmH6@$R+qMI+cumV$j5{s_{fAFMYz97DF)Dl4e9Kn+_ZHD`@ zzr<5M6Q-)6jl#OjU2(m{Q*7o&E;w{?GGCB51o4M3A-qqW_lN3yK5RN95g_1+0v-#* zjsE9{>W=F$-^lk+bL!BazveQv@}Zj>hdfZPmD_Qfc_x3CVOKuC_pkYHg>Gz!-3atC z@-?aWd5XJ&XawR6I010aV!Y(EGZ(7MivdrL43P$Iz^^W{LjY+Otyv^%_jC*32^mg} zieZ~dU+*y2;6L*Np)x}egH0TG6X#)PYcQ~?s##fpP{U?g0OLs~*Y4>vE1zO2V@4*1 z*5wn5oFnrOE|AZ|YcpG9gQBU21V&MJ z)C49l2T>DThTm{Dn1g;yVnz_rDOGxIY`O$L7{6ZCaS)^hWdRN^n8U*pxC6n0XyhxR zL=w7r2s6N~VxA&fa*#c^5m`+OQ0>s3$r47R>cUtGV-_Suh^$^P3>XlekxSOC8oo+w zR4iaHtgvQgpna9y8rX7c9VLvu2rb=@?I6R2@0X(|HXNQZSIlaP&Ru|<1la{WSHZ!f zELD1XdCbV2up_`KIY%yT|80UE4$VY8;>buHBTkD5G!yM=m+`T1{gQXtO@VyZNk3vF zNxoilo;v^L5Z=WIL1E9y08$um=SnoM0T&BMi@-Pour5>!XvbJU3O1q0Hvn5NVu?er zt~zWTkIu7AIm3KkpUS}R0F(47gN~l9j%Ot1pD-e6gxF5bbkx-a4rL~DaG_LHIfVBa zM()Ldv@s+1gF;x0ORcCfvCu0cgMC9YGc!MWq$%i^EfH*pV@BppeT?MpNoXkmuF@&E zXxU4Sd4!yWif}nUJ&h7Pe|9B5F#)3>1feSIGVp5?9z{tAfLXFQjg!`fWrAV~XQ7Fd z9nZCcNWe1n2$7C_KnQ8X4G7hPCEdv4Vcg*umkB#=jOW8#i?f)Bd4usfTdNvM0(1lR z@D)}oj4Vl3)1Z+mfs$Nc*)8T3S;2BlTOy>U3ClmG2!Z^btg%NKLT9RZ8coM=MtB7X z{?x6Tp{FK{ELbZ7HCY<$IJW|*kuL`zQy!4QKmNzOo4d;Qxxd$bZ|Ng0)@E50874z2y2eK z&u}z896){`5#&gCv6_&j4I1cpL%Cu;^&DJ(Al>}9JkVe2e;jv_gPa(l8{biz3er#|UJCt-Jm3mdjf)5=q`&E>o zaC;rMfoaW@*bV@Ao+bmYdHr1e^y!5JgE~MZSIJJ12(NOL+FXo&Fg!57z-QFzfu?aT zI61?4@O((5lT~BtXz0|&z5!wZB_{4)D6M5LocH-QM z-Kh}N9P?cBq*|HGWd$;o6v#^g_W)j=6cNllF2TaUlyeF?8Nx~o83k&=mPXhXTQROt zkQ%5$*(o^LvvKbPVk6F6QhMl`o6njarxB`6>L7QIlVZGHVzXP*>4cM=Yj0eo(~LV0 zJWn(#nH9NB6~G&OLT96esesr5kTu^yPbJ`8an9G9`hh8Yy5@8>`Y{#cE=B(xtLlln zG`%}B8$75Sqo2B|mSP+|x3dRdY;HneU4$IX?6d$T&ww0MYZG2D5xn44r=ahlSR^xU z2;O(i!>E*L3>2Tzv*BsRz#B*{WD!ztKAnr)KFMET&doP9x1cUMnq?fc+psp1cGV5Ilfd2D+__c)B7y?^rMZ;!4g$ zENOu36lFUXw}h%n24zA3tam8Fja-~u2vDh*pWqs%axu2$WdPfGM1QuLvmAU56$1Qd zGg25RbP*~vSy_njE71u}f8-<)J7XUW)zQWb3p+P>;394b6dUp{Vv!~6dGLimWSX1_ zxn+o6q+o(jLbON_gt2=Ruttveh9}4y1MlfI!aCOpyR3{79c(pbUjTa^dKg3+j#q~G zkpq_oapAyoPe$P{sKP}70~I9unYix#b3c)Opa%!ooBR-(GAfX{0DGfEln1mGU7Gvx#*M z?B3VB!ppdL*ku=>_)E--g4$k&83H1p8|B$4O~D{D<-na-n|8wdn;|@mnxfG~lFcW4 z8KFw>2O^3Czdk*5XGvZFal#CNuus9wjJ^@<;kyG%MY4H$!e$u;JGk&0N@q5wfFj^% z#0DqwkjP?SZkQetL$HKLQBYIdm*9=m(CVF%U6iB*?}79N#~r|f z6d^sEg>m1WC4oOnz5)&oj{EOGvATs>SmkIj(+u=}0HtG<=DGoE(=(8I@({v#lpvN; zOt6MUV$wlWArTJD6}$vwX>K>bOt4X?Q`UO88&x(5Jsv6%ZlXsvVL~=EXJ)id;QNYQ ztHP4Z_xG%-_aRQZkkwuPT_FF!#*IZ^6tqTRbrrT7K(=zp7!dQpEtiE18*&$l+36Da zOBB)RUjE@6nuSo%QjBiNUC6-2ElCrk52u+Hrsgc%>>o7*c9O=tt_fNyb!|z?S0UqG^LCkz@7E91z_@#AQWE)1D5l6hvnn+8X2@LFpXUF zBv1kG&mQX-$36Ho5&oNEF2cmqX!~C5z#Pz@tROI2_(KkL9Cm4QPQ`N;qJUtW1X}yk z!mWcalb0|U)gZgcYi>3K<%*=KBI4>jqyoy%InYX~4qn^)eqdyE27z=?U-2<>0eT*c zOR%?>;WnZB6-4>zmG)bZsMcm%E$q$S>vD7jIx1#!r2qgC_m^Tuy7ue@n)wnex)TdA z`l0ax225jVV7@eyrP)^#1%#;9t@;RUiq%gLurv#hE#{bOLJ%j}ltP$br}cdVL69jn z1(N}*OcXTc7obE|;1(yXkD~A?>WzeL(IT#v>+9|S96X!K#-okf=*1>V%V zvw58PVejTF12PNDw%r05h@js9L*YPh=U}ih2t#&r25;OOpp&_5F-S*9H1l9@z*GAF6K^>z5i1rn)HggKNuUC0y9*9UzgscUgwB}Fl1XE7X`3eXZ1;!u@fQvIqt2_XKkp#+={zS{GKm~_z2Oy;v+>(+3L~tGe0JeJPVMK~%4^I(2 zX}x#=R8>_~)s%#Q$86gHpsIo&{p4rA_|>+{{}J!AHwf(n;$Zv^OmYtyzsAdfpQ%uiLib8| z6S2~(xk~sjDGp1KR6A3j^#g^HzoP(8L}&f$s;)jjNoF$#*?aak$ipMvKc1I#pl&Au zO@9WMKt==ffU2ndL=);$0ue`geYr3spjgg;5JVWv03C2Ovvzl=kiVy@lX(k~2g1Sr z^G`U<{=E^5MjDVTX%xqC>{zjs-6R_;wxuT7G+rtk?zPt*P>y)7_n|%X(YBwrN9Y4$ ze<02=rOko!^JL}xzvoufy>%^Je>$ota&&Ry%T$WLvh^O_pq7FQ!;FO@MI&!vanMU9`T`lx9dJ5Lh6EbSL>g z^%o_-k?!9}AHzR9uR70tD6t&NBlh>$%G^qDilBxvTq;0-*cmDqFpViHWC-el0JUTo zYPLg7t3rk$OBAIDaKT|3DjES9BGW*ID9JV;z!>-kz}$TPpX#-}w&&QeuNL;T4Hz-( zQ==X`;<3ZrCo=YkGFECsds0SN%7{BSVMo@yT1VW`!o$N~zwW8~5+@Ps0OJSGIv5kU z0z6+f^_{FA09+HDWCCaf8~Y5mH@dYInx0zXGEG5LG)d7U(*wfu-?DGV&kug%@t-2z zb5?;K28WBs$7r{zUW=*jCNwGJs{XT_>K?-1A;h52yS*VPnmpvM2yPutVI@+dkq(EJ zXoPUU^Z!dt?z3pq09%%NUjjo|AbM{`;Lk{4#xf{XkyE;M``8{kZM0Q(YC)y5%2d*{ z-jts%=7JWcuwDQR4h#&Z>;J!BrS<6`3D&^kpGTIE`TyMAG5`)aOg+!?sO@v^74CcY z3GbP?@XX8w^Fc6o55dem1atSe_rB-m?>#ejn7Ic)caI>-0{~eO0FoUM2y#V$Z1!4Z z?jC|i1lIZ<5m>7O0N3gOL4nLHA*b#+0z`2EU{*Fjvg!jQ*ZKhYr=I6vkCFA2Y%NRc zuVri1TIoFvlGKvWVvFKe`?W01=HDrb$Su146nc%fskY}+7Q*6{@NZ%KE|>JVjP$Z zSM+ypzIC7mAv!EFt=i1&?e#CA1`N2!Quj}6zP0V|%H3+Q5Fjx6#AXp4R@e1zf1eBj zgpk;>ENy=p1YJL3+l#gB4^~cmW5NFc;CXBBKd$|(a%fI9V2W4CKMvRuYC{9(@N@X- zoJ)S6Fk0n*)6r^I*~I$<1m%`{cinSFpi6oLob9jc8{2peX4WyCtHQtG%#ACTN%jtd z9v7++dW{J>s&_yIB@n|;HBhju#NSAbqFAE)Y0M1^C~FK&R{mQ;oa?%Cc;l7Vxwz5F z8zrnYF6EhyPJPh?(@dt!$B7T<3@kR;w!80BW1nG#-}BWdw1#&CPTP|6=%vPoyg zMTAnm$G@cCPyb}q_SCw{cuH~1iyR+T+^=c)q4JfDqu3$(MVgZItowN4D6`z*eIcM3iK3LbU zbbf8LdsTA4!~6YMwg^tYL5=m{Jq$%{_`SCy_=NoYoQ~w13N(@GcNX*m^+kuEwkCMj z&c}ehV*mFDJMLG%1$kif>0M<{K54MkR#`7HVx3chFNNjj!wNkn2W!{I@e(z9-xzss zD29nnnR&<=Cif4A-($^L9nxY`x@XU%*8Ak5x+`_Xo&mvJ;&|jG4h@KVve|B)#4y)UJT8YnGBg5D?YRVaCbv3yiH5fY|lDWFb zcYnV)>7O2klM{o>p{>+f5G!6m9tHW9sa8r3`mvGyC_F13`}&KFfnma@WPNSrW#4pW zlfem}x}>%DRvBA-5bu(^MILK2;-A?Ul2852kN!h`k_X0r{d&$BKc|J($ny0I<@xoF3EapSD>%?)Wz7~vYIEsoi|+D)e_q*za&5N$k|GPnd9a8V$_QEaM@cs#V32( zbXkGnV+uzKdIoyCYZ|K;xgeopn!g&G;@~#s_nC0S!$$ zr<1er15jhV`RA-jC+psbf_1r927|d$I)DD{+KKe@bjWiqUW!pE^zLUVV;d{0Q`Yl} z6^By!;h7Uh49 z^*fpE`}@i}V+N2>U-*c8@uNA>u_ouQRx&nzFwm_` z?^@Hzo-5%WQ%7o{wXqDpb4l(9--LhE`T|q?GpOxh4%a|C*xfqVGbMKcGj{nG;yVEy zaNxOM>tnj>-W3PvnB)H6Yo_0N8%8gCJOHWVHozi6QB+2IbVGOaKu`2SZ}dT5^h19P zz(5SbU<|=f48w4Yz(|b3XpF&FjKg?r##ZdaZtTM`oW>*kFj-ALliyS}Rm>K%!|XJ> z%pP;ZoG@o?%r3AC?IOF_F0o7Pa(l|2w&!D6Vg+1+OXl*rLawkY;)=SJ?v{JyUb}bh zz5C?8xS#Hq`{Vv6o{cs{$D&)&?dVVRmtY(dn2ed3o%v}PqhrJ(EXEQn$x5uunyke- zY|jqt$WH9cF6_nL9M18az{#A-X`Id(oXJ^S%w=53)!e|1+{De?!mZrK?cBkg+{N8I z#Irod^Sr=|OyVoP<`4enKY_$cGD$9}C5@z&bdpgrOBTs0*(AHq>c2HrLs(x7cN)0e9`np^A^olG_hz?pTej2S$u6j+RyeY{3^fG@9{_caevz1 z@{fIzf2yUmn%2_h+C%&4Af2GIbiS_E9eO~|=y|=Y_w<22(s%krzw7^yI>bWpP(92G zYr^qxI$Q`>!_DwKym?aK$^IvYo_u>+?I|9rx*D#J8|;R=(QbiT;bhsgN3J zkQV7s4i!)ZRZ$J~&>C&f7VXdt-O&R*(GTM=0n;!YGcXggFdOr*5KFNP%drCMuo0WE z4~K9M5AhBk@EHysU+^;me#LM29se;pV=y-3Fdh>!5tA?}(=aX5F%vU0J9986b1@%_ zvJ}g)8mqG&o3JTcvK_l}1SfL_=WziSb19c`IahKm_wfJ^@-R>HChzeDU-A`S^BuqN zNB+j&`6vJ4e~PH+imi0Yt70mtnyRIGYM{32qv0B%Q5vnunyopSt9e?eMOvy=TBCK^ zq8&P><2tERI;}H0t8==bOS-IkdaNgUBd@ReUO!3tO@Hb?i)wK!jis|3R>(?NYinyA ztg}tDNjBXU*j77l7wxLuwEOnZ-r5KA_LKc>|Jwf{T1XHwg)AX!C=!Z=QlU&JA1a2* zp=zieYKMBEL1-NKa0HBn@h}Od!CY7bOJF6eh4rurw!?1N2S?yIoP&#S7aqeacn9v_ z3EmJ45s&~WkO3bsH`c~F*Z>=1Q*4GEup=JCvv>)w<3oIcFYqmTVE_hWIL2T+CSnSv zp#wkSSNwth$c3^|Au39x$)bu>m1PGaZRqx^|>u~;LhBg`|@BO#-n*W&*VA0fEV*x-pE^c2k+q{e2mZV1-``B z_%`3;XZ(uavMal@7yENChjKW_^9TOMKRJ_;ng8f4I;YN~^Xhy$zb>SU=n}e=F0X6p z`nsL&rTgdsdaxd+C+oR-rCzHy>FxTUKCaz#ppMaT+SWg{)9Ew}qoPsSsAV)T+87g! zNmaU&{qVI<9htf{_4vLs(i*0IinE zIzF|p;P`3hw5!{V?1Ao$SSgl93rPE)VfQ~R1_UV$Hm>n zfXNAmJWDJP8^mU{R~!(BKgk(!L0l4-#RK6gLPfMl73pp9MVmqio~+AFc_<$h zsv=cFTPPJS&61gWVe`xpok^W-lkd8Ndi_2iji4E{{I+9YJWPaXFas9A5?BsvVI6FQ zEwCH*!T~teW?sNsaQ$_HAOfNx8Peec{Kn!~2kT-(Y=q6QId;TOco@&)6}*Ly@fp6t z_vnK`7}~m%d;LB3DpZr|QFCg&uE8{d#?mC3LNnWzR?uo%PaA1F9itO;p-n#P<*_h{ z(ieOqu`_aVUM|4JmaW0HxgNLvDg${KkK%DWlV|gMUc_s718?SSyoV3BkAI#o@fE(w zcljy5q}dnd(e&COBi9 zQO2)7F%@c8s9K?-g;uf^YPnkPt%ufq>xOmBx@;KMc59=x&T3@UwrW@b~lqG(J5~&(fCECv{1kQ-xG2l}N=>_LL?5kALHz_!Gb5SNx10@g0b7@i{)lhj<_F z;%&T%*YPS|#`Aa(cjAVZ0$u`mu@?be2zUVicpl)no(*{B=Zxu|*5C9LPX;^*@I+7W zc#ox6-Dtq0JkldP{L^lz2YDdi0q*Y}?(WX+V#*M)B9wmG*Mw{lCsEdV!nv)ugA z-2iZX*8^M^a2>$4UCT9H-PHhBbrrysUC9+)$hn5=j8qg|0D*!+X0L{}} z&DI1!;{c5XG$!_c_8$posD=RQtKRCR9_psf>ZtZ=trlvkYO1O-fC}(`{>Oj#7XWyh zmwBAqxs98-for*jE4iGDIfoMfj^%LnV`p{(*pyA!hz(hv^;nm6SerFija6BhEJ3sRyKkz-@@dcmo5g+iL2v0Cmgc%}C z7h#$RQ<=hKCNY8WjAJZg7|kd~@*wwfANO((cX0=|ax<54F&ATu>;$&6CiT)JIKJ7ZDLb zB~(NOltWpRL@^XX76iZ_K2Z1DeRuENWB172clX>?cflQS+uRzrTEtCr!^J~HL_|bH zBQ!!IG(saZLL>D5PiJ*WB?d4xsi9lc`}^pP&pWwt{{=^UM=V|0oRGkK^}NZAydVm<7$Fva%R zFuTM0*cRJluh^<^HXO2>;gHP>+rqxEBTNhP!i+E@%nK82hdpOc*b|{bs1mA#RLBS! zCU(V*oSN~jQ0p>#;u1iQok6e?ND8d;`gTBhx?L$<>X*a2&2ZETOtviCxR zkP#|a!BEt`2$e!%`^mhCVKq!bPFrM)?5KTaANk|{s6Xm6?GyXPcd!+<%}iLdAHu$#8dR@p4uW4rukei8usW7-qE?Gt^08~CiCmtC7W3ceor$+njouCsyYkYmwD3G^69$AfHCAn?I7wBL5n?3L0eGd9cl$)aqK-+nJc%1>VhCe#y z#G-GY%Rrxy&p_va&H-s5tw8QcSm>B-T&<1(9VW9t2kGH1!pxOn?w5N=4#6B96ZUM$ zZ!l8Y@pR-5Fx&A@Og9bO6mVm}4T7U|CL1_F=Gw_$*A7AP7=e7`rvL>hL}7|hlwuU8 z1SKg&Y08iwNs5RJ(!`Xd9ObD%MJiF5DpX}FnQpz?;5NE#ZoAv%_PD+7kUQ$my9@53 zyT?7~9&!)6N8F?CG55H8(mmy#cF(!z-3#s&_o{o%z3$$2AGy!mH||^ai~CiOEK*2{ zNC}CgvQ&|3Qd{asU1=zdrKPlz*3wSeO9$yFU8S4!kY3VPrpj!YD+^??tdNzmN>Z^T11O#TFYuVEw2@{lGf7(+E5#56K$q#w3~L<9@aYTgLH@v z)$ux2XX;#?uM2dcF4D!iQrGJqJ*RK!2l}CYq#x@i`l)`VU+ee2fFI_E`=x%D-{Uj= zNq@>;^|$+n{KNh+|D=D$zu@2WANjBRZ~kA)X&Dw-P- zzywtWn5YuKB$Wgvs}wLrMZi>*0ZdbAV7iKd8LBKWQ?5%VFfNi2diL@bI_ zh{ch5VtwTOhz*brBsN4oh}Z~uA7W$V{fSMG46&G!^kBnx~1ckl!bM$1pPyf1!Di__xSk4=p!rk;Zc)+>_em zc8$@vVL;lSb_ArEXh%fz9_>iT!_bb5JRG0|*FI~E3~(vGchQw<3C7Ze@_?rCkHYrd?ATw-(FqyH~X9ppDxS z4348c3x=gV8-ovM&q4l->E=YBjtp%t5yZ-C~%NZauoaF%R8QbVp+?x^w8x#X5B73)Z8%4%Vl;5jLQ^ z6E>u~2R5R605+z31;flk_bzNg_eq0I>4xa)e61+6(O?V8e3S*}X+>ES*p{+7Y)9Dw zwx?_dJ5Y9l9VrJi*okr^<*4~rQBI-3u9WjB7tFbeaxJh21Z8yrOW4-Tdup@l=}r=Xt_htkg^IGlbVID-B-IFkNC zIEwxrIGX+eIEMZyIF|nT7LKETiT-6APyd)MarNbw|ND)IG*@E_H9}J~)rMKlK1yKs{A(5%o;Cn0nQiE}>pa zy$P36Z=v3btEqRW!L`)8s4vcQ=c&F-{TPo?JL+e6o%#j!YrIGO7WjzzoxbcpIp6bX zMjrAN!^jLX;zx#=8Rn*p$1oqm+LXx|)@9g)vM9r540}_SW!RVD0LsP;2Qi#X*_`22 zhO;SqGMvkB8RYvG(R}j+@OHr;QmQjng60t0?0_AaHMWG%^tkkj|MyyP%MR}T7 zhuC~BTf`QiyhUt@@;0$mLwTRrhS=$NpopD;k%(PTJ|}h^(}=`w#9ovyh<%8oDBlvt zs6`3lc;X~V5+@7w9O4wzbBR+?ekM-SW#dj~9?LJpnZ#L?Ux{;wb1A7UZbp=+rgHG1O4kBgZ7iI!4`0jzf-1U6&jW zv|Y&wQ2s_v*rNQMoP?Z$x;{CjP_7}TYEd^Kry-}KZc0wC7UgGh26ATV7UV2~3CLMd zw;^X+{@4QZn6r~}QMV=MAs3|XNG?n+M%|rUl3Z#Iy_sBwT#33bx$-h*J(ygDT#I@L zxemDj^=NWKwbaOs$W5sykeicRwexw*ZO9#|XOIVyhfvQWk0Xz#UPPWqo^m`^a z2IM&nZGG}w^8D*li@XrjtI3N{mnSbqy@tGW%z7<(1$ia)I`Ve%F6s^BJwm;Oytidr zoV<^`pL#3#2>JLi%ozC$`6~5p@=fwB>Z9Z*pgvB1s@?80P@f<_*L7%qz97G%K1qH< z{(<@o`4{qU)R)O$Kz)t;Rh#DD$ls~2lmB8XF(LVH@_*Df>F9;}E`0?0$kg}gqtQpF zeoUX3J{9#-`n2>pj~nNy&re^7`Vaad^hK$iz6^a;>QD65Xi@)5Uz5HT^?&qr)X*Az zUHX~@8LggL$mGrArgkRZb7U|Jxmywn|gSQfqAG$Q;#9mr=BXrhSaMXVk7Fq)JKlTiuxFcO{q_L zC}K0}a~`od^(E>n#1_=oBw}moMQ^GRqyFR(+f)Cd{!Q#a{a2!#N&R2M zPUH{~JCmb|*oB;2#IEF&B6cIE>JU?rvy*e4olA3WI>cV&eB}J+;L=cO`cxP9gV{N1RUXL+(eMK^~+I0}GJ{lZRZlI6xjo9!{J~ z9!VZUoKK#>2FAtYN#x1ICFH5(nZ#w}+2lFI)#SwzaV>e7ZeMg0BCaFv@Qmxpd&&EW z8_0*qhtCxE$w$e@iCf7h5pf6kv`5@YzC^xE+(o{j4UBupx5*EPd&!Tb|vi^%KEhHX}3`}rrklild?7KZrZ(+ZE5$@ z9-{0(dxZ8BWf$5rv==CQ(_W&zOgVt|D(!X3L9};BltXFni*gw4LyvMe?PJ;}lp|=L zNtB~#Uy5=x?Hf^!q5UArv9zB(%5k)RX#Y}1IBIS-sC>S?c{#s{=}W+K^idbCJ!MGC+;DSB99>+AkWl* z@i2Kdc^>fyc`2zB6FFMSehjNW4vcN`6MXOMWR4?~`8- z7$1<|lRpq2l0TEb5+9R)NyKO5KMnCY`Tr?AAMph>95p=g6*VFq;u~soYK-$DX^n-5 z@2Lqz{6J0W5kFE>Q_~PXQPXL__=TF0nu++8nvYt5_?=oUccbXw+%c>9olA zpiM_TLp^&gp-(+ey-1shdKuAXrC#mOW~1Js-aWV4r#`2?q|Hrzk7)BzKY6tIsb8tz zXbVt(NVJ8h@@NZFe^Gza7NHN6M_Y{E=tF3W(}$H9a29&1oF$zZz_bLi!5_csE=MsM(3g;8Q0)kD`D11hAE(%`|cMS?(6E_%z z?}$x8;YVT)g-CQ63j2tzMbU`8j$%1tFQZtV*xM*pA@&)HwTZojVpC$>Q5;V68H$sM zI}ODt#GQ`fbmBijaW=6^D6S$p5yjQSKZoLh#6CdrFk%IY#}j`Uil-327{#+l(FDcw ziH=9{0>fR1;V#0$+~pA03&ksmdjiF4i5^Drdg4c+coXs0qj(!Brl5ES!J~Mm-Y-9i z4?^4|6dxk4I*N}F*8s&wiT?=2$IR^>hv+91pCI}f#ixin4#lU5TZiH^hIr=s{0 z(LNMkCcY+$uMk%s#aD^{55>2Lu1E15;@?K`BVym9_%ZR5QT&AHUlczj#Y7Z8BkpPx zKPN?d6u%(OqxcQ+$D#NeanGXoJMpVf%tU9SxR2;}6#pKj*mzZPJ0(D0qa=u*kCG8T z6s2-RSE5vb=qi*d5*JabMBFndRVF$PrRqd~pj3nCQj}^E{f|;D;s&Bro46NHszY=G zN_B~=g;G7@E=H*}(WfZ2C9Voe?TCGdQYT`kpwx@F87TEOO<-GfKy4eNEB{5I+{B6NxQD=_KM_LFsH#j7I4k;>)3QmA3OFT@CSzP`Zxj zMwG56?s=4M&^DQ*+abjUl&U>clV<8J4yGUZ8%ByL)`HwJxJVLC_Sp}IZ2PB zBC}ImyKAiYpP(FsZKTtk_=xCHrChi@SPb0Pt<*hVBG|G_z8k301rP;u!ew#UnCftfQNrb zF#3Rpe?uTY0zCXXg4qB({0D;hS-``8BH(ub55Ghpj|V*b3ISgOc=#QH`53^%?-I;M z10Md6V66Zi{(@k>9`LRM?JJYJzJ$5mm$5MS70kG=V#a+9g7G52yS{G5eFHP@o0xIm z!i@Vi7SDYLbtgvx?VFM#i5aIM7{3BMnkN_*;8Bxcd<^g?C764FM<)p82=M3(!R!DY zoh4XvfJf&DRvqx@Ji*ujJh~6TcqZV{jRb28@aQIj6#yPRm|&d+Jo-(7@i%}+R|xP* zz@yg@%>M^GdI!P$I^faA2<8~@=#vEVR=}gbC6HGE9vu+O7XluA$@0Q|9fCOpJo*-a zJO=RS+XUmSfJfgY7*_y~zDFR>13dZxfjklL=!XQ;13daM0lxuw^b-Qv20S_<82=7< z^b3OdJ;0-165w8dM>B%)OTeGsMlfy%{Q0v8WDD@;cM{CM1N`~x2&Mt}^G^_rZvp=N z5B2)cFCka}$5R~R6bzu?fr2i;9_B&P&uNtev`UkzTUJF`E$KujflY0?l;v3-j2`^p z{G$(k(D*?Q>VNb>51xG;g^aKrNr5P2G&_i-!0pSIXFuJ(e0h2q`Q_>5%YGDPct3I_ zIJtYzNjkp!_yDfM353uF2nTtQr5$R=L6qqJW>pRYqpZq2%WY~WIvFu0C1W<(PPpsx zB*k%9dJNwk5N7)rMp1|_IwAh&9v|QoCvX!y7$DS1p%wP4vMLjuXodaFM8^@eSCKlu zrcLcU%d)Jj3;bq?EAj?Wgc#1uo!Yu&dW>V-TZuWbHE)tz+ zYEydyGn(HEbPG2No#@baM{OEM)J{8jwu`;ASENOj{|&QoEYVegJuch8q8H<2RAn_B zRAql686yVv1a*kvxpJeoxPXR9yt%?aoyV_0O~11^V#{Hz z7B0W6IEKY;FT3dY0LM6i-SV}vsZ(2FNw#d@lhy88RqmmEwklg#RNhm`*dQ=%&ua*!)N zw~d#Af@DFT;70w=Yz`3ic<){(I*Dy+(=5;OVP(_8rm;?RQjL3Od6olNUq63-eVy1Z zJ~`27AT}B&st8dkP9H@=Rd^oZQ1811e;%`v(*B1ApHm z26Y7Ir$&33?(f@uMmP=`b4QNg+#?2U&Hg8o?5hR$FSp$YCvXxV>?my3wc%h7v!G!2 zhDo~A`*kR*EYI>k=*%tF%1*7-(^s#YAb8@pKDrJ4k0EAMelbBzk`C_AwW@lT#gj-* ztXzG1^$xya82VqB>vWO?x23}tKscz1atHfj{W_4^H0|Ws26iIZM7K~U{j%DgLfRFt zGcYE97&EF~thciqG0(Q|+n#SIVwooAoKqs2_iaTHVidKW5P9~ElCd%4lVBLDTQSeJ zx3e4rziD#Lsb!kntS8Z=dxo*Pl`+}IvTuS7fUwMq)_wa7yNX)p;AJ;4tv+v=CKsIB zW6Ip%pk$(U4o2;A^7z1$@fN|kZJ8#Y{m@tHVw8hitl0()KLGp|#$==o)t_7T_X<*xlDooH&z1V*Z` z-klhs<~q)S!#U@MVgJcrRICrAe1A6PhGA2|IbLK;f{_<*)`HXUKmg40BFj^Ico?;* z-Op$tJ?9|L^0F#Qmw7gpRlisC3d_7VA?at{uUo>yV?uoqOP!)sx-tZ)hyv$++-b zL}!Fhu-8ni^|iC*e;m`SPQK4YWQ+^%o_+9p0Kn(t^Pvuanie({I9mRn%)41$R^2ku z2|m{{O+NcM+T1iP$~m7+1H=GFoO6m#^Mqve`&KShl4yzm*NgB{G(pmOmV-Bt~#6eHREKsY5EiF*S7KQp`8>u5hF`u z)h(+m@Ah2_EYsvjXGgoW9Y>dBHa#8?@Q)9$hZE?-2*ysWgI0o-xI5HgWwhMIe&JxZe8o0Tu^>(wq0$$IOi`_*j>#|xG>+tY+E3lMr~nX$*i`P zQMWOh9uG853E&j&*&=nUuj@o7gP+b`x8*hu4rT^6JFp<-Av}#VN%((!mS=f_`Lb|B zSrSr~H%z7Lbz9q=4q~UXy>;FB?v2KY^@ZiWmtC{kc7)XJ<4IZGFanA5#-uE7xS=fL z@Y3G&+_eEovb3~*?RdAuVN703H&1XwS&}Juv^d>3#tAf_g+#_}YM4x|+{6CK7p*Ec z&d5}StsFSU3D#h#od%0Vt&1TT)mEC2Wj>B0z#wfkVIDu6F%+jJmVSc3q zNt&y|Pr=m<$LovJr;Ck^;`Hgl6@t0$`I~P(zow*AYv*si`Mm2gAzUmrHj2@x*x29& zKl{v?^{uU~t+lgfT`pY4bmQg_V$RnrIRu~Qf_@rgcL(ckySLeIE+Q^A`KMY)$KVjwxbXh^_wY&Fo=04-*R;eznQFF^XTvquN0KouTCXbD zk=f*nmd8SQ##6qTmaPIo97M7g7zWf%I~#bdOIamazWwb|YiHf%C2kP7FHuu3jc>AQ zci&yJoWxibp#BRf|6=y-k%tpUhh4`wfkl9@OfXQKsBD=X?T8*9f_xI6og6}D=pzBgWnKGre-UCN||5mgDX1*GdjnyImc} zy4zhn`{oDOTpSE{c7}t+CVtNB$GV%HJel1W{P;SP-G0BdxY+9Vci(8Ovt(2EoQDiI zDa;SkN$V~lYEc}}!vGWQi=;Z*x7TPtoQI(#^sDN@)a2tS)=}AaZ<@ciEIAbwScz4pneX|(Gd z-Rud$97OM?lhxu@e!g?3rLNk|yIXGamF`tCyw7FmWrmy|mWXa1IuvP=NFMQchx9gx zbN`k49Fmn2yO%Cqy3|QDqE0$Fqdbj=<(InU-*9WNoSxb}u|f_esFO}7(J}eTJ)FR! z@|6PZ$0of(_lu`v`4&odB1<#rM~UH;b%}eD2P#$8J5X=`3a?|J--^8?9XvaSf*uh&S&EgF~l+F+_J49($pQpj>3^LX_k9v)6RJ9W8rb@X*W4Z z;@tE!h5hSVmU)Hggx>Fdj@ImoX;}i_Xj+z-{TD84L_PZ-%!Fl`7Wc$#9FrK6*|%a6 z<5+my0?bjs3Qm;QzwTzYkSv5I-LQcb-sTi+))4IW+nErqhv@vl9|Q!wuEf3m2Y-N1 zjtV{B@)i%#VM2KCeV_Y}z4fi``@6gEd+&UVsl>%B^4Yjr=5y?@?Fi0YgE+6X6yMi6 z#Bezm&gIMaGS?uEBRK!}SEi9~@0I_~xo{j}xS#tRjFqbcEmIjSR29f9jw0sp*>`@~ zZI~Fn&_SO%9j+9&(CR`b`+-58p1XEEyUKjc}@V$cY4gy&d$&RuPSo90=>dyXgf-R%@1h^OoM^>vc4HPc*U3D+~O{g@PPgeUAx zgyP&~16NTY+)nz5&qlN!+^H&ea9AaAf3sBqBx6gjk@fZS zgXaXa`{>UpUA1YU;=>0(mD;QMc^Dbt6xLu1pv!hf(qy+a8m48?v2K}c?#+OXG&M2N zw7WB*`d`{oGD5~goAWkiUu@KBF!~-Cx{Z=&zs$_P4RIq=k7m9`|L(9{7fVTwqr)sKU{-qr10SCW_N2s z^nC^cLbN8>Y7GWw9Lve4L0`hEI6Z|A&QyGQ5-dQQ5OBhCK`sY1AK3yeuDPxlQASqun$hASw-h*QfiNdsyaKK1Ly< zND3q(04T!(L3+Jb8xfm0XXx&U6@pDfY`1#Nn-@_jTqIlg{>5#GE4O1t<;WGn9ZAQD z@#2pC%-iSvcmXE;N-f0x{M#>KyVZLeBI)*bPplBKa$>jNCHVGUtBtdL6f#=keTAs{ zd?}IwN65GKnH^vl`Xk0hei-6^1?dlT`*=#)GW5_kOId2NnLhql-uJnl@T!!>B3;&Z z_x$tw|9JpGbb3bj>TLiAFAxUW`xI=!S-3Ym5FQJ^SwSfWy0ErgCpy_tguJ|^`sU?^ zWtDX3u&i_vXK8X0=9M2G%JN}Zz1^e}d@e%`>8T)dGlQz^_m;j}Ko?u9tF1-)m(G6d zOEy9wquHpfFi@!W9S4;{$GM0~p$aZ3M5PebrNbQ*&i-M2PV2e#4_WEmSA`Q4GCGDx z3OqUAKy1vPjJw_sZSF?Zix_{k!ZAKWA*yF!_#%av0X%Q zR5Wo5JN?b1$fKCriQYqbG@Xm3gKx%d0Xs@?x{E`;{V4yq>aY zmWP8pw5sgmNIPLA!xbO^SEH~ym`|p zvmYT|oQdu^VmNzemvT}+tLy!n%d9EmUvAy7{N)B^mS6?_K!fj!{Zv3)zC#u-y6pw$;mv`f!W{wdr4X0 zJIzQtrc$-QcH@XzOARW+z;zmttohtmh9Q|7yLQOYB8bGM3puLDbhHTCrWwbM*=@Q( zAf+b_BqDZcs2D%gj<{Np~Gn-O4jug$CICaSK{4w|&=r}_9 zP9FCVj5`$dY~MZu6f$bvmmKq>iO+e8Qih?F=umE14;hUlT_EWkY(otMINhUyI0)o|axj%8I;eikWAv%IW!_+EY0=&0wOi0Hl9WOEO@ z{i0L!ii4{(A^Iw!dzzeH9xn=mxUTQZ-@HvBD*vINStI{G>*+e2f2AjHUR!?t>`p{{ zS10KDGP5hL?@M72_kpNXRiw1A%<&sb9cm3kSo&Ft|$@MfOYCanvHZzqv=s;b6lsi6M5{*&x|)ut(Tl5BQ22J%1sV zV4S_Rq0L%NLYf<+0B%5$zwlw_p20ot`{H!NTcm_iLhF>)-`>hU_8g}tiQ^FYW_>(( zWrrza@*fnU`jFJshkR(q&>eU?|JaFI%x$&Y3~}$t-1i0dwh1Dlzr$JlgJf*>>8qeC zEByO2KFyxv^kxTZMggcj{e}mSLJuAePlVrqPXVCIRh&3sHeFE}0Q#`OuvZKRRk??y zyAdn2NnxkSGlg4-PN=RezIRpT8BM57cd+Q24PL=(17HhB9=@YZ+D8AEipC*t;G{@&bky!gW>_2PeO-pfSu zy19j=#)IZ>sD;hB^m+K3v)`$C9EFUY@=z6qk{N*tLx}`G%l%NzdfX4ylLGPVT6~(i z!u8*ZLPq0A3M3mUzCJ!n{kcca9)VpVL^zJ5z#Ao^VxE$S3K8lAa=%|~Ic&l8a05IN zp49)fhUt&3up9Tb(#=y=3-okt7wKG|?XH-}@-(ry(}<_r@5p40FE0qAKKrApu9I?Y zORR)HL~$liU2IQAspPh4{COg;HNNyZF-1RL(>61V$&bB!V)Lgk_xL|3{D(7C6o79@ z&rtIKu7Uf)1LfKDOn44Jl^q}{38fYWCfkab+Ell2Zf;3qo2CU!2WK-u4GA}eUslVC zw*IjVBx35MO|xA39*`T}lXKTsl{ENCSMV@;Y7I&FWE3*GNc74?GKT&sM3td0nIYb* zU)G48YrS{nfmd$e;OhS7;v(Yu`i00JaussXmPRciG_m1!98DOL*Vm)nd#eLIIjB6% zy|>=`u6yV7t*ruQ+joppScU80e(+#;G(cC%-$^apEH(?Bq?+0}W>wk3dr~Gy$)~{za!g<^=YDmJXS9wR^W%7hR z=~3sTMBn0PbqudVR0{*Ce2)L1LZ7d!3HCMGkJ~QpMxz!Hv(qA|@T1{A zq;MAQ4^R!Nggq|0j)hI0>=T5p!YqV^uOEYRcK=1=%oh(hBQNJ73rC@M|DpG*u3rSlrhRBC%f9R83&+}%-E@QGy z)lz3r`+|1O^fPS=bn*w|W-G@_T2d)JDbK~3-{lfq_dKnnH|7tpr z!v%n_>=&CY)NyK4CkD<6H z75q1R6~5=Y{4H79pQ!=Fek{>R6f|z{Y+#n_Do>2%BZh-v+3yu4O{2M!ck;n- z5UZn+#b7l?3WE^6@jlXjGAf8!zhaVz{Yw#^StZY zkq)$$5)qL|5^l$j9<_XuJgRCUPn9d<0uMwoHnBnWe{+sPFj-k(_Ezj z9krh^;P1T-PS(wS4(HF2jQxo~!seP$h|OTJm1k>fYlP6OUPq(m)Qv!E8HJJ{oWa;W zmOlrm!bpC(3rpVveoQjw2fjV-QI?`R*QYuE;b{Gz22HA5xXW z!3NT}KTP*h+M}!I!!*tfJ9D;&Wug<(@c}YJC+)S>#56~~-$NmzY|k@AoD&n@k+Jq{ zzG=>#Tx%!VFbU_;=5JxoKb!%WWxM-8((1 z&-5y4+y2V)DR5VMMi4>_u2*02ZJWMo>$m81&-Q&g?}VXAh?-kgu1LgeDN%z{MEaqr zic*At8-+-;&zt!bx2wg-xgV*FQN66*aNScb>PTR=B(Mm;GwQ0FX#aEIsgN1*W8M2!G{dTBD#T}d$%QkacTRfuP{Kc zetCm{j`2%him{S**esyt)hSFcroVaxoeh&T@=e^CnI5#eFayo7u|FsMN|+ z%w81JA;%j(TE^o;RBWbqjW-L8L)gy^sYTny4tDJ7SE{yy9cYr~AprTriAR z<8}{dt8->p6*{wYq3Zud>4Z}9bxTpfwtLIBluEZO_iP(f#rnFg(H;z@5xW%B^be%3 z3&Jin3^zG(;>gjirge`VIdLL!4TJ8!M4_$*Q^;NSb!UL>;ihxwHiUq!!>kycd_d;1 ziWbS{ula#z*;~<20YdRU8=SOZxD7yv^aw)n?l~A{q3>ht_bH_7`3H=#$}UjMc3#0W zAfL{1eleKFwqGi^$5Ycn!8Guk0b0P7q5?&EjxfwZVLF?JY-Pd8P-yP>`xa3b-GUya zt`o!4NS_a~{CW}lrr@|SN5EAQa*z^$D9aK_l93$M?OnKBM!9l(3OYX$TD@Af?2d{a zk6s8M9kvX)9LiS_B}GrUDJO&z7~y=m$*dC`oMjKj_@rA_3x)cdr!ikHL#ds2TR2Kz z0|(*tnpdZA38tuzj-%_)t67TL^OVRVqKD?RQPY5SoP?l)NhI*-=@^#E!?)+OV?yI5 zcuHp7lxqN?8aZso*|+0c(2fD*OPbdV1{iN{UbwKii6JbgpsLqh$Bg$F?fC`=;D-PD zE2x300;npyiU~k%O9Z{;8ytAd@S=^eo!i)pMbLn1-`3=7Yr7XVH&0c`2L&}b=0{3X zsB``RxZ#gZfrX~kkqV%`_^N0OERou{iGdpdcFjeVW822qHp5_1lCTEIS85)^6g5yc zFWo@m7N?OHr;!&oX0U~EgBTFgBzC&Tr6`TyM?8rAu?Mc*XqJ!jE}S$Km0ZJ1vsab4 z9O0WEFo>#{P@YC=yaVEii7$Sc-ETj8|0-^(im9?!xB#wJ`Ra8(Q%yykP9}7XO-GWs z>;Jdyq7SdT}CHocRIEyuAnQsL?bark1F95Y9_U)Qku1xH~5|R@Ad5_9=F~M z0Mh+GLs zZD+%*L1+vu;TiL)Q4O=~@#Sp1DO%({t%`@7&pRxxKiun#8!jG<(axdciem8rCYNX#it( z>Bu+7cpYrJJkAYl?bJi)G`gkNh(zqsj-w{^Jwjs<7z=)&0+E3`(e6RiIMx_uajZh9 zTJure_Zz?NV5rrW7YZJRa?#a!^?qgE^|#-yZV(?|uGIiLe_m&&jgPIh+klI3#-cCe z|97cCe6fV_pBEp(&T_2=imEO*-C{IfE(4wm{jeGMfSdKNLany!;7WIW0`2x%5d(kU zl-gp9%?l%#qL-sLptsjtAZLJ}FLEIS42Il0xFBA@JsS=DAP30Jrwo=M#6>>AtuKOj=vrXm*ak$=HheHSyHbVGWHn!x6RQR^u*F6$l#=P z$Lcf=hIsI2%cXJ9x^q@I=kwrW*fh#&FPj7y{f(mY=APDxcg(ID{*5yCJps7k4(gF7 zgA~A}-0|NISUCG@1a$6FlKsPX^d04m4-3Zs`O?JF+jr5e=uz}5=*6l(%B!w{=odUB zOv7N3D_@@EGm~pArtM4|rKCHg>Vztl;-F-47svM1pESu21~&cHe&8LqdFo>v_#QuG zU&U5fMfWlG^$JsLg@jS@{NT~Hw)`Vy{^V><7av916p@X|)IKEy4ec z`-47BBSV}uFK!L{gCY+zRqPrNOpR7Dj=Fg2#nZ`&JdUDAefXA079vG+IDir=Gu;CeDn0Dv;F6Et@*?eGyM~Zd6i`~|9L(RHIMgsN>kn22{XsviyH>?6k)PqMaCMvLZx;dcKn-R*gVaT$~3{z&5 znkJ=8HVr0U0V9-sjC~me`BHr9(@jl(&bMVbzYfs3`<%OpI3BUdH5Y}ftob* zec(o?j_1suaN}nfd*q#Grz;c29{IqvY=dSzNTJSD(=!y!G!5lW{ zop3P$el}HvmT{H>87$fDl%XInS~5b_DZ}@b;zQaGLW(UvR&-q%_uM-@g>j*-X#Axn z!`YWoLshyd_!48|{zPZ~WL@+pXGB;T&z|2{dc%Uq#j98^se@e3sT1fly0%h7)+mvc zrHhCyxXL$BZ%>ZfU5MXbHi)u-CP9?VnCHnmx1Ti9le4c^@G3n-e&NzeiGGbc-F^z^ zVR-xF`o3QO!TaUzGjh^pwH8Evb)(i_{^fJ$@-W0ShC&Wgw1P5p1f9%`qO>R6jI~6! z+ERX4D*`udHua)33DV$7WIz)~*)B(Dw9gqkW2&mA*(a~0tzQp;8wHo%KbJ8c_WSwx zoXq?EyuP6dLlJw0s%k#9;6H9_S_b)W2oIB}>q`{;x;a&;^t>v|c==tXqLObiQ_z?Uy?xHu^zTYo zmQ_i5t($+#vwz^Stck+c8RL3kbO~+Lts#pL!$hUJN_jcyfmcwAs$Qak(fp*5Hky=p zDE)e|EVJQ|$ujhqABS*ufDfYJ0S$iSY!7`=5k=DN5>ZrMEJ;)4j1^`eAWXLIhme5s zs|PrT396uVZxv=LrE&n4yT|e(Sd(z1(&{$EEP$rwY?%0gC$U6ot^p2!GGqF7N*(Vp50G1Zjz>DwAsTe5Jbk!{uT~*f@1+32X@`Z86)ryEF1JE#H4^#Ro7Tqj_&`7+H5Q@H<~KSpNkJLs(EvG4;@9f zpoi-^Z1;o4N^+@+e|iDKR!*JB>d1RdpNW;g_ckR8nGaPE>$AOPP}hOye|lxp8GFmu zqH0HZcFEXB+PuG8he{BT$2nv96fN|I!QY%7amGgYEyK8k(O5EC$<3c6+dy(${FFd0 znh@SkXig)IqR}<7bcA7Ic1{$#OcI05IJ3*H*qFHEnV6OlM_xVAOGO4G+t7@HbTy_) z+~h?$Zzm_)5J`cF{Zp9U0#DxoPYXiMFFyW*I~s2N@5{Cg1fD(#(-|7w`%U0!czT=% z*2OVA4Nr4)CgADGff5J~>b%TMVS?V6JqBa3iMo_TBoc>g3JM-$h9b>!XeIDH-^+1Nzc+cYI}#vlk~m%SQgknR6d?)Ofqh&F{9rB*({|LESRsKM*)Mxe#LsJ? zaELA-t}g;PGA@AxO1NWDDx~6ugeEn#YrC?%t8pFb1J-<9PlG%{*L|344NVr_!#DfM zF4x~NsKj=ts?r@MQKJL4UH&w4og(GvVnxSgpB}d6paZbkGK|E0u$DGM$2N3$3L&q>deYAzHM+h(?13RdB?MVFIN-$GzF(b|xt;X$0V3&1i zmMewlC!FDOH7cFc+N#MOXRIHfXqtR6f7DF|5yIKD6dd)YJg|!MC?`tbk7}8rcpY(G ziTRqF^gco;Pn&d_((|7hC(#|~;Y@f#%ErhS; zRAHbfG*^_@dSW)4LSI54IT5YUY|D+WZuAR^a)u1bcZ>rxh#%8G6d|5Y-}FDyoX{=vEwqE#O@LlA*va$Bl;TIBug6_uby6 zqNr-CrK*ZDH}?|4^DW=o;=Eb!^^VNXVdyL7bq7xH`;OCWw%g67<9v2`bQ!d4lUvGP zKX+`So8=zezLE{M&1|+4Zys#c3W1hAdc2PBE-^1Ov!~X$X_%O1nQO1~n4@VV4Hn#J z&?Qn!89VZ5Lj~EnVCiQtjJnJa=})-6gdWC2Xl}s+ zChEGwrzk;N=(z1Lg{6SjO8Yio!+t0*+s`;i6G91{S_|Tni%ZIL*erN0=PC<_7~`R- zpeetD6^c#3vis+`>dES9&e$ESz!XK-lzBDcjJ?HDFy|+CG>Zl1gCZMHBS9PJ1Yh_J zpl+*$y;Uc{#RLaOSlWA=lV^*Wg`eg1`eUTZKM&fm|uWu>ah*qxkP)}5-# z*sD3WtXB^|5*AwXE!X9E)+Sk{A=4j5;Zja2)I|F_qw3v)5$CU?qNob=Ux|-(TXR8` z()fPM;yh(cRqwPc&hKPQRbOpcoWFYbEzjQXLv3N9e=iuF`J3U7nci3FgMqoibx}rfTK@5FA-hh`A@(_rfaGKz~29ql*IB9 z8|1>L-k(mPs_85@NA{WaF1VYgZQC$e30xA|FL4O%hM93=J8HTosK%A1w=CWzdU$Tn z+vkkQvMm4qODt3>ia=#uR~12xh8t7NS;jEe8rl>2X|C17P^+(`ovAheGWuL@;6`)H zx~d2QrF^N%#5Q&}z}yVzBvUzUTaUo93{3 z8%$P?wobQOw#>BYn#CD|Qkf~Kwoon^G07N?0!3RT%DiQ{(Nt%Dw;^+&qBa}LdqcEt z9BZ`;LU;^g)Ili&)gJdD1Wf}-SFlBm*TD}|UVyVN(Z$Ukv?C#I$L%d}$V|29FiV-^ zVnSQ~3wStm&;!_w81rib@`YxrSY_r;!88C0#ren5q3Gq0NVRV3=S`47mH%8wW)b46|_aLKrIL2%uS3!*Jo| zf@y$R3}$~%spAxHrqDl;QktIV1HHNEIP}c{KDyuLSRsViw~cSY7+%!LEL%a`j+=k8 zB(H$5qvSjj0>;wW>DujAmBF$o5lz=rsmW;AuN9beB-S`%PDy?3WD9-S<&4b{qGt@} zj6tQ^b>Ks~rsmz6x|_%in84qS9@m$_3+3()rrh(835@ZN-H$nUZ!=5vnl#kSh@r}2fSbEN<2%W*-T)c8Aa`-04k3Tnljm=CJO_DVwg|f)g%o{ zZV$RS|ALRPe~6hw%STP;o-Dy|?=bX@b4-eB$^ygT#0ar4o&d zA)FkbTPndQgnBN^vK)@;5VqN5Q`dvcI8Z-Xl?i*$H=EFA6w_wxN1RgPtDV?}bQ&3W znqTLX$e)b@+*1d#@mZNr{_AjW(BV!;U&E|*SrYO3Zg}Ba5r&{I$WnKA9gC8@Zn4)K z^)V55dhHB4FIj6q#R$PJ+k=+aO!S!+fX0{z!P5v}rwN-9#2DY@$=p2%;#E!C^Uu?`6j$v#u>6Q4-u&wvY-$SG(Y>@1=xbzLo+d(!j9`hKj%3KfW@Tn9*>EamBQ*| zxjynvt0VX0#w}>{H??CcpbfOl+6I8CizON?g)j}I(E4@m9dH0&Hsp-e;Y~J#HZ6Rk zK$U;mLeUD-z%uN)-o|GK^8p8lfC}AGKbVJbXJ;n>2&8|bwWeXFPWHj;f-IkB*6Sq~ zu^M82P{mN{L@U8(Htl^ARr5uY;k6^qSTIFq z{!Z!(x6%{{(RED~I)Y_dIY7v2GQ*Knz0yocZ8Xn2WD=Xvf{>kvLwJI<^$;i#QMuD zz~qb}`)L%0G#wB+^RvjCu2=Gf%zpPP4FKbn48P#~6&ye+!%`TwKcnZV4 z#suOGu)I+Qadh9Hs7V>nI18kC*2OU5R{psyNo|fL3G=>PzRr2XUB`geKVI$Z&G4m% z3lA4&ku0xyf-DQ(I;HD($6kZcn8FV&`g^r4N$uIha2zAz9A0lYE{`~$y&2XXE<9Xl z-kzo`uX$I|ogM#MQ_!QFpl~Ljr^R#YK-(T4_Yc4Iej@8*;Wf}-kA)tV`2kW2D0hwkjl87K3|7Nf4y+0>x&8K^@vxd)IaY2h$N7Od3F zhG4GJRM~sYaYex(%eq|3nAHfOT%J$XHv#4HypN8vmRKIwW(b0o3=^W$Rz<-emFrCk zvJ#()hr=5}FuF*m$llXE>g`gA074q_BPj)qw*Lk?fp*dD=t1;y^g8r*^!_}LN%oj5 z?WI&1-U{ZZWB~2wwzwTinENSmKyW+}m^s`=*aObm4OY_V-`Dj5S$S;oGV# zL$%rmQu<+uK)+gr13dG(BfOk-zmLa!^d~Z-iO53&P5>dhNNMRhA5~>pmet|>yu(Wv zm$)-OKfG}s@mDfVt#mY0F5kq-DlJ;s@@5|r+Hp$H*IC1CxGAjA!}x)NJA*B_Bovcv z*A8Et*zvKHwY$DiSR(q#rEuAGCDQagV2qm`X-4Qs12E<1oIQIZEo8EqF#I*%6H^c@ zyWF6q;#`=kgQaHgp7W0KV?5Lgh+_*3&veSwla*wJ+yROTor4}uq+L!{0%MLlixax7 zx~5ttYtSqR3zn*J;r_PORIAXy7_e!n8bHXkwc7~{dzPwcs#U-_M0sJ@DW)h+&^F$; zSJ>taYf0kvHpH$j!PjZ5e$iEiuzeq_6XoVZlrimbO}oDRTKPt->KcDdnZSmxYV6dF z8k6arntsfJ6-?Sz@+0-UwRV6{L~&xM^}TE#obf|N&b^~b(sdO~W(#HqV1x$r&84z8 z&052oRJc0>Er#l9ffqM&;9H&x;SbhBVcHI?5OiJedgKp);pN66vZZga0T3tY-Epc~0RorsZ802}rs+#T)P<(oq>L$_$a?lOshIJr-0mc6KTd+F3(fz~w{y zXHX9Sfuhm_Nfea>0~S>PW6UH`98>jsf{lG!5VdAwarW)SMpF~vk}3*pHkD-t2ISWZ z+JOPGEFUPs?7NmASjIxJ2v9687ziVDb&9US6ukny8!>2EFf(#@swM%?VmIjrg!Tt6 z9nTiQAnsG-XlK9n1A>VcwBJz}WHT6>b=!h_S9}q9_qv5CH&l+vboi_Ebqx ztRj^Z#kD-o#`7){1ULsU?=dU@w*8L9sEh@SBMnBDtP&7J5DC?FRTTw61ZI0fs1*u2 zfV%)tEd-h>Qwda^NFp~FldvdB7(kSWuB(~|7$ib4vz^sy(bv6pwN&J~EE7$qMAH8V zRGmno#u<|YQ6hvGfh-_|2trp6@b2vmw2V@eqq90Z`M`^Zlm3k32T989 z-y96Hm{1SEu{-rWmj*)QB`ZPZ86bm))bZwn*z28GEBtElJP2VQ$?(nE#rmjB#6(|Krtaq9{o+7)B5o96Sv$b11f9D-U(EmgCw+-WOTGKRIU2v^D9WVK&SrWO$MlFKO^vu=hHt za~HzvMrM=Y<V#fxCj34YKt3t+oxK)y|Xt&2+118T@u&5&+_7bPxnPWi=r6yP=+>Ec;n z1*Bc)+@@zZ%lFO6!LG3lbNryWZ|<)?oS8-8)&M&C1bLo=u@wj_ur{8#R^LnnQ&dE! z(QW7fw1-}ckTkRe5XzhGyudcY7brp51-z^>!iqdg=IW(GwwvHX!I@D}H|F7=P z>Y^x0MAC_A8nT52$^kf$04s(_ODYRggKLIGO^p8{kQoEPA*v!$(U|=eeBdp3Yk?C% zFK{CA-B3|fHRNId-$`Q;9YG_jp}}vI9eR<8_M42}bpwb;tLVj0F}7F;_((>OJ$;vY zluTx0evrmZvc<|(`j{Xqw&a)roz5c-tIBS<8dF&yuk!R6_QF3>Zjpj&RA?NFCAWLwF>9l(}Zz89*^M6 zg}X~phIV8eBdWk!J#`)-r@>xEwqx+G(N5k%ioEaA77jC25gcrkdQBuMAS#oqaXTVg z+_428ulIU&gDK=1ZnpDYLsZ3t+jCwve?QonuW*EeL`6K$E`aI)b*v}`QJZ=NNn3w7 zd1~Jc$0lRE-;dxod~}mz&X~ku$zAai=&cMT!rCxhm;U-5*aEv4JIQ(16G#P zY(q?_XN5YHr0tm2JC!Til;{l&&}51mHdT7z1+8Kwff>p zvrWG-hABF7bwXwx)|Vw*ik?^NgZdTm1EqF+=FzEGBGhWHVrT%)QV=m#6F*27h6Q_B z!;1Fv4DC2dhgt59NAQ!Dw2{Az#@#Q)um?nOZmO65AGzHl__|tD)}MvO**{`zwv8hH z-Shtyw$RP!W#|nEK`K7Z%Sw28)8;@@Fc&$ySRi$rX%kkmb{tu>BWYD{wk-Z22^>jd z@#_idkPU|KAhFz6sHV_#NT{)csEmv*o;iO2h3 zz$zbo*8p^!|1Nu`FsE?LG>n2=?;|9J&p9lR`4Ycr)=4Y*uaRwp0ZsGPsdEuKgBAr$z@ zUcsmS6(8~D;G58J&x9vAoN9qrMp#+eQXIgIPRk@i$ZljhO9Yz#)D~EfG9A~1edHJ7N)>0G8UOnkB`u7 zZMhXp3z(2l(DKO^rU^pOxf{+C(WipK)S5qv3JnPP@z4PC@dOy5`T5ueTw2pI`}8hj zyY)FLy)x6HSC&dQ0E8^Hk3A6VNIFDwPKUeS0LJcKGka@3x~cx+CB5Am`wX?n2}_enqEL5L8ufdy6ZBI-``;2P;c%TUT|%L-mU9 zc+tW_<+TxT9)TI)mqe_%kI~zj^|mH$K(-X{7;I(ETDbH~fxpV8TEnpR}n5kl%UV6;X1zZ|^*y$d~yei0$3Ne9I1-U{e-Af_!gcR_N0w0$8d zo1y;8*BRX9k_ElBl3F|Y89^%-ujMgBlzh7`d%xdSBglv&wyCus*EeTFW`gH%lrMFyzkpd$B^5#x3aMU>|NSPt>?Y%{z!SW_I9k-fqnNv8x7HI z2(=oWxuFjaGU`4i8#lY7uWUn$!bG|>vxn(wjKi5dw2$qgy`cH==5xvFzr7J*zr?i? z^OCk?a8tbi2x|7;JuI&pQ*>SNxobDCPVviNid?N~V-tN4JR_og{GNN-U(`(#)3 z`$|zD0qT0gONAqwGHi`&IfvcB>@h$7>xlu*ZTg+yfcPNanqc3@fn{-?TUO4wWd+#( zK3&J$CGL&`u*UrB%b0z?tho-G!??^C?{mh=7|$`s)s_v{T!*za*DJV1xB2)d7d%&M zy2V^OefBSof{&{Wrr3Wx;C$t6bxOW=Bk7|@QJ)Eg$WSr5~;9p>;l z5b6d=I~`_H6yO0qcLEUx76lBr#Ib(K#qz%(rX&Kixe!u8QuYi`6x!Un#WW4;bq%U8 z0Ao*)1lmk7J|aK_w;d56THE!1>|-4mCH_}%MA&?i&4m+&^}FlzTNe2ro%b9<4v7X$ zgk@RkdCNf?CYt0`RqWRb)SRc4tOP0jaiKx`N#z56d5;OUU6wzdII7OW{Hng$zcMoV z0%5K-EZa6zjT5b3SU_^#ksXwxJJH+F=i^f5Q@n@40deMmaF7p-nhnVzS_kb;ri!x} zPys{6lk%&cwga9^5fouvPSZ};A$79Pu-5?kJJA>H@2_u)3hzC9?z6EVN<^YllqWim zFvbScf4Aq_^oTQ2@Hg=u?lrb}1eTWB$+vpRBkZNHBmC-zFKzKCR3g&u^FPLBpp`}J zKmiFZeB0$hEB%^R(XowFiAW6!%k0Ge;P4^39=!xT9hH+c_0ap`H<$r%LuR|6Dd5ti z<4}fy2YkqK;h{uorvnT{i31A!x?)V01Frfm_AApNWBmLggVPBT4!k2IW5RQEYry<6 zO6Q$UK#vf|a;*@yKi2Fu`Im0bAJQ0SEL-UMJ&f`}RxGtzgF&lRD(aG?FF8RYL7p3ukJKbpX^K!LOx#BmQTpUh{nb->=n6nzkf&4Y*%yS*GNeZVQgl1_76M0I2hr_4QBHS#keg%NyuXR7GF!8zuf z7a6>Yq;FTYaq`?l4RLPzstIyWfn)kh6FqBt1EH55%Xwf=nlet8W`=lf5Q;l1oQXYT zoRQ*P5cQ%*%Ov+0K3^)p0w?c(O>Da3tQ`|1qH%x=-;XA81snjm%>tgKT*J%{2XGDB zA^`I|f43U2D~;NXMLaS4vE4F&`T|=vFwWT6VsDf&9`(?hLbfrcxeDWltDK{cv|q~- z%L`KOk%b%ap_o~R$Z68$q{+8Bp(JX8nkj%;Gz>sDn9nsCMH7GqD2evucm}bissGV2 zs%hlbBj^!Fwaev3$i;cnM!9UO&XKs2S225&t~J)lhGF1K{p}> zC;NC&I?U*B8-|;(Qs-~r{2vxuMC;M|K!bRJW-k`(|HQ73$JoCBe$jMpbIhXMSp+~w zmHw9|lYO4|4vWLOF*4w%Z+?GKV2ogj{Z7Zn&lWXRmQ}6jYrIh6y!1nqU$(S-roc7- zf(@4519TB>J7IXM1;jaYrEx#$+s%|$0%my>my5U?e9`>CrHyv#c}oG2@4x`W^J;;u zI8G2aj$#Kj&m#cs`SHwb=Ga77``@`0+XB_mG);33KzTE}M)SoP_paD9J z&Z1l9^9?Ky6~WNZEae(0C`ySgjcQq%Dvygxm`Ya56fmW)L9HzM09mrOfX>}N5!f@e z@4=>`t=FP6S>Wviu{hVRRes&i-tt zD%Ve54tF8wb9uQ2B4$7%M<>u3?`r{i8gGIJ5}gg^NW|oN}Bw$X8P7kbJ0`76`UsZVNE!1SY+{OrGA#)A3z^hoctyFROgc3OF) z%bRC_7t1ApcqdENon6tUJ1si8(R@=6Stl+3@6MTUbUypK$~FUJPh^^FbTt1~X=Itv z9o4x0M1cOx;=bN%U z;fdYd{_gJO-CcM>nJw%lXdgnU%?jyP1!pXWu--4qX4t-!!u+3LUv({1)lQ30qrYzC zFh&UrJ(*uL{ew)JYEnW6ltB=+uMBP5R!CZ4D%3X^%E_2L7hB+w@cmL5VZ)hWHVjZc z?Ip`v)p5YJswa=(^xboH6Lg@{xru#@&S@vbfVqF+b9Y)PlrQP|RRI7-qn+6Fo>1ZbM^HJC+b1 z!fZ7Ti7+RfBz2$&6Vrhk_!(WZ$zcyN703U37Z2lKY*5EjOC{BFXw#&YNPSO`MJH?< zf(*Vd5!-IJZAX%PA7sI3hmIs;&nJ>aO}OT$sd8tPc)ln*hCwCQXS!row3ewvn&}ut zJ8aguK^#x#}Oi>BI?)XITJX`&Zp5a((Yugw7U98Hk&m=dtRnt{PZOJxOvo6hfmaVrvg*d69 zmR(cU>$a&IrtDYpW9(>JYy`%dkAB&-`ABZ* z-<)?VO667qz__)dD5|=qC~K-}Q*xdcicvIw&5A`M4+!x!m|S|1zuo{dl`V;BVPd9V z_bM763_GT(RWJ;ws_NmWHM`c7<*R?z5`vI=bPBYiyg|PV8saq|9+(TF`BZ>EFiXVV z;DXluX|Y*{sNJw>LOhC1tB3fGwF*M+?f+-ZZHnMx^UXYrCI_3KOS2>)`x?QzR4_Ui9{Tk*abGw~YB z!FBYPqPx(;==JD>Z}7`E6|R+Zn2mFB&6x7F)J&A)V3Qi@L9drQlo3mpT6TZ*LLV-s zi?AR17>sA8v~@p1v3MN*Rx}|xs%Yfr@?L5P1)}nz1miJvf#8-*EDpiIN{HuIyYu$j zRZ(D1nU7kW!_?+Y?Zi&5z6`w$??p-(G3`Rg{m|=AF8PG!=+ecFPDmId!4S5C@nYb} ze)=HxhS@L^DE>@dXom)X=Vwe2Dl(&|DI|%v=hKWm!2vY2S{pJptW{MFfIo5Z?iJs| z#^`V4CoM3-f(!slYio;Q(WMX}M#kY&t1yiEF`+ zT6tleEyPfn_^p4_%r~0 z-mbrG4iv@sfuSf+D#s7TT7r&k{;r`YiekL}VWo16kSRlp zYlFsZum82^9q1$I7tpVvZ=l~te~SL9EhFs!bwG;0+ufValthyELa?Gx-nGgL2CDGc z_aL_Mj|(9bO` z0&Qaln$;8?bcz->vwKwc8E5vMX7ZECjZRCRVtfVr0ddDJ`Z#B4#RLTXa6t~)iF*Cm z6Hy%)8BNq_$rOp9x5?>-a2d?=-=ZamN+mPHy57`jT+hfDzT zk&>vW{8W=z770HEUt=1#J{6|4_VABrp5m$^mL93zw}&`vhH!xGJMEyu=oA_$$3a7r zU#E#*Cy43A{5qrpDbrBLjR7PXic0wM`q-fs=8YLQvPe@A?^4bS^uh zdbS#31XdqC*&Bxy#dS+RQ*u4oswn!0n>Wv1Lu=>=I)iRRh!Quk z19^mSKqFX*$rF1n9pj?4skUQ>UqU^JX_9||5%c)otOV%ZH4bRo<*o{4k8s0&m2Gh1 zl|k(S1L0;guJounRsZ~#`6oD*UM1n+B=omVD}w0_Y`_5J0L<8Hn7OT}s$%D6W6xkF zDRi40Z}1E;qth|iKP@Z}@}_J-{9QHWff#FOQzK?sE^ZRi#M%iyKY(}kBCP;L;uQu_ zaSGiyRs$Y!@5E3MRDtHC?Kn!awm0@@3NoI%WVq$afeo)-r@E%8fi6>LYtS^)fu@ z_$0b)gKm{^Sl+bg7DeTHfW&O=1pUoZRCiy#W z$Cf1#*DJ&e+CbiDZEUnQ0XBEgbh%o`q9ogDYYs0N!82BRTt2j7DL)2HFurS>g}ao< zceWrwhw7So?J~gfwW_9rSI@NWlnD)D8SLi1Rcij&(tAli{E@92+Q3=|t$5e+SRgWB zNC2~v}ZnS3qM|?pd zEk@rDP3n17Nx9-R&iMQ;Y6d>YV^tTRckc$5&nW5{N%})9j%_<}4`Fj_sE=+$4~+M_ zMr_vydWS!E1rMH=c$^;&zrs?wKFY`Sxu+f?Q9GMU-*#_TS{WLmr)kekpkjN5kx2Ux-PxE%0e8f~9=2 z!Kc}pRj1nNJrAlupaspE=MkKV=J{VoxjcVkUw3V#uRAt_Q#M@tQiQ;3 zq>Wa;nKFPkM(EyrHyc=xSybmOob+G_SJx%*J~(MSn?j!Zl~*fgYo>@ExZ$kw>M{zz zNY#)GQw%!oi{TKA4i54VX0{(<5Uzr(q$dI!jmxEhoVWXM6Bv^nP(A`%v*Drzlyi{V z{zilxqp18Ub3Xy|$8Llb1F|4iu5G#pYr4{1caL}CqNB0XOEf_sA=Pv(dv=npY1wzv zJON`o&lkA}Z4``CtO4Uqir%|_yk>#1n}W$+3&IyI2vd;lygG=h*a*-(I>v?u)y?y< zAc36-{9D!V`0{#yDW8vxcD$O=mZEeQ`v;D*VaM%+*M;WM|FS&K`avW6bUQIX8E(^7 zIMtnSCm&kizo2Q|dyX9 z5Hp!u#`&sc+g5c|b4;-&k&BkDX&2zVF2?SApg22wIfXFgV+~T)!f#@qZI~h-9YROY z;|MutLr|uw;o6{*iGQ|aqUh^J#tCSzWjJk9$i2UX-Y|(P2o%dVyasG4058Wj|xEc&Qj>lyCe&akCuJ4E^ad%ClM!F4m;>OIz1 z$UjH+T1IPWW1}aZ?27NzHDFG4SOsP1QS^HBUi9-EP9-Fb_Otokrcuxo%x6&-Q+)!v&OPZl5tw1G+hF`T4ON$ul^+Y6+ zbWI>hI$(_FfOEqTd`*SGkIMe+bIiHUhZ{W#!q}aqpHA1>V?KMJChir29$gN;Rtiln z%X3S<=NZR?Abr^jD=W*QIQx-RDwhO75Ej6;9Y-uXj@5EK!`MqEmxl^QgO-h>DSKi2 zknBOHw8w3mpcQl+A+XUjZXAIyCjuXR0>x;BaagAZV&R`2a4g3bSv3gkJ3ZS_mX{UN z^6s>QpvnZxv96tun&q17sj{qkZmrym=C6IpG5+TbXAC~3shT(7mhEJUVSBr~o^2?Z zV_SUSX{xp<7={}Z3XW+yg+kyOhOqgA^AznY$;4jd8&%1O$Ld#G1CT(dYp17zm!wgv z_Ayx-bU7PVx1lbAFs4eTLuUV~VOaC!vgx$W0mNnxuFG>kV~4^^Jg$J_R%hR?x(+Ch zry3T9Qvb69Dc>wsv6CIlL1z80T{t-!$+}Y?dC_vKH_ka#b*&dalI+NQ!sP3&li9={ z5Awfq@7wcGlaj!Zg4&&7+>RPSoCvS~HGz^Igq$f*6@0((OAX%_s-Q4Fo6gh!M+^0O zqfxIHV5%s5_E_k-0InCp2f3nr{LVWy&P|i^SY_gMds+Q@U#FC{gKP7w$>SJi!|Z69 z66^n2dic-9^k2c2ZD^WdTmFHG2iP?G^MCp$Vtn{Yk_Vki#nv>tQgMow1z=f4ga~3+ zzYYHjzKG`0jp+60)9AO+U+b%xc>$3xiQHhSl9>Ogl@pp-O^4eMYYcbB$8ktR+Bj~< z3|HqwP1=qDH>wo)^FsL*v?#TzOFB(6YRA$rTfF8GKoKNWzxV2`P=)Oe8@>_92=elx-Uvf2^xo1j=1} z2W-162r7+kxkBMgF*^ic}Rx@>hh_|FV7d2ZkXL z0-zkC0+!SYSZ2l5WV?ayY+&F9Aq3bK#e$?(08FdwX|e-Pd|7)-JWoeve9j%oQf7aW zLH{ zixXMFg8uZ}5|e|IT1(N=wfC$5SG{i{ui>Vtz~ca4*q#UOK9mt;s+jcH)9w= z3_MBSvpx-a^C}Xbd<8G-0Q4y!0 zR9XbWABnftI6md2G>K#Tr`c<@U4C%$j=9UPn%g}D!NZf51m?Oca>jNUyY&5qI?tPeBZiH zkeGX)<@3DgF7^;nvtsMG6PUntL?*Kc(`3%RREZ*YieYwRJ&u4&+;$~!#x?e z4{97&w6TEhLhm1=8@i-4~=4I({i9=CFlM!XsU(#ma0Mdey4P7Mr|xC8X@w->kLg9 zK(Tn@XsQJ_A^9%)gwZnOI=h{+lW2^pD%;_uijC## zT&{z2ea|?%~-U;aBfRWdAob)6{Sk@XFw9cMhP@SdAKC zQPYZHBU)`V0D3UyL)>zoiuE~J5a@`?t3Mh)_`Is(?%LVG3U(BQ4BN3HDN0e(ii#pB zaeGLPEdD7wXV7>Oc=(^6Zt(QuJb+O5Qanjp@cFL zv(?BJ1yd2TsbtIOJ10uv>qoS$L$_{q7t|w1)P?TWt%tU>nYcaoy&i3Tw4rfu>!B^} z2~_@EkELxLx^**;(3sa)m~RsGpF;K-+m_IAbSFYB=8Gn^`z$}$gun-9I~u2(q3wO4 z0~%+ECj_bPLptg1gTVnicJ$t3!(kW#6btP=a1D*YBOs)-=BRTE^9E`TN zF@)i8cxkEq| z*I}wEU!)r5ea=A0?Avg|v*yNSviV_~DdpL3f!CfB_#Qlf=5^X9$VL$wq8&SDkOUxg zZAc|%09mpH^Be4?1zRy<&_o`my zaD)y9Cw2W#6({J&1lVpVT!H}SZggU45#z6VL+@(V*9js3T(<}sJkqzId%pA*w7-d# zb~-|euD{w>aCWkm^xk#S=%%uz<0ubz&x6!R*ZM9WNz&=ocAhq=8()Jy^H~A95TcZlvyu#wiK#)jt z$$3$1j|Y(zgMrG`G+wzq#(4fN&pR-w?8`GX7~@AEhLa7G*;J=?(I;PHnp5t%Gn<*w zVj1o^w`v<3aOFJunOOVib#3wk-_-^OSoRqn_CRoZ=FaVgoOsq>Sml~f{$9}~^%pbC9s0X4LgR39yMF5sJr%IBG;ZM3?-{y}A;axcD>OX@&sZ}ejqTL!_F;wPg=bP_9 zsO1I&nNAL~NXCLnmz5tWq1b`u^_IwO1({(i*sMA`$Xz#@{b#hO&+N~1eLjkc9ROyL zd`Z;*L{+!U1*wjynX}kkYPAah_wNb6iY==K@FKCxQ12?rAwx*2)1ge&2kbCaR&iTy zuY;sn@ukjSXMS|uCv*y-K1X@Es~)6|4pjdPp&Wu+zuY7`ieQd0^B~UAs+avvVz%`$ zc2O*Kq*rEZTL_J;$eO|(3#?=y=0zb*9se+(F&vH^aK?H+-<~;R{5$W0*^8X9(3h!s z;Cbl_r&SVi{hl_)2F#|APdHuD|Lrw--Klu zKpQ#EC}~mWLe_8{ki{}y#VTG~yX9n>+N3qSq^1=?WPx966^kGfDb)*maOgOS`6K|i zMEj;MisHVh>}cA~?2COZlxJY1pLWnZ+Llg`a%5=nytFASN`OnGP^-v<>^(iz2$A|I z(9O(@S}F*C+mrPYH3Om1g}~|>VcwsYGS}v74{o+vy7bqt5@+3Gez1v+y*EXKw&Os< z-P|?Z1!BNvb{ejeou49Y$A|l!x3?exm}b!r{i10CNDDRFuJ!HOcirE90vHB7WT`|7 zLHbcQ&7x$!e8b}&Y#t-vo!LUVJ-mIh2S|rI$RkRMt3W-SM^${-z9*SQ+*7zms`McB zq8@EwH(VD@S9<`4q$tv&6kJi;{ssYK1cveLK528`P-zjqs3;F<`nj7NjMgfQU2mS; zNF-_+zyoat!=zHuh)N+WgmGma=G=5n*B;_wKwq$8qfRCu{0umbPv&~8)1UF;`qT{$ zp5%dt-pDUK!e0PT!@2SZ=32wCBO;c?c0{?Ke=Zomu<*kNY?x~e%ey%Og-9pIKd8cS zjoRc!&VC4u(KF}+vLDH#8;TT0$o{Z=qEz!cC2Ge}EDKR2(P7RoqiNz@xRX8D#1A(* zw6Mql)O98Tr>aZ1^tp>&7p8muR|2Yo9gue6FxUmZ}ukvRd_hS ziIIanz$AL#lnb5MXxC6sD~G#9nCcoKqjO;e70^6dMcY_o1EI=XP=!WHhgm~|nG&6$ z1xN_0o%aWxdpE#%`_I;xU+t^t9IwLhDz8u`JF|<9%xL90?q0N1?p`z%?7LjGE;@#4 zU4-ZMORI=k|J@UYx0e7)nZ-E(=T-)mrS5RoRCc&aRLe1T6w~E9$nV9hIy#CF7;KSF zjWUsD)0}jeB{Y#D!oMf^Nq-O=Ve86ZWedRUNpi*S&#L$voPuFq&O3QO@8ke|TatrW z9>|j22Y~53hb_t7*fZc@`q$WRL&#m}oXA7??J-_lLWAs2kV2)Xotx4qZFq@wlfH(e zFO2FMhN+vjAn}s8_FTARVeq}ikEZA?CudU_mkKpCAJW1Z3r8bN)bkIp)$lzS9ptpa z<(5NT#u%kXbrQvRUU5)-^J8&gE%atWC+oKu+s-hI+i}vw9H~;TBl;T%d4loEMNa9e zBIH0Re+zD>-z>&BJg(#VDbL1he`**n0Hu63)>TD#dmosYIDoc{Ip;RNg67c>-GtCw znNC3)%B~=)rko&r)hVNK!@q9@xCW)tyuP}6I*$>zQLD#sS>aqMR2{uvHvYCx;??hN z*~MjQrW9SsR2HoNb5Pl|_{J;;|-5F<| zclLzA3yop?WRb!~LEk`zi#@a*M|FrY1EMU@R6Ru9AdAAKR1hTXZ!q(kbjZ1pFA$x} z^FGmac11HCA2~Un!U-Sl71U zBZfw82$LG@*TT~Bj&zTXLCscl49e`XV`%0BR_1WcI=SE&s&(?X&2)DW{Gi!6v9{J| zz;m5W8_&lWOtVlh@0qO!;$oxTP$hI(B|__qEt)-Op2$2lX>$>!<_&uQ6NsO7%u{cHzbT3=Uh>ZZ-NR1-+#KK5E@*OsY z1SHH$HQ~R(|4*owKf<9Q^bEep?!a9KZ{RJQ({=FHvA05}Yb8*aytzr( zJh)EdP&K^dx)%E_LFuQqwb)hQFGSV1lpAbQE#Vu>mW)^=4%q{AV>$%*B-UAE8g>e?qrM@P{vx}((}aRX$(_vl*a5)bxpadO4 zC(yO%JQ~H1m&iXzwCNzCpOPU5KE!R<2!dOL;WE7O&@g*r0bnvhz>km=7_;WtS{^x?(4Qtjt z_F?})fE)g+iEDbEsd|*Kl~5BCW!KFQ>Ow*;d2&t_g}T;`W|x*7``-juS9RauQ1%VO z`SY@E!?r)-{sn=oLjQi4(5(tGjue1smLAO6B$?~JA?x8IJ>`=mY3yY*(bzJ0TK zJGuc_sZ@Qlyk6fhM|N+kJy0HmFS+HNkwL!pT1em1Bh$R*rqNn?_Lu*I{I9~vp3x7r z_snYV>FGoN?p(Ki1Q~Q~=%|1qFZ1fOtgL#D-&9)FWY8pYmE)>U-2Gt(!o8DLgK5?G`jRe-tYUc&v%-2ThXnFn+~ zQx-;Jr31xA_%TLS-N~jX=Gsqz*RoXbN{E&Y&EjqbBAsD%&uC zUJfnrcndN{8&@&=;g*Z>`NmqflNF3@!fK-X!Zy%HOG9w_sTE||PiAf-}kp;W|Bed;`6*}yh+V~w)4 z`gT2VyNv1E^)*J<487fW_6O0I(AUs6(eI+~AQZH>0U9z5i2Am{ml@*L-f@_v!(=7! z{J_iXfK_}0{?$Q}VxU#8Jmuk#P{8hrLM``bi(G!(G5be^teNy9=Y>pH1&K^{z+ zt|)ls+$mB`r4xcjq%JeJJ;b4`!+8Uw(>;?1X)Zx#U4FOr+V}Z&WcK_0{%*hD?{it- zTBPEk;K3q*@3-oKF9i!!S=ivRr00aR;-EmgvfQPGpxq`U*9qkt3kqE*NF`BnJbEP@ zN<1orf>7cj>8_mdXSx#3i$boG@4bd4y+-GK)ZQyr<0ZnRy0DHy9Kr~>7SJ~*D*-$6 z`R)hp_R>ZWCE+Eb+oIVT|TtcFP^C?j-z}-VX6zSbyTK&!$fp^$7_W99(tbJ*^8^)3PQfc;+ehsE{uJ#+|wP&4YKY8IUof1J*%9X~?&R!peK90z) z-$68Fqb0P1ZbrAGi|D23Rp|X!iy2ih#6MJK?$wxJ5s(_g#CMmE=_&083MB5DPoM0J zfj3N7f6N%9TnPmXs_C5-wxx(Fe;pV^zzBu-*?_}FOXV~Hi(@Y8!vMRA{-!$_Fi6=#BD_SpxrfHht(r%xyibd}^?SmP@=_AcF4m*TQ~ZrfHOjqV5^ITy92nx$VB$@lxo?l~)uG@ubgYi;BD>3i0d0;O3k$XH4DCf+!J?OPUCIqjc>BozN7$>~e?3hDQQZ=2B9lUIC?5w;e88%|k)qRIVJ} z=G+vOyL|?lxJmqH8 z3bxJdzD;OATH0|0Ka?#k?kY1;Rk%*5z?^(_aX>J&O^1cFG{7#9I6sT1G$SKi;7DSs zx?%w?zhtdl=r-W3b;ky$C4QN&^1W46M|TM}aO4L@kn98dD@k9;Ixjx%Um;g7=)g@j4S@ zO*2eG$u-7H*#}4z+jeY1*e*y!Rva6{12xMs&B`fBQWQ&1in^xh#djagtE#8_6I*Sg zhek)~{5K>N8osNa=JY{Y6m&$4THXeXkelJ4e96(pkiN{&^>RG3e-J19-YA(VAgvU$ zSRz!trh3^)z->ML)dlDMRgpOg_}<*xrKl*W*U9tk6O741a7Mn)4`YM(w759((08`z z)K=yybT<8x+3PPc&G|3ujPSrWv5t2CFs$0&mApGsfvh*>g>dP8up(Gu4b7?KV2q8 zs9*l~Zlasf{c_BkcP2wLal9d_5M*7#m@lD-NtUcllG`g9na+hoXwhZGJH1rU1bp!8 zn$M^^xO7S!o$K=K^7ZqfzWP_I_xN-CGv!DSubqcJHZ@F&Bzoz)TKZ-AwR$b<&>bh+ zrwWBw;ba+ptbY4Pf2+JCuQ`em$e_vw`ZS2yYUyu07{wp6R%ci45C+8X#BLTaf*wp26WKQ3jM zeane{nvCc94k2~Q`0(zKa-1@HJV)PFos~(j`ey43Ne_(d>89`Nj!_c$*>YJS^mFsL z<5uua=U8)XSrT!(IY`FU>Xo6O+fL=#9KNpqXF93E_ zRhRC;VnOZtLIv(>^{^9;r9@Wycab&D#wfq~O*qia7O2b+AZb4E&NkYGVBHDE3i*D6 zPNg-lg(TV{*J-SuFYv`6c`wl(!5vhY7Xito?)=XNdJmof&jGj#>z63Xhjj=uuX`iC=e|`KKZZMnz@ESC(C6 zU*|Umpm7urG8^ZBR476cH)I|P;^F8;`vZTFtki)9eh`cBq-j=`V==p&G?6u3)v!SC zfZa9=v-5(Byl`s0;W`PAiC}NYIqNz_0Qtye=(t*s1g9R@FeeCUlv%9Qf`aOF;uVtZ zZSbFHSfH||tM5%BUbygv4ZA@U%`1=~z3*L$t(u@HWa;ELOG0!3c!D($#W`A&&R?vd zPK=N?pCgmbSQij~f8ii@OVMu)S`wGn!QA9^Jp-ARJYU}=gY@y2nuTKD*{J8xSQn*% zX{a1~WvdcB1RZjk@xnlaQ;|E$yIcgt(UnI<2b6zt|xj)^osFFG5ietkV zzJ3XeHP?}^i~*p_MDKG-^gg>I_#%{BAs3jiXFz(bV1ry{z5E z5=}U`mbbBsM?dy34nAT4HlC#(6e~Z6pEJ*MtLuQ!V5JmZ%RsKz3 z*2_)d*F`VDVAKuJ?`>+cyg*r&iJnMeLamgZ8Z~K< zUCElvX7VgB1YSG=IeU(d!>ax^Hkd5NW7O@ql6Q&&m@hK`n=gCKYX!d&L-8jV<6{Bu zyYLMlYNzBxddGk1GWg*X7jg(T+_ua4GqRj(T!#x-3eFmIuH`#huO!3gF*gAWZt6!E zlY!ouv0o24V=uF-U5Ut(4?Oa&ZUdYFisAx z7k)Bawk*zf%d`I4gk{0ydmWW!4Iq}r)!i_LTc1^a9oe0&S@$5`u5aid$1ZBzo@gbo zqLhBQn9Qohz4bl!RmzJGi=?l@z!%3NjukB8pl&?hFxv!RaX7tj&*0SRt(AxU>enGO zz!&k9X#gnJE#@o+*g9mSu!uMy=P^w{?(9!Lcd2d;EjuQ@wp}n@#hjN&ZAjy0RkX@a zJnIe{gE8__Tn`;~zhr$Nl&k3)>Y{6HfMsaFi$OMP9j8`1<6w@7I1y+)4q7we?GiKWHO2yZfOy5V=!D{H3 zTKU{P43Ia<=j0`7K`N`;K9O9~gt!0nUZYFcLos!HHj=}Hb9I-#;SCUV37xlbiZb+s z{{Bo?duQeYzt1=!@9Gbnhk-A#NoyC~A6Wk1zwbaFM4v>Tp??N*_Ok&-f#f|uZl_9r zlHn+W)h;e<{joZoBOk>I7D&aBG8go7E1sV#Bht-)43j_C7Si=r^vYS{JLH_h)Sw)C zLG}!L*BHiNloPMAU-W_V|NA?vvv8>C8qJ9yXql$zG{>+=wDaW6 zI9^7ZHpzn_Ha-=^82t=mFYv3F(8w+k;bq5Q^~o48PkNA4#GEwkI*^TDwgmZw;HlGM z=#v3rKHE(jmQ%Ev&Z({>7i|6GpW&wlf_;=p58w2D?0k@^p9MdK2{NoU#M|gP{E*|X zLmxvLfKU`7)ell9TAB`^cvMmL9KzUtkSYRN8w=u~v)dh&MBI?pi$h@v$};Ae83p2n*YCJl0Bbp zS)!0v#Ka0S*~?KP9e>In>5LnsPSS5(95x2-wzac#>w5XLIL-MNlQO67pS4?Fime_r zznvsoiXta2R--Y#6Utf|5Ss|cdyXksq`OBHCPx;X*@dpn9(s+w{ZDyX+hoH3A9YxVKl}QjT%}-XDpOq_*uq8T7wb}qEd93 zl^#&?8dD5_%#mWxT9S9ym!wIF2lo~PO2on{#aL=HkR;mcQAuKLNx*dVUMh;dUBSU7 z0D#Sm@AkIAJNtz6Wgt{)rBoD!VnGl^y4sQm1^L^|mJHVm=Hp$4RkBF0FZNM2?rZ-@ zJDKscjiM|nSd{vVc{JIE$bk5BAj!t)H1&xasz9CHAMECv8RPKkGvu~2OCx zBZQ!lERvvso4|2)3CUYOZVD_w*!-ci8^zmArkHELyGa@v&G-ed|ZsRR< zzHPE)nGhBQuKgfAfpkj8iRT8+%y{bZvog$vi6e9D{~30UTRH2QChc0*QmdUZr&tha zoX_9T-!B*j2#-_Ka^H0wJLQdKia!==s{4fCx>5Jw0o6zq!`l4D=U^BG#^4%P)n?}3 z-Ll4ckxpb~Y59Jwp7f!kskdlXA&<^B#JTe?4Y z0R2)Lyw9O>r}{dd^_L<9rHpL~m^p^QOdzsA1X)AFT2dx3oWv0ptd<8iF@&(t&3aq_ z!zctcvTKNIP^m7~scCv8(|{8(&KbMZ(@YZ<+W97$>dtyp%5z5^dK)i-3u_8jj*|!?nF=04CBIu-Q5eB@j&+Hf^Y%J zpnD3lF^mhl#e>bc-&jLESsvsP5R%xfbsQ184yn_G>>Ydn0tt`bR*g%;bbRv+n2vjr zC@R0Lh@#XRj|r_U%!eV)Le^V_!*G6~h6Pcq^*FbzUeB^P@2y`Sj7~9`0#KQq3PsUw zM%mg8^OWC+8`iR@X#*DU|Gd6kXB%-axdL+^uC1CF*GyI2N=B(r`F++f?!Jg$2bf@y~BKtSf4LaSH= zC>C3-ViAnRP2VP`)4BWjGyf49Mv)7_!KNoQ!GOFj+jO6*^7k9?RYkeoOct4Uo?EtU z*qB%U+v|X0u~qRxaNX#&F4y7qulnDdG++#?{`7waw9gdKXa^L9Phs1^G0w~H^EaV) zf9d2D!X0;dmhQ;rPP=uVP57ih6P|e8{H}ff8R{vkXnssiQ_6nEkHz^)>37GFk+tx8 zYGlKnfRBN{Z}c2WUNjR>8D>cmFYH_@_qPbh#rsM3lX8s>A%tFfYS-QRpeUTa1PD`R z)g*lIHq~Ww#V01H?Mn$PaQfU3yP(GuQ*z1+Xr5N*FUH<+WLp zAy?#Kp-@^`%9s#2%LZ^D z(@c7as!5OS2~~=A%T`B2=Pu-BJo6o@X2z?nJ9uGnaRDzyPncC5UegLk(_?|?(`0Ud znrI0Pa_ftzRiaI>?TgyUckFg-3w#=^Zge6KK9k|PB>e2iPb!?HHYTd7C=2nc$K!iI z8q_cb+%|?+j}%2!Km4R{qA02w&;EIg(ay+09AQHAk=K|s@8K|u7Ki*T=aYP<$xLUl z&fF5x3wPz000T+rNOE76I)bEtB$ZwpMtY-`WeI76+w&s~#33O=5!mD1tm@-$gGXy~ zNJ{hg#_|5UatK|6ZuSL%dgS+x4>pWE6R|MKyE)zj<(3r(haNsgjnYglx{T%%cf0jL z6Yza1HlPEQP1O zS{Xk}8yE>|^c)|e_xg1CM3iQ==bYO&s_Ko_NmM^bc29*;JJCK(Hz>*tPEl7~#N#`? zh>oFa$6XYxu9-au$y7rd09OFo%k-6@^h%xF4TL7LR=Bu~SZoPkU3iU3uF<1Z?cs^c z2L({^kIFR&a++eO|%!A?7yRRNONiB*JkL_yMh~wz;-HSC#wLu-7=u2sm+JD>~woD zzbBR<bI6zCGJ%|z0Ai=OHogcn!^Gr8=PB~L;05<67G`kcThL19_j_V+9N;Y|Zki^~4L%4Cd zXcNcj>Y$%0eVF48+<`|Q{N=wo(#lmGA)JX$MeMYDNrUP9t^n9D0AiEX@fhFjx*3_*Qbm?;!*qC($?!?CV);W7w=Hg@{QjKy{w}QO)x~BIApenbr4qf{fc=_o zkt;|lfG#s8>j3JBJJITwY3rjcbRBvQq24aYe}oAE5drD%1P@rDB}7Uz76;A+Xvt5> zOx05+VDey8aLL`LB5xHzjSFxDH$tV<+tGzBJW-^=xf0;S4&K~k1%V*u<| zTYkj4pnT|s+%o`GF;&%6R0ybRXE3a0;KNed&Y!8D66C96UxaBgQY0>~81@SCOPhUZ zy&lGRsx@@mwi&Z+TW@G-bxQ?eRt4S~tdw#GMQ zrwVl~`QR(Zi6j!=@pugQ2V1f0dwv_l_XB|c&!5<9G~;&W47UMv$2m}O z2u$JQ@m0hX1|e1t;47Lok&W2_SJZ<8RWTss@`V3Txnu4_UZMyA8UR?&pDL5O=QC!_?BBwS9^e^ z0$9##n~;JL^yTyberTJz(VV@cVd$p4E6cmKsT&P=|2*#tS$IBJVa9YcG8lsbR-c2f z=!R|9YNl=IC?+|-y`Rs=Z5gUMnW(BU(d2R3Rfu@FGtsyrQSX9rlB39ilovda;IWt2 zUDw>qxo9?%*?SvbO?J_Tzw6+-b>u~#UMFcbq4xSjHw%bfo#Hh)C^a83ksV4N_X>7x zEJ#!6nLoZb#O1OMjOO=nwd8ZVS4!g5Bd(~f*%=VOHpcKGvJsVrKbIqQNa69c4Y*bo zzx(I8{+uh)_owGL9Oq+K$AT|EC9ttsnm_b$==$Uvysa#!t?F3tdmeh^cpr@gk!Mx4 zQ4gQA(x^d-ob&?(TtQ?mNgZGnH9EWU!y2%jcr?5%FU2wpw8I9Qo>oOxGFb<`>2Um^aFj8V z(z)V;6$M=<&f!JO!uPlt-G=T$FGFL5F+||i7U)SwF``EU(x)kF5};3#r6j6ul-m2Knx^TZMBY*TFZ^x%`t~*L*Hgz+4MX)Ds;bcbO!L1y_=YG+ z+RDbpiY7@SQ8hhYT8ed5BScfDMK`D#gPG7T!)y(rjIW7ADmA#QIr&iF)oF8KTX^XFpDAgZ95T4 zoH0j{L{XcZ-rRWgtEKI2=~Y}^j$XQ?HXm*1Ff4dx>sdcwsM@cn2$psXv=w)I?}L#QQ25mSj&u+XPT zcBAO3r0CdwQ^1A$j%uQ0UPTVq$*yGC`jPuo^=`jh@mzPL8ixAM_Z`t~i|k4|w*gs_ zs2#meH4Js+x?ZL1->t@QtdPIz@erNWIIyK(1v|#d!?T4Dgk8T52F%uyl9{+wx-~qi zob&I-t+a5VxL?zS0=?BR%&7%nO--XG;GibYXTfhv^9!e}Qgh*}%-->_+xM5m{s5jp zVZV;e7#%5&ql_r~zZ(cXf$VtN{gHVir^hfwtF|%n4^yiEOn0AO#ivM6OoM2G+$lXZ zN#n?ix6_Ual{9#eDgmxE`n`C$K*JtSO3pdkQ92Y!)nnOILd)h1lkvIaD$=Hr2hEIE znEktDaUTDYkFoztvBbF%z3%M3bIvI_VT(p|X^XCHO3sOwopU2Odq=payB*=&vSRG} zIF_70)-FQjc=uiWfq<%D8WMFI-AzF;s%b^H&Gjrzvpg5jojaxwFTW4AQ}G)OU)TLc z!>>5lWD45|{?T|pm|hwtzFsEZ?M+KthJv>+NN>7xmr6+-d9*;uE#y~K%U+$gQxMCx z4aH~E$j%{*Zs~RpN|8Dvn{W-!y#^w$>me*L+NnSc?s&uTsN_T)lFCUPM|Lv44?Sh4 zos@S7wO|r#9P&6@w!gDOxN)dIvJth@e){=r;z&w@C=Dynq6YafPTC#uUMe#x(4`bB z2Dae!Kx)sg+N}c!yWLx6S1w5hp>{R?*4rtf`O4z$nVkcWJzfET*UaG>9*su#haGzE zD*wKNRK~NRv4Bpa8{|TSt#CeREPIKNOjW=uTN!K#Hk+a7g6bZ^KMPbtnD_&kvzaX7+1c>5>zEvy}LN(ozVAYM{vE#2O*~n+RvR-M1c#2_EAonN5veV}o z-)$qy;&NZ0zd#27!YJ9&a+C%;^>_xtx~_CJco;7=TY z5fypygfmw21C2d4U~uDnY7o>8V}bWdcCgQXx!=g))fU-kGOp|4A?l(vbRD__J%(Nz zS2dAvEc)44+@|okVE_pl%TZ~vZT?^YExZH`L{^&#R5TsyX$o)_&YdT*4)RIMC+qw3 zX3J-BzJr%{?46HW)=w`@9Ja$b-nG_?X8(9C(iIs#COX9MpHCuy*(PL{5P%M!D|21v z<+7pcM!D=82H@fvv8N8rmz7}?o5Yta17)LSyu$H#&w>$*H@Qb+QI11UtMc*)hD2`K7>77Tukt*+;#i!6Ms8S!z zn^9jMe21o>&;pB8J7@)Wk#Q>MANza+@n7=9ro4INcnFkXI<;|@hYk}1!V(8m)JE~2 z**6S;m#m!wb?b>M%^Rn3lQI7@J8%U4siw!2M<+B}{m~zsh(XAMoc7;Z@F#;|_~pW% z=>f3zdE4G*FE4MG+r5?Td#Tw(RkVZ-{j$Tu=qdCr^m7O~9f7F-P%nC?Zicm^_BqI9 z_fj^lFP64J)e?l1fa)C)WAWre@4Ra0NCTrdw4sDiUt!so)mK!72XASY2_MrOx&sNlz}!oV~(54dLHEWGdwsO&9VN;sAL*$KQPjbvv4gqUy|dAbfpC2=PC*rPmW@pJ0r zXMwMaaK=8nxZZBW*q7wT6^=$TZd+R@CXn*k+(#*T4SI)VJ}DuMr^%dQwwkRDdZ(j) zT07CH-G(M1NE0stTvm9|$Ngzw6@boJx~MJOn&GAnJQVi*Mq&bD?)L_w9)74?o?onV zUXPikDBjfI>~G4S@MX%o^gX-F|F6Ne{UJ_Mtt0pif{SH3!5Hsc6g~vyNJv7?K;5^X zmwO&qeqag0D>i)8$!PS#Zc`mLRkDH$X&B{F7eJF`BAG`sv}Bl^Lc397D_IZM1{Vz(^IhNTpbw*+ymdPG)RiQmn!B2jnYf+U-&i zMt+4@GGrsuUV@-@gZ&Ge-qdr7rS>i63&Zr{?fN$-p(!nTZsB1sK)F0GUzmoS$k;)# z7oNFSJU2M=Gjz*gK%P@seU>QLQnc&UMhK3v zX0z1KSL#(ckdr?`H$Su?e~48a3e-!pONfE!-Oo#k%A}4E!r1=mm*wq#u!__Iq6dz0 zJxX)XjK^tb;-QxBfE81AE4HfX)WwTc8!^IHOxI-FDi!OF1%P?;#KU@6!&hdiI`7SX zdd7v&|17|Mx2&l;f6{V^bK=wgPvIG7ZJ}3ia6j1>eRp-CqrUy8^8xJ+!Rtia!_Hei zeU7{K6Pyxxz|K1HpVo+klJwORt{JUObQ0~NJ7r>_@+c&9@NAkQtC3g{M9y)%8jZF~ z8~e;@Zh*`4G&JuL(_3jFLyulq|W@b z7pyEcK)SiWO=mivJR_YrQ+@7(vBLRw$Y)dWc553n%X>38P$(QS2o}Ku0lji7ocRs? zGX{SMsE(HZQ~LTh8|dHcn>s7YNy&F-tR%V?g;4s;a7%!&qV>JFjBTq=ySm(kKsJCzsfuAX~GFon_;U=^Ysh($PrTv($NcRPO%xqaC0?F#4BJ13G|d zYNl<50HNs^nrRw+{9@u><*2vtVU~H{9v`jr27zd_zsJHgC=5MBwU1@+11S_A4vlon z22uwo;7mhxAY?TfLENALzx#hdwG(<_-kSU`IAz`}KllK&KLAs39P`gVf5h{D{?ARv zfj{}c2kxUq3kZQ<1*;B7ehhDsO5V(H3x+^v6Z}Z;CU_LfxQgcO4L;CnQoYLkPcE#D-~)-)NbpP`Ic|)Y;GBa~6R07GJO({?Pj!O=ZWAGgWim{}6XOeT|q$z(ENOcql^W@8wQ$J6mR{~r~yQy_))P$C`e9x9YH=wF?)nT(~eBU%2qY3m5VW z7cPIN5S;Py{|t=tkKCt}kp47MPv5A-OVVf_yhbWbbwwB9HzLn-7+*zzX5+6E*N#jp z5={63Uk0WyLPdnY_XaLSUI>&i5)`}0N&sJC>?%@p0DQxT{}J^EeI5`1hPO9-vh(rqcPrRdiuxd^_I%_mtA6bEHL>2UEWAMrJ>BGp@J&1W7I69%>t_%krVh zkyGfh>U?&V#;QTFhB2j;I@*Lkt!BV2Yp!NkiR=C0TdB+kfs@thnCI5DpwJoJnJd&R z3$F~$o?RJW%c`2H5&^oGZe^p#GS=+%*S4p9O|12M%`s+qeT68RKRZ~#cx7;QK8gy+ z7rey|iqQtT7Tx3fr337Wu5^9^9u`>DlnMo3a^9OYu@d-Re=0p#bK@Dd0rB1@OB3{U zAre)gpzNd(XKXygVYF#M&L`)JPAWur%)ivXVhA*E$NfE!i|w(Kguz7erCu8_cvt)i7ntGL%^V z`jE2z;dN!ee!i=k+n1-wVT#Tm+$;qPV-z*R+|am|urw!SX9CHm7(h$75&g>sj2i_H zWE+4qn1UWw5k=Djxwc} zw}~oG!L;sU>K#&%5C7Iv(RgoB6M&kc6$4VVsRFMDoNCGRAU8e8<3^@;`el_JzeO{r z{lb*KYVGmBvRf=UOAo>x@mrYh(?7zCS-x)LGe4TSMF=>Yo)3P_THY*jC3_&THlk_8>K0;*o;>TlN$GE-Xb&O6 zV*g4VptHx{AN1FAL+(tSOsGrUmo3!P;RekNH`yLF;{ouA&CQ5J4{N0?q{?@>Wx_gn zPL9fiU|7MmryVdB@P9T-y`FWcCKOD$wG0O37w;B<5E-z5*D`lz@>Hq34%~>*Iy&pi zc~6ghC6Ia&P>b(E*E6a~-MvYwJb!Si^T@Mgwrv89&Dje5?7ba)NKwnSg)!`d*>1k; zpVZ2VM-xI`3^CaM)hg=hM535oK?4O;klMHyq0w(7*&m~#QjR_E>|&<%kO}>MU(Jc` z`wH5n?*}ZsBaxnb*WPZ%>K_WTp}eD?S-uOSCh9Bp6Z*RHeDlQVrVGGzi_Nv$QMP&F z30DngmjP>gbH}DpX_j>6{lu0Tm2A7jEt4JtJUnT{wlc#KXlcjocneojslsaZcv6rK zFj#UDx_*6Kg*z5SkZq2lR?QEZl7`Vq$O$@6=kSYH(>V#Jeeu?0EUj`8;67t+O#zuj+}(X`7l{edE94G5n%;dx&_1tZXu`g(01$vKSTpL4CwbS0PPk z_c%j8Tm$S6DiwfAW#AZ^F<&SY3iF0$I9mArU<#xQZ6t~No;TQ`iPc9gap`9&(?(Z)srf0D(3{~QB ziO-Q2zPGB+KHMCx2NQn*HCFECVL8ApC>GtaLq=>Za>FCRr4NM6W4 z`zDu`(*LDA0O4Wl2l240({v(bl~==R$5GNL2E`;@l4U$26MWSOjklR3wBQ@9lE`3W zcIK};@@-lLd1~tu?9V)nYleLvgE7n22{18WnKhj&{E?Bj@c{F>>Oa93-me45sipco zG~v3?Fp%~^&LyW*bl+y%mz?s4ynK@{C7>5M^us0RlHp*}g54Fl#Ca?RQcA4Ov9i%K5HIwV zOI-J_csQV>f8`-kBQRf%aV&C1%)9x!$`wTI3svcz+-mn?w24x%ISXmM**-;3h zESNFRW6zW>Hnv7`Dz+y!p8G7NXG(i(Yw#`?z@2^Q);N(f){k>)8Xo<>ANtUJ4*W4m z=b+$5C7}^P_>+k3MVnx%-AnO=0c(B5OK9}$7+V%75{dezqt0=)VxfFonwaQl9x_eN zSc7!Fg5Y8>*BbVlR<#-phwMsC&;b@A=p*BN4A*ST9=pu@$vq+@lQIu9 zu6LQSm4njeTj>M#Jd+PLX~@d5hz_Ds?|zPzCf2#jT8ho7gv8whYPjD*tQ}!pxQ2Sk zkA~N2jXdur65@x(0OfGnGGD@s#=^M9n71Y5;pm&OXrJ^yhR;-Vo?%>rUgms0!*M-} z{C_m><46Hu3wiwo`7WVCh0JYJ`=XSOO%L<+T{6e#;Ut~Amo9NL^q8f2GvpyVT`%Ko z_wbJ;_+eS*cMILeZT4Ri+Qq9wsw&n=GX+|0L ze;f6&SqO%Cu`cXK{p_wbVE>sNoE9M@UHw1jKi)vsdgz<<m)aFRuj|(lQB*&niXyqr zZ|pm`9KtjcH4(NVmi0R`{^^m|H2Bs0s_Htjb8%7*W8{rLoRho8Yt1=d4{zaZ7zU_z zZd7jHDBLpvOv@Z`J~Ay(jz{(RMuj<7(Ktk&SFy&Hk~6v8s64M-(rA4RBt`+^C&vhV z}uFny!PctCv)e z=Mwmjs&B@+-B&^}wR4NX?5*#Ev6JMDavaxd13w5HM>TSLd`@F6+uU3l6hf*u5g%Ml zL36QFL1}k?W5}>gq%}Tj8K(R0ZH73Zny&JsV>}$*(8))~=6r4FA~Xt%!Y2oLWXMmE zloe$eyWbZ#8gc9~0~^eX<3?kQ3rVqaEv)zPd_HiFhr=6s+uK=I)U;xjZEyE(7!L8J zHf>Z7TepFaY1>8M|H4<1j>_oVxRL?NwMq{pJ#=K6eJvXE8)Z@(Q{tZVtXH>aEPYw< zecSi#+PyW)vS)wF#G0t6{8o)Uckgr8wBeIRZNO+lJ+Bdb#HwPISOAt|OtmLrt2U*Y%-kV)`|Bsl`{?u7`;-Yf7RKGJv4BvEDDTJ+KV)>u_`##+ zNnqRFo<%79n`8VkSdQ__2W|Ya;aKotSFi+Gd+*~elePB--YT@8wmkk`O=j+=@!8a6 zc88t-!5HZ|z5rAqh_`TCH{(Q>!XJE9e)*UGAmgXiriNp|AM@V3u<+hnN8>Q_w`ds3 zM3b4DqxP_G;EkNIMgnr!=|Z6ZP$(2291*&!Ie?FHomXa)3fK81UM?AzicFlJ5f6Mr4)l$r9#exb?2)R=WOh|iJ+mRwuS9S4v@7oeb4FBA!5x=vYjPvSL(o{D1pf(ww8Bz2gumPbX?!E0 zWJqhfWo0psGqy7rXi9>o6m76_D*28jI}COh;~!GO`eNqB7we&-puGq0+xyTO^a<8z zmv8{{un%!|@VBwV<~GTr@?OA@gO(6#!BY;FR=R9_K)5!sskQsdX8#!h9u9BV?k_hd z9v5h{`!0Y+1X_Q)$yaJFe?Mk4`_GqMWnABVk|~T)^o}yfQT&r4h=^v-&Eyl(0T;b`v$Skftj+(;E#Rx*u3ZCu;!(%*?9=2h@&+$a$=*% z35eG-o8Sl3O0>`z!m@oFWCKO33Vs3A=iEFQtMv@n9Es^(P6L#41TW~>t zT3JYo4_#9GEGSScws2A|6v_!Uk-5*Vrdm4?X$5Sl+AN%*`u-G<4%zW3ymnKY%Bim7 z+e{PjFxzhxi+~pv=DXvLIK)!5O&2uP`c`MBI%p(qzI1?|Q^5w0BspI~691|h@)vqs zrHWE+!$Z#+Y1EQFiNHH zB8;Hf$V%KQtrGKV%e{5Key-(ge`9VAAdZh7x&BBdNoCWl<1;S~sKKPd$q$~W;CLh6 zO`@+x&I)@pwZWN78lj2(I{PH&^DWckyyW?Y$rw~?$;$S2vQn!8?siWdYlU^0+KOJ( zHQlzkrj;}u!f*gzRkikV;A&d2UJL8hYLKU?e9;R|)BMoR>0`48yrA8h<62eK%pkBd zH4FlOwNmAe0AF+5Lfd2D2u`95;aR6l5k-}feY|ly*1&;%RGM*HSApD8k>1~H*y{J^ zq99NuNezN%uHWC9`?qP5q$P_mzl8f>+hvt0SkM}cPV6|06^eC+1(-k(G#gP=(X>hw zHJV|LxW1DS69Ucu`UK1rHFg}PH5#3|<6x{XwJkzpYNb|j=(A8fwTc4)|I-hlTjRFC zrSTb$xik(W9&fRl#Yvit!%8&w;i~JZqL>1gO}Yz>y%##`Tk{=k#kzc|4SL&$ixt20 z#&i4&HhNmI4L?_=+59`IWXfmzxh4;0>0y@*K*J{mkd<~{{@`{2x^IM8? zW_d30YPhx`;|;W)v4Ki{F($z{=-ZgdoMGlYdF!-e4hIcDf%bhp(ZAr`KvR^z)co9W z4otwA?dueFoUrHQiUey`xnBP!cJBHS4P+J~Y$>9hRffOOBWImgJrKPt{9Srz5aKK% z+dXr|w&0Qh%KWg_Iu$T3@sI>AyVGBf!b{5*g;3TH@E_VI1GFI)(CUlLB^|T2l!4x) zrMAq1%sBe6fK;j(Ml1w=vWJO^CL#th<4J!X`Sodn5zel_B2#>90K!9n_9pH80H+8; zLh2}(yIYxWOj7QTzHhpL!@3_UMb!13g&i4?deeZ|55D0r3)Y^|z8qWG25CLjM*EWs zDTEA}6dKwGAH=G;VrVK0oqDYof^(%)uk}i>hN&!ov(jX*_EE*sd(6-wTFxMR0U{sN?yduU@x3Zx5aWD3|B= z!gX-_;U%-!+!(2hw3O>LUqQltf=!=gvPZpT*ev3x5zJ{Lw9$;)vEa1(-W=ZZ2S(Um zZkq73uBM9f)NzWl14(iq$R|NVj2` zMKCD#XFGl81^r%e<9XXuLI|x^HPy_P2)CvIK8H<8YJEJNEneq6ub3FR0;j#dzAb?nLmGC@V+0IBO&!gW3q8GK~)kq^h|(OD2~8Teb= zE#;WajChUB#q2cEt8w8C`XR0iqs)l5vJ?&jEntc-#jVC@OWVzFr^VbkRJQs$9*fF? zUInBK{f35+NDmHF>0zxK+;;$q{KV}t*9td_>F8F~^@+niFiZFo*n z`K`jK;wS(Ja!O4~1RhRAi?=i6+*<KQt4py-I^As$8;f{|x3T>1sdid+ns`K&6;B2Mz^HhPLUjX|Z+K>UM#7MB4O9@wh z8$SUrpzG0H=vUF#IL$(7NAQD<+i_bBKQjD*-XpA+WjFA`dd1&{uP9mJR=_&_q3v;E zx*BKE#>&D9P(f3rLa~V%t@!N0sQH1&rX$Z~ePDg`smV$f#Od|*NmWS{1xZqP)pUu- z6;)9Tk+^2XP$WqZMM?89_BBZq1(7I5#dL}2HKc?!bHAPW{)mNlD27Z4rJBTaxoQXi zf>D)qCTWxsDjSNcsH);BhD;^-_0wc2KVKg7xW0R9!<66FLD=7G%)Xi^sZQ6|*6h@m z(GN$y4=bHRu@DqJLWIQBL?{_V>$)BiwiZQ}fhuNPJ)0Y^<9^y4z#Y!ij@z;CU1llv zpPvvDMu`9bvLLF>3Rim@SA?y@w>iV%>5ZPsD@|1t7=S=1BQfCN@J4tdzCN3ahQcHP zfT{|BN=N{gZdqGn>(LxQK!^&Us1!hun93J7PYniCmeCU$g{xEeHGc1p;vxk6!OqTd zR+0!pwqR%V9t;9Zd4bj7g;}~$-i`P;6}5T=J`h>XQ#I>ilAb0=z{!Gn%C=2_AM+;= zjx80O3zih+CiVQ9v_Z<)Iz7NubY6*jp$<>ORR32OmTTArLqZr|6WSl5-9!8|sh2Dp zh9~(zRdwA5i7Do6YAQ?ue_gBbR^dZ2ur2rbU_BQMuItBPqUgqNCo=0=GszgA#B;C&d3=LVimI6`OX1-2 zB5?5P`)^be^GIj>pgEhe@)KJ@3Z~9^UYhrkYU`Jv6Z{dAIKZqRa(!f_^p-0EeWIMV zO^@tOTLVUT@J{T$qx+KbWx%}S9H!BS^6#?SE%Mwjgv$Rd@XpkJ8i>~lL002-9F;L) zED`e(Fi=T`POB^o4h`AA{#djaI8}sj8})Bwbv^IY7x&RaLd>tyZ(?dw~5% zkfW~t=Wn8%TkWV|TOxciYFnJsn?%bh8aDK8Aj{Z4u`+0cwk=DVZkQ?>&jD1^&^1Z6 z?XWReIpJejCJ6oZIM(ac%tjDJgZDJdTCaC(5Jf?MfZybkVmv}d6OtUbO%Ipf6HXrt zUB_qGRR&AFgk}-x`J_nNE*JMRRDkpzw5$v_8e1VU9pgp`euVPnW|(5QAUcES@oEEf zOm;Uo&<8O`5&?cL2P-lM2tExiB_w3VBXbDd11ws;n<&h(9cz7kZL#Y*ToeT&EV}GJ zFNAen;#@FVtrac_3Y>g55r`m)+;O{$YwPQlV_QslUB0f@!v$TC_)4o~2%JlO1C$r3 z29=>2#K49@6aIFUOBtvJzs9m*4}Ov8+_+H2aOltj54^sr6a+$yQQ7IF3-iT+$2#z7 zgAk#hRA2wV1BVU)E?+RXPCCpR6z3Pxj#C~Xgb})Wfd93IhvK1Qv>8>ym14@^CWQ%2 z0RNe7bUjO@gKN0mq^_hCOGA(GJ{L660Dv3?UsPt{^7jb5&lPuADk_po%|#v)?V2HK zX#*Y`x{pgp2-hYQUeoSglgJfWTA1#~Rp@m&jzTnD(?p5b&F113vkl|$<15e)pF^m5 zI+HeOn%?sL$TKJL+X(u7n&6${>()|oI!0bYI=3APri?_AOl}hc(hE}0$5QV97L0y6 z#RryWeR;+3Yo*lE4k@WZmO`27kx8vJv`LVhL9i}WmEy*wF2TD5GA;FepoU=8!bx$+ zu7h;$5Gc^R)IW;sk>_X0-~b%Q?6#JB2@AweUO@_=b0w`;JG)yx#RgG-|N78DIT=mPW(g+ z&hGTi(ukj4xy-X&?;jdc9q{!o{u4##f_a!LOt80gQDD6u6GVO67MQ{hn*!IBr6on@ zqOso3vAq0n!k4!#8{*4#4Ai&HF=7_9ZTdC53{kn=kS277gynb3$Q2XUofRj zjtv9EsWOj52m7S^7zz~5I^ zItp~r4ONI-b(N_a1<)<#oSC?8ou+=`w3;|s$+A`SK`}oo2_Zdw-|S{=u?1KlMc)WB-e% zIJc}l&iAJHo5SA7xn-TgzK>6FuG!kM_KuBon-#~?*N%^~Um~`E`t8bZx=ETH+ViudK zfalaWp(K{A+i1t_I8p22pUrfbB`^}cA_!j*s;`yh*9yYktIW=!rN!VwmzZr@ma1Bo zX|q3iRj{~psAE3;T0wZNEPvHzt9XaD+VNHJV6eEf8Jn+~HXJMzHS)JRHtONMLo4pA zWu2(^Ymcatt#x8+cyGAYhO3=y4e#zvXf;Ruv9^SU{R!S`H3||wKvRHwUi2^^7edd1 z!4~xfN5_|zFcD-*&PjCL0O_0rSoVVBOG{Y!qGvqkR@^TZtFtS}FgHHNOH0QCPsTv5 zk-%7|(m6t9f#9X3T`VLi8+Tq-?{7hdHYhKSgtRV_>{sFdbMsEy!%(Qo9+OaIo z{VhYE%<>-GmiExwWQMDI*TkhD+ajrxnusJJaVE$jG&S@~U|D9af5}kb9k9aL&cV}; zBCElcqJD36kpG-cMiDxMkf&(5T^()W(u&?e7;F$#Q#Wow)XZ&rVV}YT=o&~MnvNSj z4KU2Yz6>2b4nG?;bg5PKkK6~^=}?e6Y6MNu9XUPz4-?num>wJ>c*($N6x(i{@Sh0? zU1lPCo&=^f!!yq(2?mR~R2bx9g&5^-e}-QQpG6sZSzig~c7*H+#m-E(l;>kd|4@abvJEYl z{DPYip@b4LmZ8Q4@IZvtCf=~Zu#W-w_`*WGnk-@!|YBDII***@1A_L>p1Y^5IJIp4Fh`Y=&6=jQrl z7vOz|bx?v3bW^D03L2S>TFvWZ%P*#BqI~~MHcTO86xGgNqJZO8Vd!Hi|1lz_Md2uS zqR%#+zLgW+Y8#h)DOJ5>*fHH&{5x-b>s)(EmxCIn~j=BIyPes@0CIWC8UR zlmMq!S7WdUnF)u&9!NWvP_}%~Ej^B63X#&;1HyXWcjDOb=e%|OdI%Iss_Iv({=0+6 z{c6=$)t}4%qHwU)Zdeo0E;h#<`9m&kLs{27@7*7H-1Bt(=kkB(X{L9!CJW}ZQ67JC zQmZ2Xrl&vwIxS7S$Vz-8K#LB${5qE(=f>c}!r`@ca|_Ha2vdHXyZ_B4E#EfIuOjQp z__YH9Bwqb(_!@jE=304*|HC8=CgpGHxy-ukrHtV*r&x4e2*XCV+jy3#DwE}BlOsox ze*cA5uh)vAOF^|7c;5cBFEqN{Mi@RT%S=_-v;BT@p!hR7=bX}y z7&{vWVATbQf1)3ioO4ct*$xC6t4MgzExCGP&xB3WKAAbiM*`xbZ3?f{apS~ic_#^o9Q`M*&aW) zE0KAaV+R$yx5;0&H_+{nvVyk9r?|bbhgQ8Fu3iF>clwXvP}Gi{wk*PvhJjCAS5>2E zE^zLHH0WkYvsJ-~iWxIX2M3dVysfLM;aIBXRI9!TX4DYlj*!xAEz@`4pDk%#{+Zz4 z9dLyG+25*~X{m-|76Ae$DA;XL%3n0yP_I=~@KV&CL1iDMp?{e3KGWJ*G#MEh3lrI0 zA#OP$A5zh}6o(5U#9@RPmTu5k3H)H)lYh}V^q>um{NU%MYGX}tT_uKemnBr!d`~@* zZE%rO<<8XLUheDuW60{dB*E7tL98{_xa&F~U?Ta);0CZDicYcMoX9q~BwwS5&@bs+ z#-cFH9`Gr*CrY3NK@JdAxsoo|X4r}%JKtnpS?4mQgaTl&%;8EBV4zeMG{2D7%Q8L* z)g&ZhjG8WP%dbf+Gr3g!oZ`yC<$awgn-M|_1 z_^x&3jX_6Y=3Vp-a7el*Oqp(I&osQmi&F9WXO%^1;b1?}BHhgXDpM-iw`e*V z<)hJPG@6V?2hc5R!x5B+MSM~_9js=!0~Ga*7RX{6@Hhb>U_gI#_U2~**FIc$xM1+` z1TE$~0_Wkv!v%U!YV!!)eQcgJHc~=%7;LCYw1wm7izew)Zb(Vs>Hi{m+sG^F)Z=B! zIp>rTm1fTfd&#-+OqUsls)bB*g4&F@vf>KUC2Y<^r{tV-Sn3@2lWf!w|qUM0VZ_;`yp z70I_yrVrTIQ{nt!K$mC80@ab-S0Ou2Q8*7i_mT7Lo82&-W#e(74NZ`VP(VB$XnczM z8WjaU!3RMc^OCRe1AWBc6Q%6Yvw&K)@Wmh=q$~wk5m^l}znZpx;5a{Uuwmb*51|Tw zVEI_kaGId^3;q%;?_Eyz#^q1x`lpWHH+>)P=bEu)JUE%juS^v0g!d}sehG)#2zrIz zHE$4`Wajr9me47vn&f3y5Rg>pUO2|Vxvo&y0{rZ*EsJRk+lsC$PcUXGx~_Pq#!Mh)SZ_l47YBMJ^=i#p?ih1tA=eN*c|TpDmaM$ZWNYWyb>g?638o zrR!G>v+#R!U+ZOjoBFkh+FeaN@+)f63;k899mMTvC-0POC!W7<1n zc`WPL*!k(`?ybbD=+Uh#M4TWd#rrdS#18-tRS!&NK zTtP&|K~=l!DEzJKT~&d&=Ver~ zv!u%|FH-~7sG>a2g zy_^19Uw<}PgpH`2hyG!k=FmEySn|UKkb9BE00jn#9X2wi{mys~08D$ZQmKoVmX0sY z&G|uXzFY>fSgrVBWqh`O-L4^Ih7xHiM3HRF&6%P&NGf8_pQ~)|Wm_z2_J*xF__Wnz z&GFlOjQzLiwkGN)9X(<>mI?%fG2ldJ43uZJ6U2oNT@$=b%`jj^jSO=#NnHP@eXX(7n`EyFj}TkrI>3ozcpai3I#k3V^;J zIP5H!B6-evk0=qnq!U}Iqz}M|H>%`n8bouMRIe}g>tUEY-&(vfID2X^AnVZ_XqsEn zRZRp}X)S`!=&B~NCmZ?Elgt%<`$?iqEz^5)v%8>o%M}ai6XL&#eCs(ZEuYl7-OVRG z)1tB{5&herKy)(#*R^?yWK=|L88nbHsG~pdgkPizR>Ml8#EPKrlMq>nzQ)s+CP4SS zr-2UH$*U+2rIPl;c>0KEIvol?J3X-%?1ZxkjKZ1LsaCtt(SM`nBJ)RTLjW;5M{4q{ z{RM!c~=MWGd5cnx*-HYK69vq+Gw5XNGG{UCaQK3=OA=;uj5HzM>WzCO6A>L@my<2 zZ%#Tz1>@8k4`(@sCyH1^5XhMW3?*)rk%I}ngpJ%~!bMIhpafkfg_Eu&^}++!y&75c zayyi4MrDb7S0*H-v-N|hU{&hYlgEaD;+%9ei@*C!Q3HOp) zHP|dLmL9Q$et@LFV+n+j5kMJ}krQnQA)oF(J=9DeeS|V8BhxZLR%?uBS=YLzk+fbv z55s+=j>6&a;6V|3a+N-?r%Z3|j3#N+BPaSM7}Olrp}QkPh2HuTzG(ZI7hk2R4{`wh zpsKyT= z6$j6u7y&x2w0Bn04U~Md0QO!%5biTAZ}(LR{?>@s(!UB5$h-djL9GMXhq?Eg@;mv} z?ctwBJ6TyUe8Li$O00&JD&pVSrDPIX*Rh8 zjG6^`A=(}fCEQsBd6<2E9Cc8xy)e`AOay=?Wz<&QSo0yk^aNIN^#p%PpA9Ijg0Hoc z&mu?X&~3=i0yzu8rngo_UrEd^iBaf4X3g*&oD85;I526fX;;<${+F-ey$+R2CD);} zTykAX%jMTA_cv~-OsV6RN-}lK^tR&^PugP%QA82N3$P%Djk6X zkGkg~)kzAr!07}ASTOFWh`j2T_7lkYFM<|db^|<7HVon+gW`NVb}o)C9?Ax|fjhV# zG#Y`=RZU@5wK_jvty)Y~RW}lJxDjhQV|XpX?JMbIAVgm=!%Ep=s!Y{f7hoOcYARD7 z&pZ-!hqBV*-}x1E9Ni*V5^(pROsr)}ihlxdk7VeA-fS)}H=DYk8I@$FWLZlIvQch zfW{@v30D#HnRwYQ4(WCes>RG*PKpKwb~&YrfYsAf=w<2TZcf%Tf|~{xEB94?lpoPB-fswqb`XWLOj-B{vHF3H)0BMi4X|hw zI<#@dI0(+jPla0z%)XSv3A`lrO?~&Zg8@=ZeX8XJ@=uHgxcpVnzyL9ud2`_%x~7Wb z;8S8^YL~IwZaW@-4{c*$_Psf@&LVhGAVi<#QLX$VFa-ukbnC6FVv7xXj7=G9j3bO3 zomQ0TIWALDAGCxl3<$+UFJp<&Q34>k172JDN2c{2!+4Kna{iw8aQyotY}yjtjc0zOB%>C7g9NQ#$mp{VY|{f^1$zFI8cOGP3EFsk2e%n@pI zZ;QNy+UX}SiT%xp<7`Ny%<4abcifl-(=3I@hCllJpOp4|zd^5q* zAB>~oe0Q-C3qs?SA6G@eX)N3}d;j5nl`-}2)`;Yy!<{y8{pu7=V{p920NK5srF1qn z_8zr-2~*srqwxD0x$%83AlTr8YZC!8OI+{Z8K8I3l*Kw7JWm=^R7bb!_a!cvp$EC} zg2zad>K?su6M|s_0N|s=62;^`2(Z(;Y0_?yDTGGN(P;dCL+0t(ST+4ineewh8mwYmD& zz1g6D5tVGr-V?w!Zs?f>MIites+T(9%ZPO0d=)3#?H-F^K#kG1dBp2ix61ng-- z2_1Me`~=Sr2FnmpMUkV1?RdF`#bw6qPY=*Cgjm1Qpba}}8D@hiXmx6;Th}$f9)8+3 z>~SUnwBd5bJ>5r+vF_omKISL?z&z<;IKM;pA@D)lFiGY3;~DLpoQIZDifQ+l=ywlZLa9v~g2^`xH{6YBe1o3|bB_m%L& z)s=q#xV8hO&Tw4J_?_pDe4Af%MB)n_V82Th@@$D=n8oB;tC;V!^UTbWApB(DzOXX4 zd!OIHFTe}wGH3vO7H7l#Hysk4i+KI5tzuSTRh7I30J1_Dkfw|U@wFKc5`w`er z6(Z=H?e{%w>Pp0c0c9<0BNNL*OANz`#|rACZ|05>vmvD6K(>$&H@W=+5&- z!j$2&B)^{zQ0}n_Ml+pC)dX?YkTGKBJDG_wW@~`S*Yg7j5rl%9KcSU*5&l>}m|Jpx zGfdgFm zU{B$hmjb@57$ZYrLMS>BFO{47`^|ERSMAiMn%gdwl*-9npx}t1z-ABi@LTW{O83fD zcv15JC^YA1zO+>t=%0Wmj5tqNMJzSbq51ZE>f?1?lISCx5|VoJH;BT*%F1BSvLz~r zrP3jZK=W2j(>%l0{}!n7p4zT+o4cB(-P!~q9V(SXfl793Fj!ex5X2kiy_68jAElC{ z|0OJi>lVycsOJv9qiie(H$A5#SOW14K7XEb%eu(mzMA{gvXt;s$~n;-j+*C z$G>ay<#Jr*9Jqv;z7=LBk;DTvBtZ?Kg7!y_KpK&ra}Jt;4_82a2FcW76L;pf7Mo4m zAB;7{ar{#+_?}V33KF@%0%v;4_glI)8kn~5G+j*_#!aLA;Z>HP9NmT zsj-JTdfKJIablSXWLO3Lul5=MG;8a2?AVe<7pUfoBhesuB>x z%Y?f}a7k@8Rf%6h$J~*2*PVW$9{XE~pNW!ce{7TTm;~ zPtP04JIrJt4cxp2235ZOi)0mW6&a$_68Xjr9=_IElyC zME#>6{{d*6edYG_7j1X*Ka)a#m7}rcw_fC15 z_MwMQJ-jxybEcDCkdSE-N(0#)^(HpShpb%K*p4G^2j+)D8N}AR-p;vYy&aU=!?Q<* z0jM(X?Uu#)+aL5jOekp_Lfp5Pbn;e&TKt|!JR|;>Y9@A94)g3$trX5RVy5mm9Rr8x zU@%&af&c_l18ibZP=kW!4S=HkcNN9Zm3L~|yO<_&#%8Lg8S*|HGC^1+teen3fFOuM znd%mRXqvTJZ)?7Tw+uyLuTxD^eZAq-dMtcIY$`y~mVgq6j0vx(TU^>&KHJp^_%p;q zCCODytobia-e)L^xF+fEb52o{4qIdKSJy;EG2W+3U%`p(NCvfqi>q5W8B}r_LpQ;X z3D-G-!f9@)H+G`P7ZpN{%LXONMOg_S2xvU^4UzX$LkG|ebx%HqG-WuG=`&lLG}v{n zLrC$EE#+^rd#|W5Y85mUL&{o}F!o&P-KS97$9bGgLk)c!Z}nD$GS?gQ2c8>NZ->w# zFkh8(wy$o%Y7-|vj6XISKyp`pzr35N6o$hcDz&M_D01I$H~9PY&6zj2QM9lnig#Qo?mPiw;Q4b?<|^J?V0~wC#-I}m!#B@WACpYr7#{%uw;2bGf=2}- zkAqJ!pLWBA>7JnID=OFPswN2%(XV&C;ap2z=3J9knXK46jP&pMxy;)O>}pvk`?q3N znL=xBD6;>grBbkB>c(DbF9xiQcyuw&`k^`0NAKdWBkDf{j7b}`*a?XQE+-e!MC0L= zREh>8D2eOz(V)K`gK|i~n_MICcY$2?5u(HkVfJqj01%Z5=!T&ivMkDT&Dbzx3V;D) zO_D@O({w=sN_7$_6axl9DGQ~FA zJ~`Gs*s-gYf~zTFRBqf_#zRCY4$%yHQ%C&h?$vXV_8U;b7VIu5uiibp1|}YO0N$?= zzW1JsAUMC%X8C+U={?%m9w}u{GZrS4@T+lE3FLI*LvvUYTm(Czjq7tPDT^aT&ZQ zd?Qzi;vk{%HUv?S(D*PxX|&=V|E1>F4Q4Vh!9!>BHpj2yOjcxo*SU>{8BJpPg2K6S zfdMd8)0G?cdK6t#834QR3}bxkG0M+`0#VMG897RBdZ(>MFVIn=b+u-$IBv&veMK3m znyxSaHV4c1-Pr7p=hy%}7*j_d=7R%_$JB+GoC6_P<8W+wl{t@8@3{!a7VLLAY2`VM zJ;77ga1)Fu4=O!yA{7JJzU#q3rZ?#j1MkEbT2P-`+>U7$L}@iAIm0RQxaG(h>Ay~K z-41;Cw-3$!_`|TghccS|GiU6y>5K{jF}bAFB3_Crzo$O;Lv#k+gy~?V#JedbQNM%(%6<6#b+m z>Fgz?TZdDO<}CG&>+Nj%q)j<`E|ttX#5-lFOAb(mjM{|hi?Qlz46M{4)X7re#g9wA zs-Ltli@4^tDH~?YvomRj$6P;v-{MA}BZE)CRDNHX$;WN#v;Ur~6AA|mf0yqSjVSja zU1I~!^7TcgRfdl-$z;$lfLD{|sg6u#cJkhwqigC&`ITM*@qs_#9Ij+2ye>5IL=x2hG595@D^Lb zZ|SM33AfHqt#9xI)-_RhLL{C)@7dqxR;;#}v~g`@yP1T^_F~F_K>* zd866qKc_5_&(oQoeiuNo*qW;zRR_pJz~E=#m#S7UR+T?K*fbf5W8?H#dY3C*Ktp+&|UzD=)8(W({yM5AQXpB z>4(lIMbmV(P6Rr4tDFb6t_vz}YLet~9n4ZSY4?lERnkaQS5?JN3X^c37ieap9`tlT z7Y5;Wa$+O{pX5|%6BFgL9=}4wTkth4|q4r=~pA!x*gK}#{}z|a$mC< z9F=1`TAsaIYO(Y4+&Tf6nLpkOorY3;o;3tOO0#!giNef(DU;jNPVwr+t%2^v+)UcI(SOxAZX@U>EcRLu;mUa3Jy)C?d~bt zrCsoK6un##qH#Eds$lHzskudN7`%9!$D%6huaujErU@p&2-k${sr}?`Bi|?4OgmEg zh|THxs#P&vN0#7ZIU5Gs-bZK9{Rn~Y!XQ$y3|{OYJDtq1b&)76s|>VM!3>$6QQh`L^3+DlhvZGF?~xwoH(&2kfQ#;l+KfSpKZ8SDDl% za>Zg?$oK%B=8wkx930GS?zZ(PwwqoBK+TR0wpWr`bx@AIRd*hiB}wDvnUw)96gvtQ zG^W5r^^dm%Z!tvy0j~_su5>y9(G(24UX|-*`gM_GRq24&;QK1rh13WQS#BE+;V?Qh zvg4*~!K5Od8#C$kcAKnZd%e-8s$A)m=ugRbr65E&Fd2Lt^u6YQEiIv+`dW4>H@q$M z$c*)XP`fOmcKirIUA665JB7Y=U_K8$^K38- zNL$;h)&#*QwnEI*`yfX6MdUEyCVk83;#a@!1(`2V|(4d72~ia zquR`HD+xn4C8U@g34X>{m_;(NO&|q1l-vfPuQ-JAJFX?hPgqLY+TJXV&?!)@5}&J- zcp_a#B7bE6PzYD;RgRVr6^DVl;#2bJfMQ`$yTOmT&*1YWzpWYy+Wr0}o@ZuTE)PYs z)EsOCwu1@VPC1g|^(qzr-40!DwLIpyno%k?ctC!6j@x(_7In=IxGn^eZ3Pm*U5Yd( zsjA)-S>O~E*Dao4;))Bdahq5BN0{#tyVF^fB>7eHgV@!WQ#MTq>;1V(ML(rjiVCI` zyvpYslzTKHiH(nGa=gI#I4>DMs88gfpGSQK2C$dq7a2kTa%rDPHl18b{{iC$Y{3QA zkx;S4mlr%M*y~Xctp_Rs2Tb0tFj#G_5QKVwLB>#pAl)vmwqRu&A}?_q+)+syDLIcy z29Uy;q=i1{68K|595QY$ZA+mmVSwW z#qv^_@_Ybcy1d*}l;-ksIy(sFWtb?6DT;=wgke5{Q67#0lp%dhwak6fQZ@A`uX+S^ z$64fj(Q)eVs-mGN;ssGr%>17D`=|zoz7#!sDi+~|JKhV%{s^gNiwbITKi`!;_A#jp zs4RU<5Coz64oykGh$Kay->z5gFJWA|9|M$c?eE(DhFb~2A&woi3US9n$;c|in(uT5 zL>`GK%k8G-pt%K+^9AYu6O__x`O$$dlA`YGi;6__4|M&NzG?nrFeR5Yb1wn<1UaWf!ipv_C_A-}b1Lc|cl1wcnx=8K zo1Fbn)AW4(x)|@VY} zs63wrQP%PUZ;rImj~>HE)=?E5sX`TQ)iEn^311yNb;I{q|pTazIzn zdn8?#a$;JHong!}Np3rB2SOV!nl{EZ#(D{`ZOE$WP-5Dm#fT{~rfC}IhNDJ1HpccU zwjuu%aq|-k`~P~-R{_+0ixJaxO~S1G^=|hBwnc2)SemN>sH$nmswinP5Yu8Xgqd-48_?IBf+xeDhd%;z`aqaVM+FZBcY4wb5I=M zT^0xHJut0|^WW0Cz4TjUY49eDFoc6)p(b#?Y)#s1U`r5AIVDGrz*skTAnzN7ZqoZ8 z6dF{B3^cKKobn^3UD{nBZeCVCxQr1cOSjbCPAah4`9P8_F@9n2K&v~>ba#m!$2d{H z<2Lwe9B!ZXmi)9mw#~H;?S;B(NXMzw=H_ZOr_<`LYMNXtE(-1W^QVCQ^0X1dDsMYb z8+tn^QXg(iNrz{3m0y*LJnrQ`#^IMBm@NIE3!RI+O%KHK3LAb1y`4@xT+PHt^KQ@_ zU$X~u_lW;iVM?J`C}{78KFzVmf3iuSO_#lVZ|RW+qX}~ zZNmgGjdpy}Fu~Qi=o8|LTzA1V9@m0GvB(tV$3OZ`Rw*|crbTO(N$b+nzljli!y+kR z={j1G><0?^?=^2jK!YrHvXpxN?D_18Xl?gk0oTMff1z~Uav8SU3Z z=7ORO28yy^%)O><%)wsUn3Lr>qy2dO*6_AYtzNGI{K5Uv1h1Xw(5Ql=OeT%jPE1~U(F0A5kY4&V^2@`qFq z)J{+~blMo4Nnb8CLdH0gV@=a(-I7g13PkU`p)%RHL1qQW1)yA>uLQdYKO&Y<+RIc! z4jtnSre92zKQ`~Aa6@xgI2;9D_2h%w>k0>bdkNYl+5e(1-yJE%Lj8;NLQ#oqWmp1SXvCiN6}F5E3}^{Kuc zZ0Cf8-{SR0pAPP&GyyRy<5eUmGX4-6=Y)x`KvtKm{_()lnWmhvY7nFVh=KUkh?F3x z`n>(ZU-aeD><1;;$CJ#%`6x)c$BQkik{pc(Dwc&oP-g`9>{%D8BCc9P0J0adgN?ytTq_87ShdyJmO9;2Tk?IXxHZM9Jgtsz8CB`J+OznC%>5J!3~ zF{U>b?g3MrZ{L0Qc8=fIvM`uEF9=WGci+j`YhK2(KG?%r6I>uB-mcmYa)g-opsf}F z3U7W}Q|((=MFh9h!PFI)PZ>{1L@!5IWYWl;^N2fqT?#4I7uMQouVJ z2(nUvz5GFAUBqM?Y~vigu=kbg)U-&wEc>q5C#FRk4Qg7XFS@=A(slpyH_xu#dfT_x zZMV9j>`zQE@4njrFekn&y2t%-tcuXcJN>Ma>X>iu{<%5BF_m6VwH#wQ)$!im|5;tN zRKq!X)G<`+MR}k+))n=zx{~ilL#Mo>@sgviJaIf^T^fapj8VMfpx>ifTukD5SHSbb z(D!t(d&Sl+`uL(OYnm*t9k_Fvl-n`Dt)ngqA$1i$M&D@zw7QB*E; z`h6yeVqaoR()-e#VrtIx92nyv9m_J4WqDVYy^}OwaNyOc-LdYH`bvoB8}wpHlUPaA zdbsM62`qU^b8DH7K2ChIh|mHr&;n+^umK0bdZ{j@?ssk!=MxyN6}1bpd_a@3eBlDh zo&(=7PSH-SByGB2urQHKMQXtil>@9LLU#^qI;y9`EHS)|(4(Wcy>2RG#G$xiS(a7N z8Bu+|*Zz|rjWGQVMN#Nn!vHWEb5uz*)c`P5O<}UklzTe*8>`Ff8Z4seO!xd!$@g@o zYotEdSX7j+z8Mh}BBt2IqOCAhlXZ=0w!6yvJ~QBN(WCVOnpmzXih3+gvmtA}qix2w zyon(8YWmluB|%gHR8e?Zg+ODmGd z0h$}SzOg&8d-Jans2?#J{n5sO<){l96P!)aC&Y|PsHNU zBe(9@l69V2j~p$Egy_diHi0UC{2`K(<3h_0C@=Ki7_4S64B$UZoC`YVPaHR02gK)O zrfA=}V1Wr!+k~&E?rdbplnl-olzBH1@k^@8SbtlAqrd&(3TV@0PHT=T(8M1TtGQe>{iF9%5sm8U~GI` zn(Y-D!Zq_;r&x4c_TzKaKb}{ZVYk{eC;9ykSWO%IRR4i(^9jkS9~!Hx?~A56|5x+K$rG*1}kMu(98^tTMfZsi&N*JT3g&6cAbN}wQ-*F7tnEZ6GE+6 zxl6*PjoT3&EgC3u2=P!TTp1C=ko9guCg)K7fX0R-g)rbp>d&8&DZzG7Dg`zsR6bP} zw0alsg_N%YIfaXTDq}-rbG7%&5JW z-P^ITBt>7@N8b&QOfr9>hlM(t!;n;M@^)BXV1bcI7NnQyL~ONLwx?DSH)Y7oT$SjI z;*UgVUBj3&R`w)WD&7BgB|;^yyr6Xd{T;MpqcG30?=U7dMCa-yH`Ar4bEt%I=};$H zN;eAy4a)tV9ESO10>_CpRE#V&L5Dl&VLijs0@bK7GOyF0n%OCJX_fw%tFA?J&f)mf zXH)P~-MH56Zq_(#d+k&d4TSh4y52gUu0yLnB*hyX5@UNFC6ggJ2Hs?7K=A>?;V)!>qxo5fLzOT|1#{*ep9~;1~`a{+(czgJ89Kxe$Z4pm>DXJ_6xhiHbKk4 zg&s!}fX$H%Ue)keERFOu;#VVTRThR`n5@8${mjuz0_&D)>?-qPlOd0!eYkr3__fy_ zKfXHPt%fLD*Ijq}?bltmrI4D9fpUJ!b@}Z|+#h7wpx+)flc(yMx^;d)LN@>BN~Kz@ ztc>rwcDC6F0m8=Sh-I8+DIT&x^+QhH5(AlWaEP_>gN?^@|0>U>yjRz?=w9?H^fvS? z`V9J7dEYglwuN=JXNVaRt^@B$21zi)~vnlt`7kmMrit7M#(Hdi%Gj??D15ZL7YJeSR{I3Iv zuQ`W1^x_j(=++@ziln_>Gh^H_vRD1vQiy9^2mhw`-IC)tP6?kvP3=LNj1h8L7^c!B zxCm~J?nFT;%w|;ojd=_;X3x!7Tej^9~m6rNamQlxXz6H8CRryeveh{d!$PxfG~)2Uah zvmX>13mxAvwQ}&}(i74g6`x#s;#mEVr=l_}#t;fQ5mV?ept-Gb(L#(iDajUpzN;zR z*e(9Nf(4CRrtz;Wc%}2I<$4VOWLcMI2s1d2|^49{T^rf{JO00{38cO%`+sewGcak|fJeCJ5N@VYZs| z(|)p!`-6U~ytN{whJ1K8P%nCpD^V&j0v27L z*87oW{5(x)xA_X`XN$HO@ejHTHv8}Y&nfP2;;H|T#VqjRJ!LF#SbIkNvdca8!$qF zcoXF#3fC1+R#X}*oU7N#nc%?eQtc~*T|4%!;<(1nDZo4#Ai~^?W#= zhC(!tP%C9d=tbG!_)6dflx1*lD`~AZo-;D;EyZXq3i6)-W79G z-%^!N{@dlhG6w$9B@77fJaUwq|MqcB?SkRjUvefkZdqgOlj&C=Sw8NP>UlKV@D;&F z@~nY}*Cmi(Mo;4e^v-9FeUEI&JMlJ@+BJM66+0-l%sKGw0T2LgFVT`fs+koe>Wqrg z#U|e>!7RF<{LnMJ>Bn5ld_D^WxT zx_q;@gcE;1*SVKD(Fa1!byz47{U^n67hPn}zH)>(PHDj<1zaFhHk!$4cyTVPAW1r*-&)UemBO2jmMT%&u%YOmh$YTI{;@iklY=bM9UPu4&MJ z;DPatH^w+T4q>Vj8R1szck${oW3s5dH{3$Erj4%!tJyFaq=VD|Zc_Ra3VljtE056y z&%0p7jkzO2+a=x85I%Tls{u^^=ZBWw`Qbcd&NHxe=)noGi@u~vvkl43LnS@iXD5T` zKWH;DoS6xxv<}}hdNw46zzv{!;)G0p+-k^A`V*|_wIFY6lAX@SHAEL$;nb4kLYpfG zV9y{r%4jSBq+S#3d@OlrVCLE4bJI5T=#i7#Mds*+ZE_#|8o{4QzhW|@xYO@}Vd$pq z(xdHl+tkB9M)=)nS7aJTf|En158&KoJfGM&bT=puA|Az^ddrC+?b*)mPRD3`eM0-)Sg)iywG1q$+kEloZz6H%- zx*>SxbJAKWGjJ4FYBgfEkpn1w`y+2xuH+G~R{- zMt~Lr(^BRtd2@lt!ZTiOA=N}x}|E} zH0^4tb-@h#`M4jNIa~rs#!xOrR8cga6H@X)6YxF7R%=n08I$$JR;zdq7Buingm7O| z6dIMvfMp3TLs627ps5xogj=dM3dhqhoQ}f~(R{{7(XEl-6g9AbaxB3uSaN9$loRS+ zW<3CPby*d=|BAO7_z~kpV&ClYaGflwNGQkyhHRMkE;;1~IAgkxo~>|Fu&kOGZq<~pp>QMgyxw!xVF3pGu5_F~sG=`p3*?CJvm3fV{Q*vSUkE;&T+!XpS=M=0XwyMrOOjYfr zYIPTMMKZBg1pq!UmK zo`Nh`zW%6$U5r(!+%8Kh_NMgBy2AtFuY{(i1ISDbnkOE3;6yV}Wd@*YX1L-L>@OAM zM7}b$tB#HC2^z<^VX1Q&lxx zU6oCSJ)bZQV@YDN1z^cck}%fvs&D%cDxebx1wsiBn`5=|&P)1Cqqx;?3iYQE$l!@C zG^rcLRe)E_=u8LoT>5vvL8bF^hB}}Imlv?vyeQGY>V2nx`xXfoC^zVQLJgCISb9_x zSj72$M9SXt62)QZr8?+03pJqRIaU3iVow9mZhQp?evJf$l7ln)iv`*H3y&^z!Sm(}O$MyU2Ry=$1E7TWFQKgmYTKY{PB%%?m!xxPI8$Q7QAi$M;(A~KH5GwTDz5e?B-G%jt z{*X-ZWq&0+Bhi7 zBk*ev(4XYE*y_jSXGs%F*iS|2F2*9Lx#h=yW*UNQ)7NOoIg>gf~1T_Dn(pBQM)$A z6G_h|Vks2Wj4dO#K3*!;A6>aRO;bgob$5i4%%w&Rpmt)LOQ@ni>nG-iTZ>)A#<8N} zVfZ%BR=SH@!+B#N?G|dc0JmSq0xr!ROUjCD(HwSGm8mdA2-!tWG#FvfLi`3PG!=oOw@B z^Fbrn&jI+=LIXgkZu#TlV#0Ml}lgkoHymfHv zKs`eHQ9n=rA~s_}{RGwuPGk)|Tqr%)g8sV0OoC~ngBt*IN?CmoW!b6LnlLHOQQCL! zm+3{9*4ziUC@Hit@6DMICaFAH_cgvq=tKX5T102j6Zh{u&0LbHIO;i{q)WB?^^fmX zgZk3>RE1i8u(s%?z!=vWUNU~tu3foN|Bf%4LG^SvtPrSq7jc}Z4fkH~Ql3+!*HC4O zmPgMd-<@o1K=MrrKXV)R>c<8lJn^B**N=S7QuQ8G)n$D}|5p6y`)Zm%&(JS&Zdt`@ ztSJ^0GNZCf154 zr^U+2h3Z7?2v`zbF2kbJ^>V__d`{{2k6&0RZFa{HIM;SL-_-#rP)Ctm|s|4UYHLGuRQV@L$il! zC`MZ&os#j+KIpwKl{&2Jz*$tQA+2kmf=Our(QFJLf(&DN`)T-i_QJ|?2>B7_xx_F7 zs+k;ZMsky-uV|Mgq;W{PJIU1TTUu$QTNTNop@vaiN31#3$VE8bS)bv2fwR}?GJ~Jw zN=J3g_0c=c>=S2`73@l!qR(t8b&y)l^D4uTGTY@(+Kzl3&0kpd=62xRjuvh-KG)FS zh%|f#0|(!7J}EujbkQnX&>aj>LFC>RW^_aC_Vb0Du>;2VffE|M18?L|mCd2KISrgz zf5MJ~dzXZ8X<#ShM&dXH-$peZvr(BXS%;vg1Y&BKtZ)_cH!ZS~v>b+R^%iqe`|yeO zElUEHeLYlPjsm~mZ_BGF)W6sc9|6ffKhsszDwW8xONXYGNvYH_9LU7LJdrUz zVizp%0F3h#UNP#}xw@%eyJnok6Ntl$TYNh@lrBQ_&UVh&<>}3g@%Z70{zQ7WGY2upPvuk-ss}y@r(UN@VOmgEP1;}L`T=dZgSy5n-{aYc{n&w z(5$Mz_8UpI$Sc0uowZ8 zb-84kC<%Yw6M|`$WL;)}nZo7OMq^dx3d8HFPrVz*wp|no(LO5Lwt$(!2MKOnYPY4p z^gaPs7#7x4cz+vpnf)#MT;cbdcn%Flfm>4vDIoUQVr6>9wZJ1 zKuar3WkOWL8Xhzr;SKf>@+jll+z-z_w+}o&`s{!hE<&v+O_&)=jLoq$^5O}<9kLQ?m~4aaAU^~Ud<^CX z^G*iaE~EIcqt!5&kG>#cjpeG<@f%>uJJvtrS0Mu?I!dTD!*C8qfn~sUiyt^iOtDTO zdqzk>I1AdMNla(M!}ubK6xCO-7Rr+tu)t%J7JJ3=ci}jgpAXjdcXoFAQIiSE-Lh%Q zcPj#GM*Z2-r{A~phWT@&X1^ab8IAi`$C~|RMTDv&RfsLA3-53ppgucz-Rnl+`%TOE z6bJoNhSl_a_;0U!-MeQ_fbTc&529yMnO+>3CcPa-TY%w+MAPRah?1A#ZKETq7n6r4!_pnCK;OJQA&Nr)0a+zvk02pQ2 zskJxbh2}}~!$w%2-!)x9IiWe4{{KduDL#OyH{~n}8iO`%lV`auTHsunv4LJsd?OF(rm3mg%a7gZoE@y-RX``o2%mkIjd8|0e0Bv38>*(8ruOJ|Ujs*3I=ij(Hn}7WGSBQApbjRU3)*UW--%E3?;mfxdBf#|n;kw}El1xq0;L=fa zoFo}kZAzr-s|t-`FXm7_Hq3_EF_Rxn2+MdEox6Lxz4hqjZp(A@+U71N=S-i`GAXA` zjF)G6zfg@df25T83cF|Py^ro+#3CVogPhy~-DOHV`_B+u zBGHx7=cPME>2_?G_<`bdBn&j!7_ZWWLDR0qUozuJcdE0QT-!emdVIS)N<-t`Ept_7 zF3EIZZmzVWU_s}mp|0&=PBZaECNsdZ-m_{+&H12)s~qmtsBgl_JqOWqnWZ>Xzk`CH1V5b>WH)vye@dE??Hv!q4|^p!SNTQ@`@{ zPw5(q>!Samo>hVtT$Q42$-OfVg?J1jG^bbL21=+nV8mWbKzFIs$;Q-^J!o^lZl(3Z4?zR-{?l1@Q+(&RGRgU2VQKEnP5FPpSAo7C~t))wJW zaphBT%-QdvkHHU`i@{k>rOplF5LHKe7cKxFfAbioNJJ&sB%Y?#uo}@&(UK%_;2Jqb zGo(RafbrMWY|g+%t7|#v}E6B>k8W0+-kL?DJJk@X7cbru$?1&^pJy7WeE5mG@ z&@W9yBLBdRf5DnV{~nn&?8{A5wDw~71Tcrrjp$j3G@?V=ZTk`#i_i~(q?@l@uYJ|D z3HwW3n!sZ$k%RJZKDLh8`h|`n=W&1HPZKRVw-p6Dau!_&-5j48&U?Lc>iY7ImJ=+i z*Xx6bBh=^2w`}M5neew^{Mj^}=G?OGJ~NdoBG$3sH*ny3HWOGqzPmEN-?Ny{46Jw+_XLAeWW2CFj0RL`a}gY zUEdkXUIe5~XyPM6idyj4&A6R9{>W{9P15a|srl`CE8*f_bt7;$XAMwoUg-d4`E6GK-pLl2Yu9j-Gd?MwB|JglJ7TBSVOnr0FLYO<+l&WJJjweM;;D$T}x z0?`n3_^u*~(w#s@$Ic`Fm0v{Ld9RFwfF?*-oPv`a!w}KswzHL#Ii#OwP|1@H{)HPOdI;O(1yu&y^wd4vU{!*bvNDJ>!s^R|(mOC}qVb}lg z`mIWVq_bpL-+TJwuErcQ`OUuU>747HuuzLX?=a2%_{V2IstrH`ds#Iw*5uLs|G1B% z>ybo3l#Pr8o`O)29UUyvC@Lo)d0rSbTc8Y~oYF}i^q%=Io=RPyAbX%1C9t<&vxw7bPSO;#Q7MsK06r%0-l5ORypB=0mKr#*@Jw-B;IR4IaiAH}jH zMLaR`Z9oWrh2IlzqEoeE>)?HAXfo=*3b!F>U1iyS^J)(~?vssJxrec2Gy(_&V*3GU zj$8=>ttV+hDRScNw!&9V@(f=D^jxi1=+t9j@%8#C9Amml9~X%%KMsCQnF%>B-YHwc z^vQ0?Ii~^foLgPKa@Sq1Fq(O&1^@N+VXgQ&FQlJPDbqhoM1nty{88HQP>j0Q!s-#o zG!j_mkj5^LpFPZ00vc1^2Lzc7IaLjtDVem-C0g@~n<fp|+r5ME=vJ9|as$Di)){8p$t1utZ&>O9dmCkRIzszJLOrHEH4V1`3P%EN8R-g#;IcEA zm(@nhE&F~9F0b`Yu6^zRr`qW@Di>f1F~OYmqlDQe<+^ys#}KzSeEj!XuMt$4x`n@7{ui!7IKn)vcgz56QdZ*I_$ufB-V z$V#Yu3VmH0HXN)pE0qNClePQGc*HXa*|JVM9u2CY4?Yff=Y|q72{<^=^?c zshn4=oe5a9Nj6|}$rHb=9W^QK=)5oZ+{7@0_lOX31b{#^)6i&bHCvYFTe1}BZL_hU z@Y#z&fsa{qL1{mG_hOp9L`BV<3xQ}A1@I9vamt1+3~mIpDx-Fw+xsUA-ZE5*Ij28< z5!KCcZr;2jXJsl1OCv4NPBjcPK$#Xnq;C6qC-+UM`U5v8c1WL59t_~*j()+n=>Lj# zInnRG)vo8WAAtQ`0!?dIj#9Xo<|r#9Za zjPmVf8@15w=+*LpQb)YrX20HzE+$M7O3}dtQIP&8v9d(&u7`nyNu4ibMkhn*8p`)u zSL1dBKkg8x;>pr%Dn$Ydld%8#V!bY5Md7+E1M3e?;6h9efWN9`PMuBBg*!Ra!sdRN&2COLh@x?Ai$f8qy*C73Rm>$g2xl4+!!_iT? z?LHJ#Q4_H$t-hM`s}oTa04Qm-N=bn1_?^!pm2qSp4D}LvtrRit4`S1}L2=Yz5W*DR zpjbo~oZ2>f8b-%4mdERm@WAZHVdxwGT(v9kw5!aug1EII9T0);uNG+VuAGAowz9w6j;{xr$pu4PT#b5XO ztJ#N44Q{LyW)J*!22q-QUy!8EP5$@aho&f08>_1;d(HkFYMwXyv8?~bOSb(`Q4kM{ z%1ML_wkaqmG9kRmN|urc113v?`4YYARYGM00wKODGng7$-EsY;T5YN3d9|flZK+Z& zSC(qErNFjK$7lJ+p9bGCEjw7M)s}qM2~`93XO|>NB@*Tw1I;O5&M~{pFy~m3h%DLb zgyDoH3_6x#~u2--!rBD>+6X*;2@MroA6>mX6$7#A(_f)Sa8ysGt} zWqV$<>-kY?lrmJ0uMEdVItHeg2ER{NWYr7OAE^&MLj3x#soIVPL^ zgBy7~BVUFx1!HbF4u9Q z+K7gbnv=4L+5(bm!M;=5MT$m|aHWGk%YZs=GIv+&Iwl z?pGO&oiLL;kwUt^qq~Z(iM+9k^BJ>E*t7M|1dC;eIHakgX?kllmDxJde0PHPTGi@Y zK3A<;<+)b3+nOuSUfw1)574~ly59Vhm$Oi~`d;pu zeNrav?_NjW%+|#;H|fVV4JIE!2HD&&R!|^gWVDSe>W-d9)u@h{=jAt~?~)IwE%hex zM(>d@@Y6`ee8-L1{?lm=hT%W%hhV_wZz~WSyggjH7v+R};`3o|vij#eUeGXn1wi?; z>qmDYD>P%z?+Ibypdi^cMCj80ZqzFD)hn(Z~;a|H|AF=DT9) z7~)r;#)nXqw$R@SBW^w6DG!=<6{ult@Dk#L+ir6&{>5XFQVAP1vo_zYRBGQWK?F_Z^2$etSLVWBZv+k* zimIBmuu%ca;(TIRoP#G|)3PXItvmbejqMoew;5fm_IRz`U+w5?_6Pp12v_QACyUR} zqhz277)pFz20igjso)WsHJxI<-!MxXBhZLw5U^!UO67}j!>^gT5rhp7GmbCx_-vd* zgc$lD+3LP^nC0+F4MamXYreq+QNE}q+dzx}e6R8OQ(MRx`~2)*&Bcmud3=+%;R&6} zqS=2vyNj+t529CcmAg-ho@|lcP{%gquU_hcnp{kxfbw0VQK=jc&6s197?E=2lirCL z*lzhg;eu!2`z;}~V`vDa4<(w8H6e36FTJxqASP|mZE65)U18yX)pp~`_cqg9#u>zk@JWP@TA(a!A z86`MT2|)nkb0;epzm#@oCpS5S z7nW8RtDXYN0tNX+rw^jH>&OTsSK4}eFVz48PNy+KuSQSd^HI^rr&_$(lYlru)jOYj z2b>(5BJ=5YuU*6drw{(#l>*HGkyl;vs9eRiL7;eR3ecvLzK_@bzvOMR=En&1FmGxx z_T|`R^0oyR)t;_|(8e zZ^BOvYb+Y%aj(n_>yX9tCIE-$Qw*Tcrxw62+e%}8ZY~HQ6Xy-O zi}}5iAh3<<`wk+M zv6R%qSnT3Eo^EBqP)#S2aE^kF^AW*;$>R7B2{C)E#WT3#ApkcCmGOONh3Rl7B>w~l0 zLkiYNXoG|qvfHtP|5xs%pgWWsrJEp|?vj04)k2LQG4_SNQv_ZxSxSj33z{^xqXoS} zy@BNdLE%rSN?j^j=MU+9QQ%eg#0@uKK+HC0FI%T1cs3}XZX(txN6v>_Hm>LwH_6sz#%Hi@_@xN_6Wjd zIRX1bJ|X(_n_om*=sI+d+?ODME{bsor97kVBx?jl#Y#t$)XwP!*eec1iGskB)IQ|3 zt*P#_r8=Tv|ffl^uHgi)?!+vS=Ku3Mk;B*!gt5E@!`9m$)kyDr!@()fp2tx}0x z%?zCl0?+!GC@7|dv1KZPr~=3;Az(QDrHCXovg)7#W=#;Bo4P_<3XiQ``2Kkm!& zeU`H*9UHc9{@~~xnEcC#63X}cy9OmJmsM4^)~K%2KR62nJ@pvG?Tu&+3};h;K)X!H zGrYb>_ccuiUDtLQ^KVjB^?HLqZtehd(m&|)P~ViPE_P68=Zd+gmG!WJrTvPB+t~Xf z0N|bH2Z>|gIu0kz_W`6oL5TBxtv;qT4>vXc_e>gzio&1p&ENC?4wm)}E zMK^Yw=k^)X)P2T+S_JJY(D9<7p%OwRZR0TI`OJnG9v!@Ca17;B|9H4>vuFO(o8VUl zZyGqIqT8|UQ~zZ6PjE#MBWnE9o8BXyB8zenrP))1c+kVifK)txELo{b{xZR$ugNyV z@H-vbUIlYxtvaQm`=^%mpk;CXpkJ-}x-~Mv`s|qpi#lUi@=pJ(4!?4M{GuJ55$6wb zZdng{-V1K|mrr{VW=t> z&r~G${_`!HNn{!bJSTa60M{L)VTypG1^xzvv+r$Rmps^uigQx1ZhAb!3=Z$85BOP` zZ|v*sT(A?eDq229ueCn=3GpOgbA#Oqq*o5>ID=0Vbl#9_x#_$?Y*CWe>>w~6kAI14 zTJ=;_H%$HC-gxSba?4KgQxdg2&R@+OLjf z@;M;cv-*(pPZ!T-8Mpyf^#1)GCA@G@BAo;*2U*EpADua`oQ zua#eaH5(b62B>e=qrl5i8e4|2zumTmg^7;og9PmV7w zVY~$wFW~kMm+eM=8F*>wc)khuEi!!#Pt$2OlWFr}kTMq;AW_Q!QFE@hoX`cxsr(-C zajo0k-0XG86fJn(j!q{Iwu;ZR;&mrR^+r-Jj3S>&Z6fe7jtd!aW2Kc@6>S!&Z3D%Zk6ZpTc^) z98VMq?W=p!&%A+1n;!NY;zRiNo7YHxDIXm4Pd6XHRd^0rIs|k4zU@f`5;bF?y$u10 z5~xR68T1p+DE(HYucq1+jqWMx52>osAF9e;TM{-tNC3zbU`hbU2i66NNVnZ45%`3n zJZti+NR|O{^VyC_MjB8GrU{gSHX@=Z-E)s5w%3Pnw@t4i)Z!lr==xfgq%BFD^#Mcr zl*A9S$JnLR14 z7j+^VeUrFL(9fBmLzy1ozGioo4ySpsRv)lA>=`Rn7K{`rlY+qk0$i*K_W5#Cx28i0 zF{xvjF2F1bU3G)Snx@faimbob!H#sh4aR#ceXl&EaW$JN67PG?h#6s-M*UIT_`V{8`+HWqAk zlWF6gr~qob=?rbLZeC-!aYa+?W822qw()TrV>@3X+#J7870)*!#RoQVprEQE%VH@9 z1e~ZHKrY;OX*>R(MCbfM1(!?xpEEVX!MmnrII~|U+XIhv?zv;*YDB z`kkGPr;ONXe~q*MFN`}*c{Kax&Qh^tldR3Ej@k~CrvX6^NJEvJ1kRnIx1OlP^pIZ4 z{8ilNmOeO6?R@C9Jq7hMsx04pwr802FX}u?QCc^GfG>$!C^?auTIfiHGyn!G)O=K$ zez3l4Zpxoq=eA$TR?^mvPINub%Afk)36%mW67a^5rI#g`did9`MA>Qxb*Qj4{2`%^KYh%)Q&{5Jmll+puIMX zz+=|0(}Ht0Wx4NA0?J-053$!=?I#B;BYa2jiEFJ3h``f#@ZHCkmoQ^G{HD$rURpl> z4W~=K0U=&mKCUyyn0|bD$*%3o2y!#{3nr&Xhsw7K;v$NV_w^W3>mSuM>BJ*D26+_GTGKW;j& zvW!;JGSt(W`El+ze4fvC+1>aJe*8N3#jt4SP`k2PO`(iLP54w;|B3(+ODjo$7F7b* zOOD3;WSF>Mr`}Fivx;n!=LXHF2{t#@j#ty7+gLl!NIx?W-hBz{9hi+*w@u~1=NlV0 z698^tAQ&)+Jojo3icB^HF4Kay(QDbzM46vxNIIvLP4MThN|XK?$juuY+z+VC1w&@V zK&HA_5Qt09Qg88^I2e@cQsV@dMQyWkcD78p-)IgYm?G*uR)38i)L1agRt2AJ_LE^2 zXHBIV_7AdlOq((B{2+@7m4<=#3354MJF=i38Vu^gtcS1rSFW87v-3AcK#mTAMeh2W z3pYAQR} z7#t-K-FzN`!p`c}^M~;jqN?|ue12;Y+F$cYNFcg-a5Vk1>E>YT`NQ}(Nym%RN!9JM zPfc5Fg)1UG7svheDO$^OW&z%=_~-JqDT$KVvgYN-ud}{1;srpl=G8caPNPTSVvoQ- zB}}OZiJ`HCCNTm#?sgrC3sDxR*LF_mLDX2FVuk!mNj$Iy7`D`$hEu*Ly(rx`OWN}= zS8WUp>|^YU<};?~W9;JwV0(3w=R4|3*uU&!sXKwND`EeVkEQN7l*{-HVpTT(f;ojs zi5Gf~3iM!_LTroTO_myf%?27biK2}We5cIW-UbmlypL?m4ZFOmvHH$VooTB_kuj%0 zb*2=C?Lz3oC2K(fnmX{oIEd?DDQg3LvceWo7p~s>8&DkS;KjLiTL9Z~r>SBxT=p}X@GdtiH*&L5BpeJM+%v9Wn3ay?cqGtZ6I`u8b{sy?#OASKS&Y#uF)2v^9XTVj*kb7$MBAvIk)d zeT8Q&RTIw54$cXhYCXGVU&i>C=OLV@*qeRM!<0}f6TIBLuc?+yzx-t?TdF2X_2DLG zY!=Ud1QN$fU1|$c%M$y*rA_438wj5X>EK3aLwbT4LftxcW=%%8U0#j`9qA5NgQ6e` zE2=7kJT3y{RRIr&H~fr^Rj*LTyLtCe?7=HMOy_6QdDz#T@>?v0aus8tMJZ*BoVUYI zT9(m*Gi7T;IsW1aY|no71fuzQ{1?K@QxlrMG*$(2Y4b1TmbHK;x44xYyxjErzOF;H zwzycUg02UQGlt9hL@Qy&xcp6uz5nnqouAGh@F1u}i{2Yk2?EX-FH3uSQkgUMzmKa~ zL~wNqGx~LEEfvcnI$9nD43>y0QL+NfI%Ysu1iYr@CuPAprZ>e2+W-hd9o0sEfL zDV2$;sFyCOib`Zkx$f;=zHja`A5Tz+PDz9uATH*_lQ7@z8W1$HxSehz`@%N)0lnwR zE{#tFG^8+h5j`DG9g9 zfGUd11cH^%8I5Thq%D#IJr2{vCb|apa>KiewYz zfKtPhknlbgF%T#Ppky<%?tStev@<%}{u9r>cd4xXn>%?e|N3LuAl~`oU!VQe*JV@k z&L7XBuu$c}-k$We5I!x@_}ZnFfBU+Y-#CB56FK?%?7x5g{0UDqD4Y$tLX`)Jd(s#4 zOjKjJnAMyF*ZNT{N_B*b3a^hKa72CbuuZSVZ5l7QCxw)k)@Bp|lm)9YerCyd#qrvm zVHbfh1VQ|#aS(`d`u4p?VO$ZJZZHOn;8i9lI%kSZvBLPv6~-6#{UI}|XU4qWDLT*= zCG!iV(!zYwti9h6&J;{#g&8^%*vjl;t}6oL3bWQ@q4zg;lH8wshXCpGykU$i8)0XM zs0&>JA)@yH^pc$&LD<=O$#iYnE-gB|)V}WJFTZXoXQiP0SmXYiTB~Qj$>&voDveVb z?;WsPC;Y<^8jvj1qB!*-;`mA+1r=N&o@$B20*YsXq;+4MF*a>d>{TDb9-~ba(%<^o zbB{~C?xD}Qm_98CSWHw5O?hza-`S7CMmz77X_GP!KUVcHZB7~co5zn0767{neYqeC zxF~9aNbX6m?xz%eEEvm@5kl=ktr*P^OlOz3Dxmy4r(Lv;Zj7JzZ8T0Y6o$ARw}hY# zn_UV|5V^ynuq@#=!Q!UB}-=-Mbv8%~l$vIVsW9mXb2E4d!#20D(TEWZ1wqASK{Lqw?MRQzB8 zP|3CPvVQ?YD2XuY%#(6uczv>hMOHj}!;L$08(aC2!~cTI<>k(@D4v*W(W6^$s|Tlh zJ)1(SefVTm*l4%SxdK^U-tC{;V$PAXXLq8drPVKRynE{8YVqjNTZt6)=jSA{lFfyL z+S!TC%_U>`?3wdI_=9p3ZEl{fhG!3LHg4NIF_)%?>)jhq9Bhh#y0*j*tgIcksci^7_$&Q<1!268sWrsqD-a?&+edYB`O92PZ`bI0Q)(@$21g z4Y~AQGl6l+a`F`_&o1v?Qq7caSiHMb9wx~XE#Vh-vQQm$&;V_qV{rI{uu_jBOVB|g zL(r!();NnO%r2rah#*GbfM`%O3f*HOmjxpx2>OX0`r;>+2BBWI6rW|}-c4!*Ea!V$ z78hPC-E&Lj7Sx>-vEpHj9Ll&a43d~?&IJ}ce62}x`4v_E^~(vbzT)yMuM6GETOSxh z>467IFb+GoGAM11D`-Q<6DLPNzuiBuDQd@#%1GE?y$F_jO-ZEde)5wJ@rTH^!wRwi zI(IwrP)bha62P6-ZP|fvX-in9x$K(%1d zVp%R%mzFv+wZ=+;+Q_#ew_R6P1;M&^?e1>@hA;j^Z+k&Wo6)>ihsG(J%l6luf-^4q zBL!UZ8y`_I)A)LhAne*3|lU&sCFVQ$xG{A=GINWrCr{=l| zaR65UT&{zvDco^P1A}(^r>0-X-tJwKM6>19mu=tZtDSp2x`6IR4_K-Z_`fX%5W0?W zfe+E79dE-U2EM^4bz>$ogn8C6?Nrs^gRi32h?0;*ZcRNHW>F!g862m!IKg1+J6THIX+Joop80tLnR`@c7o*$)+Ctx^xmkGI;rvrBVx zwfQ-$X#iN1Tu)UcjDhoVtu{9|Bu!}R!MXW$uX#2$P16Kqnx@(JJP&qOZOaajJJPBV z1x}2s>A*uTK*M8Y$)Yrf)2?ce#TIH}yb?0K{w}9I)1r4QSH7+5URn7zE=%Qn!#KL* zG-vETMI!0T?v}f(tEw~*iKIWvRaF{X%0-&y&i(~Q$Mia_9PgCCm)@j)1zg7XLtIrQ zW6RkxL?Y=Q-Hq%YR%3aR@^{-{0LFpdB#Q!E;~Xl(kJ}xEDN3+&H5WElNuLUQU^-C{ENs;j$>J7;tmOonOfh0Y}u#*S)LbL zD)7r`d3U-NGrR6HNt8+@NtD<=-$)~GSz(|P0*iQ@qJ&bAC$>VU_*7+*G(yl9U)dPD z;5fUFCcxjB^9}9!f5)$fU^A3dc-m332a$IYpw&5SPZ8}EQBlOoN#2ZdQI`kLfWRM` z4_I^`W7%K~!JPZhGYDU^p(7iGqe;Q&_n((oQDQZ$hP%6{;PuvCDUu#%3Z`I1oQ2mCa1L?AZ|~CF7yqF4__& z5bG5c7o{9+x`IZ7u)DITO%x@NI55~W(8_eX(4EW3tCay^aZ|#nrljHU49c6;ASbEz zs7K0wY%-EX5TJ2EUJUHohu4@hdzS*B(2&gC474T7f9e391ey}6>}&|eCU9e#%gg#W zQy6NdXk9;UL%6a)1Uxs?&s3t#3r9D>GkSxN_2V(}gM)mj z8u|H%38vX)HPHeNXA{|Y*QaVIM2WvST;wQ4{?|w)5)E3h^=jLv;2aYVvteN2$JC{^ z<|-JGV`TE1LvfcViu_d>lxUGhY1utAvw$dy{51;7tMhvVH-m%kL#`@7za}dRapl*k zEk=jF9if2yRasF8j1GRTrjYk=KsM)iyv?D!AE4cNKp3o!iVVo$YJ?vvbzIT&nVBB?3JxyJ2pV@4X zHQhr25sr*&DjNng;Xg%Gt+=e&WlJs=C{jzzI&)E@bshe8{tgGu{V6nB=uw@^^RNBo zyT~&-Ei4nR%b(I+Ckzes1`%3V!WM`96Ni3rhDpJP7a66w!KHC>ZWey>c?e_)YEY6biq4;N__B&8@h#VL>JIwXp9gjsAS$yq62{LBp4LMSVo=o^7dmHwan*@ z5`v1Cq+x17X@$sd*V%;Sa}t=syvMns%DqDsobKZ_Z1q<`ng|VcCmu{DP(ja)7A$~? zy4m#_%eFk2rMlePy2Y>uJszy~C!!YmqhM87GYsPZ$uVh_iBw54UGAwQ_Q@V@N+CuW zL$Z}Y->VBN9t|%|&_@ea{dY#PSJmOmVMu#SwO!t(cAPdCW^K}8&*vYuz+781;YBmJ zb=|T!U$?sJs;VgK3zK#Dau|B%PPIMdMt&9yvo;B|;6ppO^g8F3wSH@0F0Lzzs;)0g zQvKH#p2KDxmC-!P@bS3at5F9(qX3Hpt2;K#qy}XfU`KC=(;*6NBWU0Ui@8kOpsgw2 z(v{wnSbR0JAJ6`$g|+U&=H^0I2h#+7zD>gxlz+cHV8Gp6RP=8tTJKAIUHS|*vnT?H zqRhl0Hr5uXwXsoa_LDt&7oqF|i%BE@6`#fCky*K#{PmVE*Sd? z=&gZSxp@5T^)FWes@27A?ZCX1bIZE5ysVmj&QWb6FvApPMq{>N8l~9+%>o*M9K;o6 z_Ky|U28k;W2vEEmW8o-#=LeF}gAii|Eo}CWm5zj+Q-Z(=4Rga$_~Q>GqjHKuW0uH| zq{7dy`r=Ppb#rC8PoolfiS`odw`xU<@wNWi10gWC&LwB;nSTG-)foWC3ue9)`{F{M zF&<7P;d&!~h`){^Pogys5elr;%%@{;7Mije_@IFtOo30!La7mXNg<(O_I!XXXm|~z zsy1kv2AZv^zUB~CQH0|;UK;q}?2?aRjQ!cOFrJNJJR5gl%QX%8QAv7KHcWT+TZoo) z&@^gyE?&U?+M18|@_e+ro5vGRO|@pRzI6PDGc64-5-C8G=xUgcaNP>c4Bf|?f?h-} zM$!Cy6cyL1%d+A;e{G~TMV-?IBd8~}R1HiCp1eINrxGE>hfPfNI!;CXT2Q57@HJhA zNbW4Z)$f==B{8~#3Rh^j;#Sg9)-I`b3i79cs{{iT=iwX*yJTqwg1PKQ%Od)~G$kCx z4xk1O{6BBE#Cf%eEMr^KnQa!ID4I6YH5jBM&}hNQ5i^$u!6HpH>v}yN3A( zrlO2J*U>TzA7=GByNT<%v@ALAdY2364!)!&=dbUVI>1H+%zhWZ(*fi9_!+%M~WwT;#z<9S>f+1cdYN8 z%46W+jsN^x!v?*zaGWHoU?zz5)u2&NW$^{dsl;hXLYSdln;TG=wOwmag`|;eiNf6g zG;GcFZ-ldPBotN-aIL|S;mY((Jb!9{JiLZO7>6)6tM+RW&#U$OHP0i>y@u8jn!9w# z;SZTJ30k8chW#}5HB`_Z+DE8GqGsG5_*;>2%@7Txp1?7Jx;(r(=9lM{_-EE}Gj1BQ zDHBi#rs50*!S-0%Pgg-Fy+kJH*O<0rA@PIA+k`Y45_=9Bh)YMpsb;IyTyCr>CGuMu zuK_@~c*@3%7N|g|>NwbA0svJU)xdzUO+^a?ZerWUGA$8-5Y=_Tvxg^%lp*1q1PuGq zM!~aQW9iJ%(V6AC7a0dY`NBQHG0}=`gWo=Oj+*1Ig>%OMpyk0P3K+tw<{F3D1QMbmFq`AzjXR8V}+@yhL*QqAnEiDM1H(^yd?-eaN_S6vPDUz@Lq4i=CVx-kid&LYP8w9gWL)m6>$_)vP

!35N-h%Knumftu3XRO(&xri;Pd8h@6 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 z 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

W)6a&Ua1EGQKfY)QwwV{%lF=d31ScAH&d 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

3#sN8Pr!Qz=q~QxSnL9Tl)GOSlu|0b{v2Uk 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 diff --git a/lib/webfonts/fa-v4compatibility.ttf b/lib/webfonts/fa-v4compatibility.ttf index e9545ed579e6d86383c254713e8bd17356f72e6c..ba6cb258e0f33ffddffd24b18d7162a32cb9a6da 100644 GIT binary patch literal 10172 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 N-3nCBrc#A%{vU!|PjCPL literal 10556 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 diff --git a/page/1/index.html b/page/1/index.html index 1404dfd15..c8381afa1 100644 --- a/page/1/index.html +++ b/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/ - - - - - - +https://mailcow.email/ + \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html index 06d0cd385..7efdfe97f 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -1,358 +1,42 @@ - - - - - - - - - - - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -

0% -
-
- +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธ

Moohoo everyone!

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Update

Moohoo everyone! +It’s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. +Let’s go: +Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.

๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision A

Update 2023-04aWe’ve just released a hotfix update for the 2023-04 update. +It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. +Update 2023-04Moohoo everyone +It’s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. +Let’s get started: +SOGo has been updated to version 5.

๐Ÿค” Have you seen these letters? - [Solved]

Moohoo everyone! +First of all, a big, big sorry for the long radio silence here. +We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of “ONLY” bug fixes, etc.. +But in this blogpost we would like to draw your attention to a mysterious thing:

๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new features

IntroductionMoohoo everyone! +The mailcow team is back with some exciting news about our beloved mailcow project! +But this time we are doing something a bit different than usual (at least here with the blog post entry) +As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. +So we thought: “Hey, why don’t we let the bot write our changelog in text form?

๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)

IntroductionMoohoo everyone! +To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! +As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. +Because of the Bootstrap update the old UI was completely renewed and ported to the new version.
0%
\ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html index 1a9da3232..b9fdcbc5b 100644 --- a/page/3/index.html +++ b/page/3/index.html @@ -1,294 +1,40 @@ - - - - - - - - - - - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
Moohoo

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

-

- ๐Ÿ„ Mooctober 2021 - the feldsam edition -

A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That’s a big change we hope to finish soon. -Furthermore we introduce our new cold standby solution. -With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running “up -d”.
-
-

- more, moore, moooore -

Girls, guys and cows, -Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress. -We are also reworking the design a bit, that’s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.
-
-

- From Peru with moo! -

Dear cows, -For organizations in Spanish-speaking countries I would recommend you check out Xubium. -They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses. -Xubium is an amazing company to work with, it has our recommendation by all means.
-
- -
  • - - 1 - -
  • - - 2 - -
  • - - 3 - -
0% -
-
- +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

โš ๏ธ 2022-10a | Critical stability update โš ๏ธ

Moohoo everyone!

Yesterday (on 25th October 2022) weยดve released the 2022-10 update. +This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.

We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!

The new Demos are here!

Moohoo everyone!

Itยดs finally time: Our new mailcow Demos are here and live for you to test!

๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes

Moohoo everyone! +A small but important update for or against the current SOGo Sieve/mail sending problems is here! +We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. +For those who are interested: It’s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. +Yeah… however, this bug should be fixed now.

Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5

It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!

๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changes

Moohoo everyone! +Yeah, a August Update in September… kinda sus if you ask me! +This time there are even some changes regarding the Update sources! So stay curious. +Let’s start quite gently for the time being: +Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.

โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changes

Moohoo everyone! +We’ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). +Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) +Once again summarized what changes: +The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).
0%
\ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html new file mode 100644 index 000000000..c1b6f12fb --- /dev/null +++ b/page/4/index.html @@ -0,0 +1,61 @@ +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

Welcome to the new mailcow blog!

Happy new day to you! +Welcome to the new blog page. +Some of you may have already stumbled across the site on Twitter or on Telegram in the last update announcement, but now here again officially! +Built with the fast and beautiful Static Site Generator Hugo and the LoveIt Theme, this site can keep up with WordPress and even outperform it. +What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.

โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changelog

Moohoo everyone! +It’s update time once again, a little later than before (I’ll get into that a bit later) but still packed with some changes: +TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.

๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changes

Moohoo everybody! +Today we have put together a big fat update package for you again, which besides general container updates brings one big change: +Docker Compose v2 support!!! +But let’s start with the small stuff first: +Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.

โš ๏ธ 2022-05d Important Security Update! โš ๏ธ

Hello all, +Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. +It is strongly recommended to install the update as soon as possible to prevent exploitation. +As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d +The update does not remove any important functionality from mailcow or IMAPSYNC!

๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changelog

2022-05cItยดs us again again! +This time weยดve published the 2022-05c Update which is a very small one. +It changed the API a bit again. This time for security reasons. +Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c +Stay healthy +Niklas +2022-05bItยดs us again! +Today we have a small API Fix Update which focus mainly on the UI. +As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.

โš ๏ธ Important Information about the 2022-04 Update โš ๏ธ

Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. +So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. +Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.

๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnotes

Moohoo everyone! +The April update is here with a bunch of new stuff for your flawless E-Mail Flow. +This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: +Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.

๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnotes

Moohoo everyone! +We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. +These are only minor changes this time, but as the saying goes, “Every little bit helps”. +We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.

๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnotes

Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. +๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! +Let’s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I’m looking at you ClamAV and Olefy!

๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Notes

Moohoo everyone! It’s Friday then Then Saturday, Sunday (what?) +We have an exciting news to share with you! +We present you the newly released mailcow: dockerized Docs 2.0! +Not much may have changed at first glance (you would think) but under the hood a lot has changed! +So we present you from today: +Multi-language support (English and German are supported and updated by Servercow itself ) Light-/Darkmode New organized structure (interesting for contributors) All in all a remake of the existing docs.
0%
\ No newline at end of file diff --git a/page/5/index.html b/page/5/index.html new file mode 100644 index 000000000..4f14f7ab3 --- /dev/null +++ b/page/5/index.html @@ -0,0 +1,51 @@ +mailcow: dockerized - Blog +
/images/cow_mailcow.svg

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnotes

Moohoo everyone. +Today we are releasing the first hotfix for the 2022-01 Update. +This has changed: +Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.

Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!

Moohoo everyone! +Our dear mailcow has taken the plunge into social media: Twitter! +There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. +Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. +We look forward to getting in touch with you there and keeping you up to date.

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnotes

Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! +This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. +First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn’t be where it is now โค๏ธ +We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.

โš ๏ธ Important informations about log4j exploit โš ๏ธ

Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. +Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! +For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.

๐Ÿ„ Moovember 2021 - Patchnotes

Moohoo everyone! +Niklas here to present you the latest news around our lovely mailcow :) +Let’s get started, shall we? +Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. +All changes from November 2021 for the mailcow stack (newest to oldest):30th November 2021:

๐Ÿ„ Mooctober 2021 - the feldsam edition

A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That’s a big change we hope to finish soon. +Furthermore we introduce our new cold standby solution. +With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. +Disaster recovery of a mailcow is as easy as switching IPs and running “up -d”.

more, moore, moooore

Girls, guys and cows, +Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress. +We are also reworking the design a bit, that’s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.

From Peru with moo!

Dear cows, +For organizations in Spanish-speaking countries I would recommend you check out Xubium. +They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses. +Xubium is an amazing company to work with, it has our recommendation by all means.
0%
\ No newline at end of file diff --git a/policy/index.html b/policy/index.html index 286b09398..d12e31620 100644 --- a/policy/index.html +++ b/policy/index.html @@ -1,349 +1,36 @@ - - - - - - - - Policy - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
-

Policy

Contract creation in accordance with order processing under the General Data Protection Regulation (EU-DSGVO). +Policy - mailcow: dockerized - Blog +

Policy

Contract creation in accordance with order processing under the General Data Protection Regulation (EU-DSGVO). In your Servercow profile, you can create, delete and modify a contract at any time. -If you have any questions, please do not hesitate to contact us.

-

Notes on data retention on this website +If you have any questions, please do not hesitate to contact us.

Notes on data retention on this website Accesses to this website are stored for one day in order to filter malicious calls and block corresponding IP addresses. Furthermore, the returned status code is used for internal monitoring. The log includes the IP address of the visitor, the time of the call, the request and the returned HTTP status: -1.2.3.4 - - [25/Mar/2018:12:02:21 +0200] "GET / HTTP/1.1" 200

-

ยง 1 General

-

Your personal data (e.g. title, name, address, e-mail address, telephone number, bank details, credit card number) will only be processed by us in accordance with the provisions of German data protection law and the data protection law of the European Union (EU). The following regulations inform you about the type, scope and purpose of the collection, processing and use of personal data. This data protection declaration refers only to our websites. If you are forwarded to other sites via links on our sites, please inform yourself there about the respective handling of your data.

-

ยง 2 Information about cookies

-
    -
  • (1) We use cookies to optimize our Internet presence. These are small text files that are temporarily stored in the RAM of your computer. These cookies are deleted after closing the browser, with the exception of long-term cookies for logging into the customer center.
  • -
  • (2) You can prevent cookies from being stored by selecting “Block cookies” in your browser settings. However, this may result in a functional restriction of our offers.
  • -
-

ยง 3 Rights of the data subject

-

If personal data is processed by you, you are a data subject within the meaning of the GDPR and you have the following rights against the controller:

-
1. Right of access
-

You may request confirmation from the controller as to whether personal data concerning you is being processed by us. -If such processing is taking place, you may request information from the controller about the following:

-
    -
  • (1) the purposes for which the personal data are processed;
  • -
  • (2) the categories of personal data which are processed;
  • -
  • (3) the recipients or categories of recipients to whom the personal data concerning you have been or will be disclosed;
  • -
  • (4) the planned duration of the storage of the personal data concerning you or, if concrete information on this is not possible, criteria for determining the storage period;
  • -
  • (5) the existence of a right to rectification or erasure of the personal data concerning you, a right to restriction of processing by the controller or a right to object to such processing;
  • -
  • (6) the existence of a right of appeal to a supervisory authority;
  • -
  • (7) any available information on the origin of the data, if the personal data are not collected from the data subject;
  • -
  • (8) the existence of automated decision-making, including profiling, pursuant to Article 22(1) and (4) of the GDPR and, at least in these cases, meaningful information about the logic involved and the scope and intended effects of such processing for the data subject. -You have the right to request information about whether personal data concerning you is transferred to a third country or to an international organization. In this context, you may request to be informed about the appropriate safeguards pursuant to Art. 46 DSGVO in connection with the transfer.
  • -
-
2. Right to rectification
-

You have a right to rectification and/or completion vis-ร -vis the controller if the personal data processed concerning you is inaccurate or incomplete. The controller shall carry out the rectification without undue delay.

-
3. Right to restriction of processing
-

You may request the restriction of the processing of personal data concerning you under the following conditions:

-
    -
  • (1) if you contest the accuracy of the personal data concerning you for a period enabling the controller to verify the accuracy of the personal data;
  • -
  • (2) the processing is unlawful and you object to the erasure of the personal data and request instead the restriction of the use of the personal data;
  • -
  • (3) the controller no longer needs the personal data for the purposes of the processing, but you need it for the establishment, exercise or defense of legal claims; or
  • -
  • (4) if you have objected to the processing pursuant to Article 21(1) of the GDPR and it is not yet clear whether the controller’s legitimate grounds override your grounds. +1.2.3.4 - - [25/Mar/2018:12:02:21 +0200] "GET / HTTP/1.1" 200

    ยง 1 General

    Your personal data (e.g. title, name, address, e-mail address, telephone number, bank details, credit card number) will only be processed by us in accordance with the provisions of German data protection law and the data protection law of the European Union (EU). The following regulations inform you about the type, scope and purpose of the collection, processing and use of personal data. This data protection declaration refers only to our websites. If you are forwarded to other sites via links on our sites, please inform yourself there about the respective handling of your data.

    ยง 2 Information about cookies

    • (1) We use cookies to optimize our Internet presence. These are small text files that are temporarily stored in the RAM of your computer. These cookies are deleted after closing the browser, with the exception of long-term cookies for logging into the customer center.
    • (2) You can prevent cookies from being stored by selecting “Block cookies” in your browser settings. However, this may result in a functional restriction of our offers.

    ยง 3 Rights of the data subject

    If personal data is processed by you, you are a data subject within the meaning of the GDPR and you have the following rights against the controller:

    1. Right of access

    You may request confirmation from the controller as to whether personal data concerning you is being processed by us. +If such processing is taking place, you may request information from the controller about the following:

    • (1) the purposes for which the personal data are processed;
    • (2) the categories of personal data which are processed;
    • (3) the recipients or categories of recipients to whom the personal data concerning you have been or will be disclosed;
    • (4) the planned duration of the storage of the personal data concerning you or, if concrete information on this is not possible, criteria for determining the storage period;
    • (5) the existence of a right to rectification or erasure of the personal data concerning you, a right to restriction of processing by the controller or a right to object to such processing;
    • (6) the existence of a right of appeal to a supervisory authority;
    • (7) any available information on the origin of the data, if the personal data are not collected from the data subject;
    • (8) the existence of automated decision-making, including profiling, pursuant to Article 22(1) and (4) of the GDPR and, at least in these cases, meaningful information about the logic involved and the scope and intended effects of such processing for the data subject. +You have the right to request information about whether personal data concerning you is transferred to a third country or to an international organization. In this context, you may request to be informed about the appropriate safeguards pursuant to Art. 46 DSGVO in connection with the transfer.
    2. Right to rectification

    You have a right to rectification and/or completion vis-ร -vis the controller if the personal data processed concerning you is inaccurate or incomplete. The controller shall carry out the rectification without undue delay.

    3. Right to restriction of processing

    You may request the restriction of the processing of personal data concerning you under the following conditions:

    • (1) if you contest the accuracy of the personal data concerning you for a period enabling the controller to verify the accuracy of the personal data;
    • (2) the processing is unlawful and you object to the erasure of the personal data and request instead the restriction of the use of the personal data;
    • (3) the controller no longer needs the personal data for the purposes of the processing, but you need it for the establishment, exercise or defense of legal claims; or
    • (4) if you have objected to the processing pursuant to Article 21(1) of the GDPR and it is not yet clear whether the controller’s legitimate grounds override your grounds. If the processing of personal data concerning you has been restricted, such data may - apart from being stored - only be processed with your consent or for the establishment, exercise or defense of legal claims or for the protection of the rights of another natural or legal person or for reasons of important public interest of the Union or a Member State. -If the restriction of processing has been restricted in accordance with the above conditions, you will be informed by the controller before the restriction is lifted.
    • -
    -
    4. Right to deletion
    -

    a) Obligation to delete -You may request the controller to erase the personal data concerning you without undue delay, and the controller is obliged to erase such data without undue delay, if one of the following reasons applies:

    -
      -
    • (1) The personal data concerning you are no longer necessary for the purposes for which they were collected or otherwise processed.
    • -
    • (2) You revoke your consent on which the processing was based pursuant to Art. 6(1)(a) or Art. 9(2)(a) DSGVO and there is no other legal basis for the processing.
    • -
    • (3) You object to the processing pursuant to Art. 21 (1) DSGVO and there are no overriding legitimate grounds for the processing, or you object to the processing pursuant to Art. 21 (2) DSGVO.
    • -
    • (4) The personal data concerning you have been processed unlawfully.
    • -
    • (5) The erasure of the personal data concerning you is necessary for compliance with a legal obligation under Union or Member State law to which the controller is subject.
    • -
    • (6) The personal data concerning you has been collected in relation to information society services offered pursuant to Article 8(1) DSGVO. +If the restriction of processing has been restricted in accordance with the above conditions, you will be informed by the controller before the restriction is lifted.
    4. Right to deletion

    a) Obligation to delete +You may request the controller to erase the personal data concerning you without undue delay, and the controller is obliged to erase such data without undue delay, if one of the following reasons applies:

    • (1) The personal data concerning you are no longer necessary for the purposes for which they were collected or otherwise processed.
    • (2) You revoke your consent on which the processing was based pursuant to Art. 6(1)(a) or Art. 9(2)(a) DSGVO and there is no other legal basis for the processing.
    • (3) You object to the processing pursuant to Art. 21 (1) DSGVO and there are no overriding legitimate grounds for the processing, or you object to the processing pursuant to Art. 21 (2) DSGVO.
    • (4) The personal data concerning you have been processed unlawfully.
    • (5) The erasure of the personal data concerning you is necessary for compliance with a legal obligation under Union or Member State law to which the controller is subject.
    • (6) The personal data concerning you has been collected in relation to information society services offered pursuant to Article 8(1) DSGVO. b) Information to third parties If the controller has made the personal data concerning you public and is obliged to erase it pursuant to Article 17(1) of the GDPR, it shall take reasonable steps, including technical measures, having regard to the available technology and the cost of implementation, to inform data controllers that process the personal data that you, as the data subject, have requested them to erase all links to or copies or replications of such personal data. c) Exceptions -The right to erasure does not exist to the extent that the processing is necessary
    • -
    • (1) for the exercise of the right to freedom of expression and information;
    • -
    • (2) for compliance with a legal obligation which requires processing under Union or Member State law to which the controller is subject, or for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller;
    • -
    • (3) for reasons of public interest in the area of public health pursuant to Article 9(2)(h) and (i) and Article 9(3) of the GDPR;
    • -
    • (4) for archiving purposes in the public interest, scientific or historical research purposes, or statistical purposes pursuant to Article 89(1) DSGVO, insofar as the right referred to in section a) is likely to render impossible or seriously prejudice the achievement of the purposes of such processing; or
    • -
    • (5) for the assertion, exercise or defense of legal claims.
    • -
    -
    5. Right to information
    -

    If you have asserted the right to rectification, erasure or restriction of processing against the controller, the controller is obliged to inform all recipients to whom the personal data concerning you have been disclosed of this rectification or erasure of the data or restriction of processing, unless this proves impossible or involves a disproportionate effort. -You have the right against the controller to be informed about these recipients.

    -
    6. Right to data portability
    -

    You have the right to receive the personal data concerning you that you have provided to the controller in a structured, common and machine-readable format. You also have the right to transfer this data to another controller without hindrance from the controller to whom the personal data was provided, provided that.

    -
      -
    • (1) the processing is based on consent pursuant to Art. 6(1)(a) DSGVO or Art. 9(2)(a) DSGVO or on a contract pursuant to Art. 6(1)(b) DSGVO and
    • -
    • (2) the processing is carried out with the help of automated procedures. +The right to erasure does not exist to the extent that the processing is necessary
    • (1) for the exercise of the right to freedom of expression and information;
    • (2) for compliance with a legal obligation which requires processing under Union or Member State law to which the controller is subject, or for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller;
    • (3) for reasons of public interest in the area of public health pursuant to Article 9(2)(h) and (i) and Article 9(3) of the GDPR;
    • (4) for archiving purposes in the public interest, scientific or historical research purposes, or statistical purposes pursuant to Article 89(1) DSGVO, insofar as the right referred to in section a) is likely to render impossible or seriously prejudice the achievement of the purposes of such processing; or
    • (5) for the assertion, exercise or defense of legal claims.
    5. Right to information

    If you have asserted the right to rectification, erasure or restriction of processing against the controller, the controller is obliged to inform all recipients to whom the personal data concerning you have been disclosed of this rectification or erasure of the data or restriction of processing, unless this proves impossible or involves a disproportionate effort. +You have the right against the controller to be informed about these recipients.

    6. Right to data portability

    You have the right to receive the personal data concerning you that you have provided to the controller in a structured, common and machine-readable format. You also have the right to transfer this data to another controller without hindrance from the controller to whom the personal data was provided, provided that.

    • (1) the processing is based on consent pursuant to Art. 6(1)(a) DSGVO or Art. 9(2)(a) DSGVO or on a contract pursuant to Art. 6(1)(b) DSGVO and
    • (2) the processing is carried out with the help of automated procedures. In exercising this right, you also have the right to obtain that the personal data concerning you be transferred directly from one controller to another controller, insofar as this is technically feasible. Freedoms and rights of other persons must not be affected by this. -The right to data portability does not apply to processing of personal data necessary for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller.
    • -
    -
    7. Right of objection
    -

    You have the right to object at any time, on grounds relating to your particular situation, to the processing of personal data concerning you which is carried out on the basis of Article 6(1)(e) or (f) DSGVO; this also applies to profiling based on these provisions. +The right to data portability does not apply to processing of personal data necessary for the performance of a task carried out in the public interest or in the exercise of official authority vested in the controller.

7. Right of objection

You have the right to object at any time, on grounds relating to your particular situation, to the processing of personal data concerning you which is carried out on the basis of Article 6(1)(e) or (f) DSGVO; this also applies to profiling based on these provisions. The controller shall no longer process the personal data concerning you unless it can demonstrate compelling legitimate grounds for the processing which override your interests, rights and freedoms, or the processing serves the purpose of asserting, exercising or defending legal claims. If the personal data concerning you is processed for the purposes of direct marketing, you have the right to object at any time to processing of the personal data concerning you for the purposes of such marketing; this also applies to profiling, insofar as it is related to such direct marketing. If you object to the processing for direct marketing purposes, the personal data concerning you will no longer be processed for these purposes. -You have the possibility, in connection with the use of information society services, notwithstanding Directive 2002/58/EC, to exercise your right to object by means of automated procedures using technical specifications.

- -

You have the right to revoke your declaration of consent under data protection law at any time. The revocation of consent does not affect the lawfulness of the processing carried out on the basis of the consent until the revocation.

-
9. Automated decision in individual cases including profiling
-

You have the right not to be subject to a decision based solely on automated processing - including profiling - which produces legal effects concerning you or similarly significantly affects you. This does not apply if the decision

-
    -
  • (1) is necessary for the conclusion or performance of a contract between you and the controller,
  • -
  • (2) is permitted by legal provisions of the Union or the Member States to which the controller is subject and these legal provisions contain appropriate measures to protect your rights and freedoms as well as your legitimate interests; or
  • -
  • (3) is made with your express consent. +You have the possibility, in connection with the use of information society services, notwithstanding Directive 2002/58/EC, to exercise your right to object by means of automated procedures using technical specifications.

    You have the right to revoke your declaration of consent under data protection law at any time. The revocation of consent does not affect the lawfulness of the processing carried out on the basis of the consent until the revocation.

    9. Automated decision in individual cases including profiling

    You have the right not to be subject to a decision based solely on automated processing - including profiling - which produces legal effects concerning you or similarly significantly affects you. This does not apply if the decision

    • (1) is necessary for the conclusion or performance of a contract between you and the controller,
    • (2) is permitted by legal provisions of the Union or the Member States to which the controller is subject and these legal provisions contain appropriate measures to protect your rights and freedoms as well as your legitimate interests; or
    • (3) is made with your express consent. However, these decisions may not be based on special categories of personal data pursuant to Article 9(1) of the GDPR, unless Article 9(2)(a) or (g) applies and appropriate measures have been taken to protect the rights and freedoms as well as your legitimate interests. -With regard to the cases mentioned in (1) and (3), the controller shall take reasonable steps to safeguard the rights and freedoms as well as your legitimate interests, which include, at a minimum, the right to obtain the intervention of a person on the part of the controller, to express his or her point of view and to contest the decision.
    • -
    -
    10. Right to complain to a supervisory authority
    -

    Without prejudice to any other administrative or judicial remedy, you have the right to lodge a complaint with a supervisory authority, in particular in the Member State of your residence, workplace or the place of the alleged infringement, if you consider that the processing of personal data concerning you infringes the GDPR. -The supervisory authority to which the complaint has been lodged shall inform the complainant of the status and outcome of the complaint, including the possibility of a judicial remedy under Article 78 GDPR.

    -
    11. Contact form
    -

    The data of the contact form are transmitted encrypted via the internal mail systems to info@servercow.de. If you send us inquiries via the contact form, the data you enter there together with your contact data will be processed and stored by us for the purpose of processing the inquiry. We do not pass this data on to third parties without your consent. The inquiries, including the personal data contained therein, are regularly deleted as long as the inquiry remained without further business relationship.

    -
    12. SAL-bound checks (checks)
    -

    (12) During the execution of a check by “watchdog-mailcow” in connection with a SAL, no data about the connecting server or the operator will be stored or otherwise processed or evaluated.

    -

    The person responsible for data processing is the business operator.

    -
0% -
-
- +With regard to the cases mentioned in (1) and (3), the controller shall take reasonable steps to safeguard the rights and freedoms as well as your legitimate interests, which include, at a minimum, the right to obtain the intervention of a person on the part of the controller, to express his or her point of view and to contest the decision.
10. Right to complain to a supervisory authority

Without prejudice to any other administrative or judicial remedy, you have the right to lodge a complaint with a supervisory authority, in particular in the Member State of your residence, workplace or the place of the alleged infringement, if you consider that the processing of personal data concerning you infringes the GDPR. +The supervisory authority to which the complaint has been lodged shall inform the complainant of the status and outcome of the complaint, including the possibility of a judicial remedy under Article 78 GDPR.

11. Contact form

The data of the contact form are transmitted encrypted via the internal mail systems to info@servercow.de. If you send us inquiries via the contact form, the data you enter there together with your contact data will be processed and stored by us for the purpose of processing the inquiry. We do not pass this data on to third parties without your consent. The inquiries, including the personal data contained therein, are regularly deleted as long as the inquiry remained without further business relationship.

12. SAL-bound checks (checks)

(12) During the execution of a check by “watchdog-mailcow” in connection with a SAL, no data about the connecting server or the operator will be stored or otherwise processed or evaluated.

The person responsible for data processing is the business operator.

0%
\ No newline at end of file diff --git a/posts/2021/log4j-dec2021/index.html b/posts/2021/log4j-dec2021/index.html index 99c323ba0..ba0a326fe 100644 --- a/posts/2021/log4j-dec2021/index.html +++ b/posts/2021/log4j-dec2021/index.html @@ -1,300 +1,17 @@ - - - - - - - - โš ๏ธ Important informations about log4j exploit โš ๏ธ - mailcow: dockerized - Blog - -โš ๏ธ Important informations about log4j exploit โš ๏ธ - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- โš ๏ธ Important informations about log4j exploit โš ๏ธ -

Moohoo everyone!
-Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this.

-

Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack!

-

For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') which closed this issue.

-

To activate it please update your mailcow with the update.sh script

-

Stay safe everyone!

-

Niklas, Servercow Team

-
-
0% -
-
- +For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.">

โš ๏ธ Important informations about log4j exploit โš ๏ธ

Moohoo everyone!
Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this.

Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack!

For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.formatMsgNoLookups=true') which closed this issue.

To activate it please update your mailcow with the update.sh script

Stay safe everyone!

Niklas, Servercow Team

0%
\ No newline at end of file diff --git a/posts/2021/mooctober2021/index.html b/posts/2021/mooctober2021/index.html index 187cbe821..e39b960b6 100644 --- a/posts/2021/mooctober2021/index.html +++ b/posts/2021/mooctober2021/index.html @@ -1,290 +1,9 @@ - - - - - - - - ๐Ÿ„ Mooctober 2021 - the feldsam edition - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ„ Mooctober 2021 - the feldsam edition -

A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That’s a big change we hope to finish soon.

-

Furthermore we introduce our new cold standby solution.

-

With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime.

-

Disaster recovery of a mailcow is as easy as switching IPs and running “up -d”.

-

We recommend to run this script every n minutes or hours and creating snapshots on the remote location for easy versioning.

-
-
0% -
-
- +๐Ÿ„ Mooctober 2021 - the feldsam edition - mailcow: dockerized - Blog +

๐Ÿ„ Mooctober 2021 - the feldsam edition

A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That’s a big change we hope to finish soon.

Furthermore we introduce our new cold standby solution.

With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime.

Disaster recovery of a mailcow is as easy as switching IPs and running “up -d”.

We recommend to run this script every n minutes or hours and creating snapshots on the remote location for easy versioning.

0%
\ No newline at end of file diff --git a/posts/2021/moore_october21/index.html b/posts/2021/moore_october21/index.html index ddbed80bf..4ab089050 100644 --- a/posts/2021/moore_october21/index.html +++ b/posts/2021/moore_october21/index.html @@ -1,297 +1,17 @@ - - - - - - - - more, moore, moooore - mailcow: dockerized - Blog - -more, moore, moooore - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- more, moore, moooore -

Girls, guys and cows,

-

Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress.

-

We are also reworking the design a bit, that’s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.shop.

-

Kristian Feldsam already started working on the migration of the UI to BS5, that’s another big step forward for us. Thank you!

-

Andrรฉ

-
-
0% -
-
- +We are also reworking the design a bit, that’s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.">

more, moore, moooore

Girls, guys and cows,

Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress.

We are also reworking the design a bit, that’s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.shop.

Kristian Feldsam already started working on the migration of the UI to BS5, that’s another big step forward for us. Thank you!

Andrรฉ

0%
\ No newline at end of file diff --git a/posts/2021/moovember2021/index.html b/posts/2021/moovember2021/index.html index 1afe3097d..cefca1ffd 100644 --- a/posts/2021/moovember2021/index.html +++ b/posts/2021/moovember2021/index.html @@ -1,380 +1,10 @@ - - - - - - - - ๐Ÿ„ Moovember 2021 - Patchnotes - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ„ Moovember 2021 - Patchnotes -

Moohoo everyone!

-

Niklas here to present you the latest news around our lovely mailcow :)

-

Let’s get started, shall we?

-
-

Major changes from November 2021 for the mailcow stack:

-
    -
  • SOGo update to 5.3.0
  • -
  • Dovecot update to 2.3.17
  • -
  • ClamAV update to 0.103.4
  • -
  • [Web] Auto-generated app passwords for Apple configuration profiles
  • -
-

Please consider updating your mailcow stack to ensure a stable environment.

-
-

All changes from November 2021 for the mailcow stack (newest to oldest):

-

30th November 2021:

-
    -
  • [SOGo] Update Image (Docker Image for mailcow stack)
  • -
-

29th November 2021:

-
    -
  • Translations update from Weblate (Pull request: #4351)
  • -
-

28th November 2021:

-
    -
  • [web] Fix several raw html flags in twig (Pull request: #4325)
  • -
  • [web] fixed html in alerts
  • -
  • [README] Separate build badges
  • -
  • Translations update from Weblate (Pull requests: #4347 & #4346)
  • -
-

27th November 2021:

-
    -
  • Translations update from Weblate (Pull request: #4345)
  • -
  • [README] Added build + translation badge
  • -
  • [Web] Updated lang.de.json (Pull request: #4344)
  • -
  • [CI] Run tests on staging branch
  • -
  • [API] Updated docs for transport route
  • -
  • [Web] Updated lang.de.json (Pull request: #4343)
  • -
-

26th November 2021:

-
    -
  • [Web] Fix lang strings
  • -
  • [Web] Change lang strings inding in 0
  • -
  • [web] Delete XMPP references from langfiles (#4338)
  • -
-

22th November 2021:

-
    -
  • Update SOGo to 5.3.0 (Pull request: #4330)
  • -
-

18th November 2021:

-
    -
  • [MariaDB] Further increase connections
  • -
  • [Rspamd] Return CAB to archive_extensions
  • -
  • [Rspamd] Adjust CAB score detection
  • -
-

15th November 2021:

-
    -
  • [Config] Fix link, fixes (Issue: #4322)
  • -
-

14th November 2021:

-
    -
  • [ClamAV] Change mirror for Dockerfile
  • -
  • [Dovecot] v2.3.17
  • -
  • [Web] Auto-generated app passwords for Apple configuration profiles (Pull request: #4316)
  • -
-

12th November 2021:

-
    -
  • Add missing API endpoint to openapi.yaml (Pull request: #4320)
  • -
-

11th November 2021:

-
    -
  • [ClamAV] Update to 0.103.4 (Pull request: #4314)
  • -
-
-

As this is our last changelog for 2021, the whole tinc (The Infrastructure Company) team wishes you a ๐ŸŽ„ Merry Christmas ๐ŸŽ and a ๐ŸŽ† Happy New Year 2022 ๐Ÿฅ‚.

-

May the next year be with you!

-
-
0% -
-
- +๐Ÿ„ Moovember 2021 - Patchnotes - mailcow: dockerized - Blog +

๐Ÿ„ Moovember 2021 - Patchnotes

Moohoo everyone!

Niklas here to present you the latest news around our lovely mailcow :)

Let’s get started, shall we?


Major changes from November 2021 for the mailcow stack:

  • SOGo update to 5.3.0
  • Dovecot update to 2.3.17
  • ClamAV update to 0.103.4
  • [Web] Auto-generated app passwords for Apple configuration profiles

Please consider updating your mailcow stack to ensure a stable environment.


All changes from November 2021 for the mailcow stack (newest to oldest):

30th November 2021:

  • [SOGo] Update Image (Docker Image for mailcow stack)

29th November 2021:

  • Translations update from Weblate (Pull request: #4351)

28th November 2021:

  • [web] Fix several raw html flags in twig (Pull request: #4325)
  • [web] fixed html in alerts
  • [README] Separate build badges
  • Translations update from Weblate (Pull requests: #4347 & #4346)

27th November 2021:

  • Translations update from Weblate (Pull request: #4345)
  • [README] Added build + translation badge
  • [Web] Updated lang.de.json (Pull request: #4344)
  • [CI] Run tests on staging branch
  • [API] Updated docs for transport route
  • [Web] Updated lang.de.json (Pull request: #4343)

26th November 2021:

  • [Web] Fix lang strings
  • [Web] Change lang strings inding in 0
  • [web] Delete XMPP references from langfiles (#4338)

22th November 2021:

  • Update SOGo to 5.3.0 (Pull request: #4330)

18th November 2021:

  • [MariaDB] Further increase connections
  • [Rspamd] Return CAB to archive_extensions
  • [Rspamd] Adjust CAB score detection

15th November 2021:

  • [Config] Fix link, fixes (Issue: #4322)

14th November 2021:

  • [ClamAV] Change mirror for Dockerfile
  • [Dovecot] v2.3.17
  • [Web] Auto-generated app passwords for Apple configuration profiles (Pull request: #4316)

12th November 2021:

  • Add missing API endpoint to openapi.yaml (Pull request: #4320)

11th November 2021:

  • [ClamAV] Update to 0.103.4 (Pull request: #4314)

As this is our last changelog for 2021, the whole tinc (The Infrastructure Company) team wishes you a ๐ŸŽ„ Merry Christmas ๐ŸŽ and a ๐ŸŽ† Happy New Year 2022 ๐Ÿฅ‚.

May the next year be with you!

0%
\ No newline at end of file diff --git a/posts/2021/rspamd_memleak_sep2021/index.html b/posts/2021/rspamd_memleak_sep2021/index.html index ac4e79ed0..dadbaae5d 100644 --- a/posts/2021/rspamd_memleak_sep2021/index.html +++ b/posts/2021/rspamd_memleak_sep2021/index.html @@ -1,305 +1,25 @@ - - - - - - - - mailcows updated between 25th August and 2nd September 2021 should be updated again - mailcow: dockerized - Blog - -mailcows updated between 25th August and 2nd September 2021 should be updated again - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- mailcows updated between 25th August and 2nd September 2021 should be updated again -

Hi,

-

If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now.

-

Besides that, we also heavily reduced the map hammering with another change in the map generator.

-

Update time!

-

Andrรฉ

-
-
0% -
-
- +Andrรฉ">

mailcows updated between 25th August and 2nd September 2021 should be updated again

Hi,

If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now.

Besides that, we also heavily reduced the map hammering with another change in the map generator.

Update time!

Andrรฉ

0%
\ No newline at end of file diff --git a/posts/2021/xubium_recommend/index.html b/posts/2021/xubium_recommend/index.html index 428455302..d02e375f1 100644 --- a/posts/2021/xubium_recommend/index.html +++ b/posts/2021/xubium_recommend/index.html @@ -1,306 +1,21 @@ - - - - - - - - From Peru with moo! - mailcow: dockerized - Blog - -From Peru with moo! - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
-
- - -
-
-
- - -
-
- - - -
-

- From Peru with moo! -

Dear cows,

-

For organizations in Spanish-speaking countries I would recommend you check out Xubium.

-

/posts/2021/xubium_recommend/Xubium.png

-

They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses.

-

Xubium is an amazing company to work with, it has our recommendation by all means.

-
-
0% -
-
- +Xubium is an amazing company to work with, it has our recommendation by all means.">

From Peru with moo!

Dear cows,

For organizations in Spanish-speaking countries I would recommend you check out Xubium.

/posts/2021/xubium_recommend/Xubium.png

They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses.

Xubium is an amazing company to work with, it has our recommendation by all means.

0%
\ No newline at end of file diff --git a/posts/2022/2022-04-info/index.html b/posts/2022/2022-04-info/index.html index f60f06524..2eb981761 100644 --- a/posts/2022/2022-04-info/index.html +++ b/posts/2022/2022-04-info/index.html @@ -1,297 +1,17 @@ - - - - - - - - โš ๏ธ Important Information about the 2022-04 Update โš ๏ธ - mailcow: dockerized - Blog - -โš ๏ธ Important Information about the 2022-04 Update โš ๏ธ - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- โš ๏ธ Important Information about the 2022-04 Update โš ๏ธ -

Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login.

-

So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases.

-

Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.

-

We apologize for this error.

-
-
0% -
-
- +Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.">

โš ๏ธ Important Information about the 2022-04 Update โš ๏ธ

Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login.

So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases.

Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.

We apologize for this error.

0%
\ No newline at end of file diff --git a/posts/2022/docs-update-2.0/index.html b/posts/2022/docs-update-2.0/index.html index b3a7f1cc9..1f2024f55 100644 --- a/posts/2022/docs-update-2.0/index.html +++ b/posts/2022/docs-update-2.0/index.html @@ -1,303 +1,10 @@ - - - - - - - - ๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Notes - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Notes -

Moohoo everyone! -It’s Friday then Then Saturday, Sunday (what?)

-

We have an exciting news to share with you!

-

We present you the newly released mailcow: dockerized Docs 2.0!

-

Not much may have changed at first glance (you would think) but under the hood a lot has changed!

-

So we present you from today:

-
    -
  • Multi-language support (English and German are supported and updated by Servercow itself )
  • -
  • Light-/Darkmode
  • -
  • New organized structure (interesting for contributors)
  • -
-

All in all a remake of the existing docs.

-
-

With the possibility to translate the whole document pages we offer the community the possibility to translate the docs into their language.

-

More detailed information can be found on the documentation page.

-

Due to the structural changes, we have renamed the previous master branch on GitHub as legacy-1.0 branch and closed all PRs (still existing in the old format).

-

If you still want to add your changes to the docs you have to use the new docs schema.

-

P.S.: We are looking forward to your feedback, as there might be some bugs due to the port.

-
-
0% -
-
- +๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Notes - mailcow: dockerized - Blog +

๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Notes

Moohoo everyone! +It’s Friday then Then Saturday, Sunday (what?)

We have an exciting news to share with you!

We present you the newly released mailcow: dockerized Docs 2.0!

Not much may have changed at first glance (you would think) but under the hood a lot has changed!

So we present you from today:

  • Multi-language support (English and German are supported and updated by Servercow itself )
  • Light-/Darkmode
  • New organized structure (interesting for contributors)

All in all a remake of the existing docs.


With the possibility to translate the whole document pages we offer the community the possibility to translate the docs into their language.

More detailed information can be found on the documentation page.

Due to the structural changes, we have renamed the previous master branch on GitHub as legacy-1.0 branch and closed all PRs (still existing in the old format).

If you still want to add your changes to the docs you have to use the new docs schema.

P.S.: We are looking forward to your feedback, as there might be some bugs due to the port.

0%
\ No newline at end of file diff --git a/posts/2022/mailcow-feat-alpine/index.html b/posts/2022/mailcow-feat-alpine/index.html new file mode 100644 index 000000000..eeb899c86 --- /dev/null +++ b/posts/2022/mailcow-feat-alpine/index.html @@ -0,0 +1,22 @@ +[GUIDE] mailcow feat. Alpine Linux = โค๏ธ - mailcow: dockerized - Blog +

[GUIDE] mailcow feat. Alpine Linux = โค๏ธ

A small guide for installing mailcow on Alpine Linux

Moohoo everyone!

Today not an update log of mailcow , instead a guide!

The topic is: install mailcow on Alpine Linux, because although the compatibility is not yet 100% guaranteed mailcow works pretty well on Alpine!

Introduction

If you have ever dealt with the Linux world, you will probably have run across one or the other operating systems and may have heard the name Alpine Linux.

Because what makes Alpine Linux different from other distributions is its light weight. Did you just call the other distributions fat? - NO!.

So Alpine just comes in the basic edition with less than 60 packages, whereas Debian comes with almost 400 packages (approx.).

Also the general utilization of the systems is clearly smaller with Alpine on the average. (Depends on the use case)

But why that tutorial?

A good question! Alpine is built a little different compared to other distributions. In this guide we will only explain the steps from the Alpine installation and not how to install Alpine.


apk as a Package manager (Basics)

Alpine Linux uses apk as package manager, which is a lot (and I really mean a lot) faster, but also seems a bit weird in handling, if you haven’t worked with it before.

For example, apk update loads the latest package list instead of apt update as on systems with apt.

There is also a difference in the package upgrade process. There the syntax is apk upgrade instead of apt upgrade.

New packages are installed with apk add PACKAGENAME instead of apt install PACKAGENAME. This is drastically different, but you get used to it.

Last thing: we delete packages in Alpine with apk del PACKAGENAME.

Good, Crash Course done through apk. Now we are ready to go!


Install the main packages (git, Docker, Docker Compose).

Alright, we know the basics about apk now, so let’s get started with the mailcow installation.

First we install the packages git, Docker, Docker Compose and nano, the latest being my preference for text editors so you can use something of your choice.

The packages are installed as follows:

1
+2
+3
+4
+
apk update
+apk upgrade
+
+apk add git docker docker-cli-compose nano

Alright the packages are installed. Now we have to add Docker to the startup programs. This works a bit different than with Debian or other Linux operating systems.

Alpine Linux uses rc as a systemctl replacement.

The syntax to add the Docker service to the startup is:

1
+2
+
rc-update add docker default # Adds Docker to the startup programs
+rc-service docker start # Starts the Docker daemon

Change or install system packages from Busybox to GNU

mailcow needs some GNU tools to run on Alpine.

But don’t worry, I’ll show you which ones and how to get them.

What we need: grep, sed, coreutils, findutils and bash and curl to run the mailcow scripts.

We install or update them (because some of the packages are already installed, but only busybox) with the following commands:

1
+
apk add --no-cache --upgrade grep sed coreutils findutils bash curl

Now that we have these packages installed we can finally deploy mailcow!


Deploying mailcow

Ok, the installation of mailcow is done here as usual.

  1. Firstly clone the git repo in /opt with:
1
+
git clone https://github.com/mailcow/mailcow-dockerized
  1. Then run the generate_config.sh as root (./generate_config.sh)
    Watch out for the umask 0022!!!

  2. Enter your FQDN (Full Qualified Domain Name) in the generate_config.sh prompt and adjust the timezone (if not already correctly detected by the script).

  3. Download all container images with docker compose pull.

  4. Optional: Disable possible resource hogging components like SOLR, CLAMAV (if RAM is low) in mailcow.conf.

  5. Start mailcow with docker compose up -d.

  6. Recommended if v6 is active: Enable Docker native IPv6 connectivity. To do this, run the update.sh script once and answer yes to the question with native IPv6 in Docker.
    WARNING! Enable this option only if you have IPv6 enabled on your system, otherwise you may get segmentation faults with Alpine Linux if you don’t have an IPv6 address!

  7. Recommended if no v6 is present: Disabling IPv6 in the mailcow stack (see https://docs.mailcow.email/post_installation/firststeps-disable_ipv6/)


Epilog

If you have followed these instructions, your mailcow should now run successfully on a lean and very fast Linux OS. However, you should not take this installation or maintenance too easily, as Alpine behaves differently in certain respects.

Errors can also occur during use, which might not be discovered by us yet, which is why we recommend regular backups. (By the way, this also works as usual with the Crontab backups from our docs)

You are welcome to report discovered bugs in Alpine. However, they may not be solvable due to the different lib library musl compared to the well-known library glibc. Please have a look at the official wiki page of musl or glibc: https://wiki.musl-libc.org/functional-differences-from-glibc.html


Used Images:

0%
\ No newline at end of file diff --git a/posts/2022/mailcow-twitter/index.html b/posts/2022/mailcow-twitter/index.html index 67fe19aab..dd1f497f7 100644 --- a/posts/2022/mailcow-twitter/index.html +++ b/posts/2022/mailcow-twitter/index.html @@ -1,299 +1,9 @@ - - - - - - - - Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter! - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter! -

Moohoo everyone!

-

Our dear mailcow has taken the plunge into social media: Twitter!

-

There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project.

-

Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email.

-

We look forward to getting in touch with you there and keeping you up to date.

-

Stay healthy!
-Niklas

-
-
0% -
-
- +Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter! - mailcow: dockerized - Blog +

Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!

Moohoo everyone!

Our dear mailcow has taken the plunge into social media: Twitter!

There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project.

Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email.

We look forward to getting in touch with you there and keeping you up to date.

Stay healthy!
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/nightly-tests-bs5/index.html b/posts/2022/nightly-tests-bs5/index.html index 08136f5a8..11d0afbf1 100644 --- a/posts/2022/nightly-tests-bs5/index.html +++ b/posts/2022/nightly-tests-bs5/index.html @@ -1,315 +1,22 @@ - - - - - - - - Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5 - mailcow: dockerized - Blog - -Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5 - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5 -

It took long enough, but here it is finally: The new mailcow UI!

-

Currently it’s still exclusively in the nightly builds because we want to optimize the UI.

-

And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability.

-

So if there was one thing that always bothered you so far, please let us know!

-

We are collecting feedback on this on mailcow’s GitHub page: -https://github.com/mailcow/mailcow-dockerized/discussions/4734.

-

With your feedback we can optimize the mailcow UI (MUH-I) as good as possible so that old as well as new users can find their way around quickly.

-

So. Want to join in? Good! Then let’s go for the Nightly Builds. You can find instructions here.

-

Thank you for your feedback and testing in general. โค๏ธ

-

Your mailcow Team
-Niklas

-
-
0% -
-
- +So if there was one thing that always bothered you so far, please let us know!">

Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5

It took long enough, but here it is finally: The new mailcow UI!

Currently it’s still exclusively in the nightly builds because we want to optimize the UI.

And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability.

So if there was one thing that always bothered you so far, please let us know!

We are collecting feedback on this on mailcow’s GitHub page: +https://github.com/mailcow/mailcow-dockerized/discussions/4734.

With your feedback we can optimize the mailcow UI (MUH-I) as good as possible so that old as well as new users can find their way around quickly.

So. Want to join in? Good! Then let’s go for the Nightly Builds. You can find instructions here.

Thank you for your feedback and testing in general. โค๏ธ

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/our-new-demos/index.html b/posts/2022/our-new-demos/index.html index fd820167b..611eae6b7 100644 --- a/posts/2022/our-new-demos/index.html +++ b/posts/2022/our-new-demos/index.html @@ -1,312 +1,13 @@ - - - - - - - - The new Demos are here! - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- The new Demos are here! -

Moohoo everyone!

-

Itยดs finally time: Our new mailcow Demos are here and live for you to test!

-

What does that mean now?

-

Well, a few of you might be interested to test out our new features located in the nightly builds but donยดt have a chance to setup a special tesing environment or simply doesnยดt want to.

-

And thatยดs where the new nightly demo instance takes place. This one is the newly created demo which features all changes from the nightly builds directly installed from GitHub. Just as the way the original (stable demo) does.

-

Youยดre able to reach the demos at:

- -

The logins are the same as known from the classic demo instance:

-
    -
  • Administrator: admin / moohoo
  • -
  • Domain-Administrator: department / moohoo
  • -
  • Mailbox: demo@440044.xyz / moohoo
  • -
-

Happy testing (or experimenting) with the new demo instances (especially the nightly feature demo).

-

Your mailcow team
-– Niklas

-
0% -
-
- +The new Demos are here! - mailcow: dockerized - Blog +

The new Demos are here!

Moohoo everyone!

Itยดs finally time: Our new mailcow Demos are here and live for you to test!

What does that mean now?

Well, a few of you might be interested to test out our new features located in the nightly builds but donยดt have a chance to setup a special tesing environment or simply doesnยดt want to.

And thatยดs where the new nightly demo instance takes place. This one is the newly created demo which features all changes from the nightly builds directly installed from GitHub. Just as the way the original (stable demo) does.

Youยดre able to reach the demos at:

The logins are the same as known from the classic demo instance:

  • Administrator: admin / moohoo
  • Domain-Administrator: department / moohoo
  • Mailbox: demo@440044.xyz / moohoo

Happy testing (or experimenting) with the new demo instances (especially the nightly feature demo).

Your mailcow team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-01/index.html b/posts/2022/release-2022-01/index.html index c7c3dcebf..c7e0ed211 100644 --- a/posts/2022/release-2022-01/index.html +++ b/posts/2022/release-2022-01/index.html @@ -1,331 +1,11 @@ - - - - - - - - ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnotes - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnotes -

-
- Contents - -
-
-

Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software!

-

This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later.

-

First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn’t be where it is now โค๏ธ

-

We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.g. with the greyed out save button in the redirects or the Olefy Ping fix, which solves a console spam) should have been fixed already… We promise improvement at this point!

-

You probably already think: “Shorter please?”… it’s alright! Here are the changes (in short!)

-
-

Very Important changes:

-

With the January 2022 update, the previously used U2F API (for 2-factor authentication) will be replaced by the newer WebAuthn API.

-

What does this mean for you? -Well, if you have already registered a FIDO2 security key as 2FA via U2F and you apply the update, you will be greeted by a message saying that your FIDO2 key is still running via U2F and will therefore be removed from the account as 2FA. But don’t worry! As soon as you are back in the admin administration you can simply register the same key again, but this time as WebAuthn (not U2F).

-

The process is the same, even the position of the button to start the registration is the same, so you should be able to set up and use your key without any problems.

-

Thanks to @FreddleSpl0it for the implementation!

-

In our documentation you will find more detailed information about this.

-

Important changes:

-
    -
  • Sogo was updated to version 5.5.0. Yay, finally no more grayed out buttons in the submenus!
  • -
  • The log4j fix (in Solr) has been improved again. On the advice of the German Federal Office for Information Security, we have removed the affected log4j class. The Solr container was not accessible from the Internet at any time.
  • -
  • On the advice of the German Federal Office for Information Security we updated ClamAV to 0.103.5 because it was vulnerable to a Denial of Service attack.
  • -
  • In the Olefy container, the annoying ping error (spam from Olefy in the console) has finally been fixed! Thanks to @16bitsysop for the fix! –> Fixing issue #4401
  • -
  • Due to the update to Alpine 3.15 or higher the acme container has changed the SSL folder (Also already sporadically with acme-mailcow 1:79), this was fixed by @mkuron. Thanks for that. –> Fixing issue #4392
  • -
  • We have fixed the bugs regarding GeoIP and netfilter (or rather @marcvorwerk did) –> Fixing issue #2668
  • -
-
-

There were many more! But that would go beyond the scope here, just have a look at the Release, then you will see the whole extent.

-

Once again, thank you to all the contributors and donors.

-

On behalf of the Servercow/mailcow/tinc team we wish you (wherever you are) a pleasant morning, noon or evening and stay healthy!

-
-
0% -
-
- +๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnotes - mailcow: dockerized - Blog +

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnotes

Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software!

This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later.

First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn’t be where it is now โค๏ธ

We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.g. with the greyed out save button in the redirects or the Olefy Ping fix, which solves a console spam) should have been fixed already… We promise improvement at this point!

You probably already think: “Shorter please?”… it’s alright! Here are the changes (in short!)


Very Important changes:

With the January 2022 update, the previously used U2F API (for 2-factor authentication) will be replaced by the newer WebAuthn API.

What does this mean for you? +Well, if you have already registered a FIDO2 security key as 2FA via U2F and you apply the update, you will be greeted by a message saying that your FIDO2 key is still running via U2F and will therefore be removed from the account as 2FA. But don’t worry! As soon as you are back in the admin administration you can simply register the same key again, but this time as WebAuthn (not U2F).

The process is the same, even the position of the button to start the registration is the same, so you should be able to set up and use your key without any problems.

Thanks to @FreddleSpl0it for the implementation!

In our documentation you will find more detailed information about this.

Important changes:

  • Sogo was updated to version 5.5.0. Yay, finally no more grayed out buttons in the submenus!
  • The log4j fix (in Solr) has been improved again. On the advice of the German Federal Office for Information Security, we have removed the affected log4j class. The Solr container was not accessible from the Internet at any time.
  • On the advice of the German Federal Office for Information Security we updated ClamAV to 0.103.5 because it was vulnerable to a Denial of Service attack.
  • In the Olefy container, the annoying ping error (spam from Olefy in the console) has finally been fixed! Thanks to @16bitsysop for the fix! –> Fixing issue #4401
  • Due to the update to Alpine 3.15 or higher the acme container has changed the SSL folder (Also already sporadically with acme-mailcow 1:79), this was fixed by @mkuron. Thanks for that. –> Fixing issue #4392
  • We have fixed the bugs regarding GeoIP and netfilter (or rather @marcvorwerk did) –> Fixing issue #2668

There were many more! But that would go beyond the scope here, just have a look at the Release, then you will see the whole extent.

Once again, thank you to all the contributors and donors.

On behalf of the Servercow/mailcow/tinc team we wish you (wherever you are) a pleasant morning, noon or evening and stay healthy!

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-01a/index.html b/posts/2022/release-2022-01a/index.html index dd9271738..27de97d9d 100644 --- a/posts/2022/release-2022-01a/index.html +++ b/posts/2022/release-2022-01a/index.html @@ -1,339 +1,22 @@ - - - - - - - - ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnotes - mailcow: dockerized - Blog - -๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnotes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnotes -

-
- Contents - -
-
-

Moohoo everyone.

-

Today we are releasing the first hotfix for the 2022-01 Update.

-

This has changed:

-
-

Additions:

- -
-

Changes:

- -
-

Fixes:

- -
-

To include the latest patches from inverse we updated the SOGo Container to the latest nightly build (2022-02-01). Itยดll keep the same Tag as the previous release.

-
-
0% -
-
- +Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.">

๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnotes

Moohoo everyone.

Today we are releasing the first hotfix for the 2022-01 Update.

This has changed:


Additions:


Changes:


Fixes:


To include the latest patches from inverse we updated the SOGo Container to the latest nightly build (2022-02-01). Itยดll keep the same Tag as the previous release.

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-03/index.html b/posts/2022/release-2022-03/index.html index 8bd26d021..b1b04261a 100644 --- a/posts/2022/release-2022-03/index.html +++ b/posts/2022/release-2022-03/index.html @@ -1,343 +1,20 @@ - - - - - - - - ๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnotes - mailcow: dockerized - Blog - -๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnotes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnotes -

-
- Contents - -
- -

Moohoo everyone, March is here and by the end of the month it will be spring again. -Surely the last few days were as scary for you as they were for us.

-

๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you!

-

Let’s move on to the March update of our mailcow. -Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I’m looking at you ClamAV and Olefy!).

-

So let’s get to it!

-
-

Docker Image Changes:

-
    -
  • Dovecot has been updated to 1.161 (Imapsync + Dovecot update).
  • -
  • Olefy was updated to 1.9 (Olefy Update)
  • -
  • Rspamd was updated to 1.80 (Olefy update)
  • -
  • ClamAV was updated to 1.44
  • -
-

Important changes:

-
    -
  • ClamAV has been updated to version 0.104.2, with this version we are secured for the long term (bye bye 0.103.X). Actually only the Docker image process has changed, the rest is running as usual. If not please open an issue on GitHub!
  • -
  • Dovecot has been updated to 2.3.18. This also brings us closer to moving from Solr to Xapian, more on that when we get to a viable point.
  • -
  • IMAPSync has been updated to version 2.178 (within Dovecot).
  • -
  • Oletools have been changed to a new upstream (now uses @decalage2’s repository).
  • -
-

Minor changes:

-
    -
  • The changed doc paths (internal) were not adjusted in the mailcow UI, so you saw a 404 page. This has been fixed.
  • -
  • The WATCHDOG_NOTIFY_EMAIL string had been giving a warning in the console (when starting the stack) if the variable was empty, this has been removed as the string is now set to NULL (if empty).
  • -
  • Weยดve Updated the nsyslog-ng Version to 3.28 (fixes a warning in console right after Dovecot started)
  • -
-
-

Currently, the following has never been more important: stay healthy and even more important: take care of you!

-
-
0% -
-
- +Let’s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I’m looking at you ClamAV and Olefy!">

๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnotes

Moohoo everyone, March is here and by the end of the month it will be spring again. +Surely the last few days were as scary for you as they were for us.

๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you!

Let’s move on to the March update of our mailcow. +Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I’m looking at you ClamAV and Olefy!).

So let’s get to it!


Docker Image Changes:

  • Dovecot has been updated to 1.161 (Imapsync + Dovecot update).
  • Olefy was updated to 1.9 (Olefy Update)
  • Rspamd was updated to 1.80 (Olefy update)
  • ClamAV was updated to 1.44

Important changes:

  • ClamAV has been updated to version 0.104.2, with this version we are secured for the long term (bye bye 0.103.X). Actually only the Docker image process has changed, the rest is running as usual. If not please open an issue on GitHub!
  • Dovecot has been updated to 2.3.18. This also brings us closer to moving from Solr to Xapian, more on that when we get to a viable point.
  • IMAPSync has been updated to version 2.178 (within Dovecot).
  • Oletools have been changed to a new upstream (now uses @decalage2’s repository).

Minor changes:

  • The changed doc paths (internal) were not adjusted in the mailcow UI, so you saw a 404 page. This has been fixed.
  • The WATCHDOG_NOTIFY_EMAIL string had been giving a warning in the console (when starting the stack) if the variable was empty, this has been removed as the string is now set to NULL (if empty).
  • Weยดve Updated the nsyslog-ng Version to 3.28 (fixes a warning in console right after Dovecot started)

Currently, the following has never been more important: stay healthy and even more important: take care of you!

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-03a/index.html b/posts/2022/release-2022-03a/index.html index d5074705a..87cdf3c84 100644 --- a/posts/2022/release-2022-03a/index.html +++ b/posts/2022/release-2022-03a/index.html @@ -1,313 +1,22 @@ - - - - - - - - ๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnotes - mailcow: dockerized - Blog - -๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnotes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnotes -

Moohoo everyone!

-

We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues.

-

These are only minor changes this time, but as the saying goes, “Every little bit helps”.

-
-
    -
  • We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are!
  • -
  • We have improved the release tag handling with the version footer.
  • -
  • The backup and restore script now uses Debian Bullseye instead of Buster.
  • -
  • We fixed the bug that the spam alias of an alias domain was not deleted.
  • -
  • We updated Twig + dependencies to 3.3.8 to close a security hole concerning Twig.
  • -
-
-

That’s about it. We hope you are all well and healthy.

-

See you at the next update!

-

Stay healthy -Niklas

-
-
0% -
-
- +We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.">

๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnotes

Moohoo everyone!

We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues.

These are only minor changes this time, but as the saying goes, “Every little bit helps”.


  • We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are!
  • We have improved the release tag handling with the version footer.
  • The backup and restore script now uses Debian Bullseye instead of Buster.
  • We fixed the bug that the spam alias of an alias domain was not deleted.
  • We updated Twig + dependencies to 3.3.8 to close a security hole concerning Twig.

That’s about it. We hope you are all well and healthy.

See you at the next update!

Stay healthy +Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-04/index.html b/posts/2022/release-2022-04/index.html index b9dcfe448..b9095b25d 100644 --- a/posts/2022/release-2022-04/index.html +++ b/posts/2022/release-2022-04/index.html @@ -1,344 +1,22 @@ - - - - - - - - ๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnotes - mailcow: dockerized - Blog - -๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnotes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnotes -

-
- Contents - -
-
-

Moohoo everyone!

-

The April update is here with a bunch of new stuff for your flawless E-Mail Flow.

-

This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows:

-
-

Major Changes

-
    -
  • -

    We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.5.2 update!
    Note: The 5.5.2 update will be part of the 2022-04a update as soon as it is released by inverse (most likely).

    -
  • -
  • -

    We have updated Rspamd to 3.2.1. (More detailed patch notes can be found here).

    -
  • -
  • -

    The ClamAV components in mailcow now use the official container of ClamAV itself. For this reason there is now another volume (clamd-db-vol-1) in which the signatures of ClamAV are stored during freshclam. This allows us to roll out future ClamAV versions faster and in a more space efficient way. Note: ClamAV still uses version 0.104.2. Version 0.105 will be part of the mailcow as soon as it is released.

    -
  • -
-
-

Minor Changes

-
    -
  • Autodiscover is now compatible with App Passwords.
  • -
  • The Postmap Access List has been updated to a newer state.
  • -
  • New French translations.
  • -
-
-

Take a look at the full release page of the Update at Github: Click here

-

We hope you are all safe and sound.

-

No matter where you are, take care of yourselves.

-
-
0% -
-
- +Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.">

๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnotes

Moohoo everyone!

The April update is here with a bunch of new stuff for your flawless E-Mail Flow.

This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows:


Major Changes

  • We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.5.2 update!
    Note: The 5.5.2 update will be part of the 2022-04a update as soon as it is released by inverse (most likely).

  • We have updated Rspamd to 3.2.1. (More detailed patch notes can be found here).

  • The ClamAV components in mailcow now use the official container of ClamAV itself. For this reason there is now another volume (clamd-db-vol-1) in which the signatures of ClamAV are stored during freshclam. This allows us to roll out future ClamAV versions faster and in a more space efficient way. Note: ClamAV still uses version 0.104.2. Version 0.105 will be part of the mailcow as soon as it is released.


Minor Changes

  • Autodiscover is now compatible with App Passwords.
  • The Postmap Access List has been updated to a newer state.
  • New French translations.

Take a look at the full release page of the Update at Github: Click here

We hope you are all safe and sound.

No matter where you are, take care of yourselves.

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-05/index.html b/posts/2022/release-2022-05/index.html index 4df8ab21c..1a3d493de 100644 --- a/posts/2022/release-2022-05/index.html +++ b/posts/2022/release-2022-05/index.html @@ -1,403 +1,45 @@ - - - - - - - - ๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changelog - mailcow: dockerized - Blog - -๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changelog - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changelog -

2022-05c

-

Itยดs us again again!

-

This time weยดve published the 2022-05c Update which is a very small one.

-

It changed the API a bit again. This time for security reasons.

-

Head over to GitHub to see the full changelog: -https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c

-

Stay healthy

-

Niklas

-
-

2022-05b

-

Itยดs us again!

-

Today we have a small API Fix Update which focus mainly on the UI.

-

As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.

-

This is now fixed.

-

Additionaly, weยดve added a small tweak for the UI. Did you know that there was a little plus symbol at the left of a Domain/Mailbox? No? Donยดt worry it was a little hard to see… until now :)

-

As always, feel free to visit the official release page on Github: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05b

-

Thatยดs all basically… oh no wait one more thing! -Weยดve now included the mailcow Version to our Bug Reporting Formular on GitHub. So if you want to report a Bug please also fill out the Version row on the Issue form.

-

Now thatยดs all!

-

Thanks again for all of the contributors and mailcow users/admins.

-

Your mailcow Team

-

Niklas

-
-

2022-05a

-

Hello again folks,

-

weยดve just released the first Hotfix for 2022-05.

-

It fixes a critical UI Bug which caused a inaccessability for the UI after the Update 2022-05.

-

The issue was a missing placeholder which caused a important folder to be deleted from the Git Repository, which is needed to display the UI.

-

Sorry for that.

-

Your mailcow Team

-

Niklas

-
-

2022-05

-
-

Here, the new mailcow update 2022-05 is!
-Yoda, in a parallel universe

-
-

Anyway… this month we have new stuff for your mailcow again. -So letยดs get started, shall we?

-

Tags

-

Thanks to the help of @FredleSpl0it the mailcow now has tags. Tags? Yes tags! These can be used for filtering and searching. You can add them either by editing a domain/mailbox or by creating a new one. In both cases the tags section will show itself to you.

-
-

SOGo 5.6.0

-

Heard there is a new SOGo version? Yep, and we already have it on board. For more information please read the official changelogs from inverse (the SOGo developers): https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.6.0

-
-

Accessibility (screen readers)

-

@mkuron has made the mailcow a bit more accessible for blind people. (Respect at this point for all who have fun in the IT world despite this limitation).

-
-

Update.sh changed

-

We have implemented a new parameter for the Update.sh script, which skips the online check at the beginning of the update process. This could not be executed for some people because all ICMP connections to and from the mailcow were blocked. Now just use the –skip-ping-check parameter when you run the Update.sh script (but please only use it if you really don’t allow ICMP connections to and from your mailcow).

-
-

New API functions

-

We or the community has extended the API. Now you can also search domains by tags. Furthermore we added an API interface with the versioning of the mailcow. For more detailed API information just have a look at the extra API page of your mailcow (your.mailcow.domain/api).

-

Thanks to @lars-net and @FredleSpl0it for that.

-
-

For a more detailed or granular structure of the update, feel free to check out the GitHub page: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05

-

That’s it for this month.

-

See you again in June or earlier (should there be critical bugs…).

-

Stay healthy

-

Niklas

-
-
0% -
-
- +As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.">

๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changelog

2022-05c

Itยดs us again again!

This time weยดve published the 2022-05c Update which is a very small one.

It changed the API a bit again. This time for security reasons.

Head over to GitHub to see the full changelog: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c

Stay healthy

Niklas


2022-05b

Itยดs us again!

Today we have a small API Fix Update which focus mainly on the UI.

As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.

This is now fixed.

Additionaly, weยดve added a small tweak for the UI. Did you know that there was a little plus symbol at the left of a Domain/Mailbox? No? Donยดt worry it was a little hard to see… until now :)

As always, feel free to visit the official release page on Github: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05b

Thatยดs all basically… oh no wait one more thing! +Weยดve now included the mailcow Version to our Bug Reporting Formular on GitHub. So if you want to report a Bug please also fill out the Version row on the Issue form.

Now thatยดs all!

Thanks again for all of the contributors and mailcow users/admins.

Your mailcow Team

Niklas


2022-05a

Hello again folks,

weยดve just released the first Hotfix for 2022-05.

It fixes a critical UI Bug which caused a inaccessability for the UI after the Update 2022-05.

The issue was a missing placeholder which caused a important folder to be deleted from the Git Repository, which is needed to display the UI.

Sorry for that.

Your mailcow Team

Niklas


2022-05

Here, the new mailcow update 2022-05 is!
Yoda, in a parallel universe

Anyway… this month we have new stuff for your mailcow again. +So letยดs get started, shall we?

Tags

Thanks to the help of @FredleSpl0it the mailcow now has tags. Tags? Yes tags! These can be used for filtering and searching. You can add them either by editing a domain/mailbox or by creating a new one. In both cases the tags section will show itself to you.


SOGo 5.6.0

Heard there is a new SOGo version? Yep, and we already have it on board. For more information please read the official changelogs from inverse (the SOGo developers): https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.6.0


Accessibility (screen readers)

@mkuron has made the mailcow a bit more accessible for blind people. (Respect at this point for all who have fun in the IT world despite this limitation).


Update.sh changed

We have implemented a new parameter for the Update.sh script, which skips the online check at the beginning of the update process. This could not be executed for some people because all ICMP connections to and from the mailcow were blocked. Now just use the –skip-ping-check parameter when you run the Update.sh script (but please only use it if you really don’t allow ICMP connections to and from your mailcow).


New API functions

We or the community has extended the API. Now you can also search domains by tags. Furthermore we added an API interface with the versioning of the mailcow. For more detailed API information just have a look at the extra API page of your mailcow (your.mailcow.domain/api).

Thanks to @lars-net and @FredleSpl0it for that.


For a more detailed or granular structure of the update, feel free to check out the GitHub page: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05

That’s it for this month.

See you again in June or earlier (should there be critical bugs…).

Stay healthy

Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-05d/index.html b/posts/2022/release-2022-05d/index.html index dcba88e96..41da27bea 100644 --- a/posts/2022/release-2022-05d/index.html +++ b/posts/2022/release-2022-05d/index.html @@ -1,308 +1,25 @@ - - - - - - - - โš ๏ธ 2022-05d Important Security Update! โš ๏ธ - mailcow: dockerized - Blog - -โš ๏ธ 2022-05d Important Security Update! โš ๏ธ - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- โš ๏ธ 2022-05d Important Security Update! โš ๏ธ -

Hello all,

-

Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API.

-

It is strongly recommended to install the update as soon as possible to prevent exploitation.

-

As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d

-

The update does not remove any important functionality from mailcow or IMAPSYNC!

-

Stay stafe

-

Niklas

-
-
0% -
-
- +The update does not remove any important functionality from mailcow or IMAPSYNC!">

โš ๏ธ 2022-05d Important Security Update! โš ๏ธ

Hello all,

Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API.

It is strongly recommended to install the update as soon as possible to prevent exploitation.

As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d

The update does not remove any important functionality from mailcow or IMAPSYNC!

Stay stafe

Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-06/index.html b/posts/2022/release-2022-06/index.html index 2707b2aa2..6c7167d8a 100644 --- a/posts/2022/release-2022-06/index.html +++ b/posts/2022/release-2022-06/index.html @@ -1,356 +1,28 @@ - - - - - - - - ๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changes - mailcow: dockerized - Blog - -๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changes -

-
- Contents - -
- -

Moohoo everybody!

-

Today we have put together a big fat update package for you again, which besides general container updates brings one big change:

-

Docker Compose v2 support!!!

-

But let’s start with the small stuff first:

-

Minor changes

-
    -
  • ClamAV is now using version 0.105 (the latest at release time).
  • -
  • Postfix has been updated to version 3.5.6.
  • -
  • netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.16.
  • -
-

Major changes

-
    -
  • As promised, with the 2022-06 update comes a small but nice UI update that improves general UI performance. *Note: The noticeability of the improvements may vary depending on mailbox/domain count.
  • -
  • The mailcow now supports Docker Compose v2! More details to come:
  • -
-

Docker Compose v2 (finally)

-

Yep, read that right, finally the mailcow is compatible with Docker Compose v2! But why Docker Compose v2 now? Some of you might be wondering. -Well the thing is pretty simple and quickly explained: “Docker Compose v1 old (deprecated), Docker Compose v2 new (maintained by Docker itself)”.

-

The installation of Compose v2 can be taken from the modified documentation (click here).

-

Docker Compose v1 will lose its official support from Docker in October 2022, but mailcow will continue to support Compose v1 until December 2022 (the 2022-12 update).

-
-

Thats why Compose v2 Part 1 update. Psst itยดs a secret.

-
-

Beginning with December, an update to Compose v2 is mandatory, if you want to continue using mailcow.

-

Anything else? Oh yes! There is also an important change regarding IPv6. From now on (until December) the web interface will only be accessible via IPv4 by default. -But don’t worry, with the help of the manual you can restore the accessibility.

-

Why it has to be done this way and not (like everything else) plug and play? Well quite simple: The two Compose versions interpret the docker-compose.yml partly a bit different. Actually, everything has remained the same and this also works wonderfully, however, with the aforementioned IPv6 binding, there were unfortunately problems to maintain this option in dual support.
-From December 2022, IPv6 connectivity will then be enabled again by default (as before).

-
-

How much text do you want to write?
-Answer: Yes

-
-
-

Ok that’s it for this time.

-

If you want to read the complete changelog you can do that (as always) on GitHub.

-

Stay healthy.

-

Your mailcow Team
-Niklas

-
-
0% -
-
- +Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.">

๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changes

Moohoo everybody!

Today we have put together a big fat update package for you again, which besides general container updates brings one big change:

Docker Compose v2 support!!!

But let’s start with the small stuff first:

Minor changes

  • ClamAV is now using version 0.105 (the latest at release time).
  • Postfix has been updated to version 3.5.6.
  • netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.16.

Major changes

  • As promised, with the 2022-06 update comes a small but nice UI update that improves general UI performance. *Note: The noticeability of the improvements may vary depending on mailbox/domain count.
  • The mailcow now supports Docker Compose v2! More details to come:

Docker Compose v2 (finally)

Yep, read that right, finally the mailcow is compatible with Docker Compose v2! But why Docker Compose v2 now? Some of you might be wondering. +Well the thing is pretty simple and quickly explained: “Docker Compose v1 old (deprecated), Docker Compose v2 new (maintained by Docker itself)”.

The installation of Compose v2 can be taken from the modified documentation (click here).

Docker Compose v1 will lose its official support from Docker in October 2022, but mailcow will continue to support Compose v1 until December 2022 (the 2022-12 update).

Thats why Compose v2 Part 1 update. Psst itยดs a secret.

Beginning with December, an update to Compose v2 is mandatory, if you want to continue using mailcow.

Anything else? Oh yes! There is also an important change regarding IPv6. From now on (until December) the web interface will only be accessible via IPv4 by default. +But don’t worry, with the help of the manual you can restore the accessibility.

Why it has to be done this way and not (like everything else) plug and play? Well quite simple: The two Compose versions interpret the docker-compose.yml partly a bit different. Actually, everything has remained the same and this also works wonderfully, however, with the aforementioned IPv6 binding, there were unfortunately problems to maintain this option in dual support.
From December 2022, IPv6 connectivity will then be enabled again by default (as before).

How much text do you want to write?
Answer: Yes


Ok that’s it for this time.

If you want to read the complete changelog you can do that (as always) on GitHub.

Stay healthy.

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-07/index.html b/posts/2022/release-2022-07/index.html index 7f961c0b8..4f9e01382 100644 --- a/posts/2022/release-2022-07/index.html +++ b/posts/2022/release-2022-07/index.html @@ -1,357 +1,18 @@ - - - - - - - - โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changelog - mailcow: dockerized - Blog - -โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changelog - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changelog -

Moohoo everyone!

-

It’s update time once again, a little later than before (I’ll get into that a bit later) but still packed with some changes:

-

TFA Changes

-
    -
  • 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators).
  • -
  • Also, it is now possible to enable multiple 2FA options for an account.
    Note: Only one is used, which is selected by the user.
  • -
  • There is a nice new menu at to select the available 2FA options.
  • -
-

The update was developed by @FreddleSpl0it (Patrick). Thanks for that :)

-

Speaking of Patrick, he is an official member of tinc since the beginning of June and is now more intensively dedicated to the mailcow development and everything around here!

-

So you may soon read something from him here on the blog page ๐Ÿ˜Š

-
-

All right, where were we? Oh, right! At the other changes besides the new TFA options:

-

Docker image changes (mailcow stack)

-
    -
  • SOGo (not our software, often asked) has been updated to version 5.7.0. In the mailcow this was implemented in the Docker image sogo:1.109. The official changelog from SOGo can be found here: https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.7.0. Thanks to @MAGICCC for updating.
  • -
  • In the ClamAV container, the healthcheck has been rebuilt so that it is now healthy even if ClamAV is not used at all. (Is probably broken by switching to the official images). This is included in the image clamav:1.53! Thanks to @mritzmann for implementing.
  • -
  • Dovecot has been updated to 2.3.19.1 (changelog). This comes with the Docker image dovecot:1.17.
  • -
-

Miscellaneous changes/fixes

-
    -
  • The update.sh script no longer updates the installed docker-compose version without being asked. This was noted by some users, thanks for that!
  • -
  • Also in the update.sh script, the docker-compose version can now be updated alone (with –update-compose). This feature has been implemented in the cold_standby.sh script so that the target machine now gets an update of docker-compose in addition to the Docker image cleanup process.
  • -
  • A Lua crash with SOGo was fixed in RSPAMD. Thanks to @andryyy
  • -
  • In the SyncJobs, the default mailbox (which always appears when a new job is created) has been removed. This way the messages cannot accidentally end up in the wrong mailbox anymore. Thanks to @RafaelKr
  • -
  • A blank page was displayed in the browser if the WebUI was accessed with /user but no user was logged in. This has been fixed. Thanks to @mhofer117
  • -
-
-

Phew, my fingers hurt from writing ๐Ÿ™ƒ

-

But anyway, that’s it for this time.

-

If you want to read the complete changelog you can do that (as always) on GitHub.

-

But now a few words about the major updates 1x a month:

-

The update cycle

-

Until now the updates were released on the first Tuesday of the month. But we noticed that the update quality and quantity stagnated and also the general tests were a bit too short. Of course, the updates are not always 100% error-free and in an open source project, the feedback of the community is even more important, but we still want to be able to say at our own discretion: “Yes, the update is tested so far and functional on the most common installation methods.”, which has led us to no longer want to specify a fixed date for a major update per month.

-

There will still be at least one major feature update every month, just not on a fixed day like before.

-

Outlook for the future

-

However, we are planning a new type of update for the August update: the Nightly Updates! These allow us to let you test new features or major changes before they go live for everyone.

-

For this purpose there will be a possibility to switch between stable and nightly builds in the update.sh script (but always make a backup before, because no backup, no mercy!).

-

The first big nightly test is the new Bootstrap 5 update, which is expected to land in the stable build for everyone in September 2022.

-

More about the nightly tests when its ready.

-
-

Well, enough of that.

-

Stay healthy and take care of yourselves!

-

Your mailcow Team
-Niklas

-
-
0% -
-
- +TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.">

โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changelog

Moohoo everyone!

It’s update time once again, a little later than before (I’ll get into that a bit later) but still packed with some changes:

TFA Changes

  • 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators).
  • Also, it is now possible to enable multiple 2FA options for an account.
    Note: Only one is used, which is selected by the user.
  • There is a nice new menu at to select the available 2FA options.

The update was developed by @FreddleSpl0it (Patrick). Thanks for that :)

Speaking of Patrick, he is an official member of tinc since the beginning of June and is now more intensively dedicated to the mailcow development and everything around here!

So you may soon read something from him here on the blog page ๐Ÿ˜Š


All right, where were we? Oh, right! At the other changes besides the new TFA options:

Docker image changes (mailcow stack)

  • SOGo (not our software, often asked) has been updated to version 5.7.0. In the mailcow this was implemented in the Docker image sogo:1.109. The official changelog from SOGo can be found here: https://github.com/inverse-inc/sogo/releases/tag/SOGo-5.7.0. Thanks to @MAGICCC for updating.
  • In the ClamAV container, the healthcheck has been rebuilt so that it is now healthy even if ClamAV is not used at all. (Is probably broken by switching to the official images). This is included in the image clamav:1.53! Thanks to @mritzmann for implementing.
  • Dovecot has been updated to 2.3.19.1 (changelog). This comes with the Docker image dovecot:1.17.

Miscellaneous changes/fixes

  • The update.sh script no longer updates the installed docker-compose version without being asked. This was noted by some users, thanks for that!
  • Also in the update.sh script, the docker-compose version can now be updated alone (with –update-compose). This feature has been implemented in the cold_standby.sh script so that the target machine now gets an update of docker-compose in addition to the Docker image cleanup process.
  • A Lua crash with SOGo was fixed in RSPAMD. Thanks to @andryyy
  • In the SyncJobs, the default mailbox (which always appears when a new job is created) has been removed. This way the messages cannot accidentally end up in the wrong mailbox anymore. Thanks to @RafaelKr
  • A blank page was displayed in the browser if the WebUI was accessed with /user but no user was logged in. This has been fixed. Thanks to @mhofer117

Phew, my fingers hurt from writing ๐Ÿ™ƒ

But anyway, that’s it for this time.

If you want to read the complete changelog you can do that (as always) on GitHub.

But now a few words about the major updates 1x a month:

The update cycle

Until now the updates were released on the first Tuesday of the month. But we noticed that the update quality and quantity stagnated and also the general tests were a bit too short. Of course, the updates are not always 100% error-free and in an open source project, the feedback of the community is even more important, but we still want to be able to say at our own discretion: “Yes, the update is tested so far and functional on the most common installation methods.”, which has led us to no longer want to specify a fixed date for a major update per month.

There will still be at least one major feature update every month, just not on a fixed day like before.

Outlook for the future

However, we are planning a new type of update for the August update: the Nightly Updates! These allow us to let you test new features or major changes before they go live for everyone.

For this purpose there will be a possibility to switch between stable and nightly builds in the update.sh script (but always make a backup before, because no backup, no mercy!).

The first big nightly test is the new Bootstrap 5 update, which is expected to land in the stable build for everyone in September 2022.

More about the nightly tests when its ready.


Well, enough of that.

Stay healthy and take care of yourselves!

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-07a/index.html b/posts/2022/release-2022-07a/index.html index 9ab1569ed..dbfc30255 100644 --- a/posts/2022/release-2022-07a/index.html +++ b/posts/2022/release-2022-07a/index.html @@ -1,317 +1,25 @@ - - - - - - - - โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changes - mailcow: dockerized - Blog - -โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changes -

Moohoo everyone!

-

We’ve released an short update that improved the API and brings a new version of ClamAV (0.105.1).

-

Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article)

-
-

Once again summarized what changes:

-
    -
  • The schema of the domain section of the API has been adjusted and improved.
  • -
  • Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).
  • -
  • The maximum key length of the Web UI has been increased to 1023 bits (previously 255 bits)
  • -
  • ClamAV was raised to version 0.105.1.
  • -
-
-

That’s it. We hope you are all safe and sound.

-

See you at the next update!

-

Stay healthy
-Niklas

-
-
0% -
-
- +The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).">

โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changes

Moohoo everyone!

We’ve released an short update that improved the API and brings a new version of ClamAV (0.105.1).

Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article)


Once again summarized what changes:

  • The schema of the domain section of the API has been adjusted and improved.
  • Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).
  • The maximum key length of the Web UI has been increased to 1023 bits (previously 255 bits)
  • ClamAV was raised to version 0.105.1.

That’s it. We hope you are all safe and sound.

See you at the next update!

Stay healthy
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-08/index.html b/posts/2022/release-2022-08/index.html index e8e3c0582..4dbc6a42a 100644 --- a/posts/2022/release-2022-08/index.html +++ b/posts/2022/release-2022-08/index.html @@ -1,356 +1,26 @@ - - - - - - - - ๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changes - mailcow: dockerized - Blog - -๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changes -

Moohoo everyone!

-
-

Yeah, a August Update in September… kinda sus if you ask me!

-
-

This time there are even some changes regarding the Update sources! So stay curious.

-

Let’s start quite gently for the time being:

-

Stable changes (stable branch)

-
    -
  • OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it
  • -
  • SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.110 #4719 by @MAGICCC and @DerLinkman
  • -
  • The Docker Compose plugin from Docker is now also supported. Accordingly, a standalone version of Docker Compose (docker-compose) is no longer required (but still compatible) #4725 by @DerLinkman
  • -
  • The Change Password button (logged in as user) in the mailcow UI disappeared when SOGo was disabled. This has been fixed. Commit: 4322c98 by @DerLinkman
  • -
-

Now let’s get to the biggest part of the update: the nightly builds.

-
-

Nightly Builds? Whats that all about?

-

Starting with the 2022-08 update, there will be regular Nightly Updates alongside the Major Updates (like this one) to test and gather feedback.

-

This will give us the opportunity to get direct input from some people and expand our own testing to multiple scenarios.

-

But what’s the benefit for you, you ask?

-

Well, we want to use the Nightly Builds primarily to offer new (also bigger) features for testing, which you can test first before it will be implemented into the stable builds.

-

This means in the example here, the new UI update (The MUH-I Update) to Bootstrap 5, which is ready for you to test directly in the Nightly Builds.

-

But there will be a separate blog entry about the Bootstrap 5 UI, which explains your assistance in more detail.

-

How do I get the Nightly Updates?

-

This is not so hard.

-

We have added two new parameters in the update.sh --nightly and --stable.

-

Depending on which updates you are currently getting, you can switch to the respective update branch with the parameter.

-

As an example:

-

You are currently (as usual) in the stable branch (master) (This is the default), then you have to run update.sh --nightly to switch to the nightly builds.

-

If you want to switch from Nightly back to Stable you have to run update.sh --stable accordingly.

-

But ATTENTION please!!! Backup your mailcow completely if you plan to switch to Nightly. We are not liable for any data corruption/data loss!!! So be warned.

-

We have published a Best Practice Guide on the documentation page which shows a good way to test the Nightly Builds.

-

In general: The Nightly Builds are NOT I really mean NOT released for productional usage! It can work and if it does that’s great, but it can also not work. Just for your information.

-
-

For the next updates, there will be Nightly Update News in addition to the Stable Updates News, which will contain the summary of the last Nightly Builds.

-

If you need more information about the Nightly Builds please have a look at the Documentation.

-

Until then. All the best and stay healthy.

-

Your mailcow Team
-Niklas

-
-
0% -
-
- +Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.">

๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changes

Moohoo everyone!

Yeah, a August Update in September… kinda sus if you ask me!

This time there are even some changes regarding the Update sources! So stay curious.

Let’s start quite gently for the time being:

Stable changes (stable branch)

  • OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it
  • SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.110 #4719 by @MAGICCC and @DerLinkman
  • The Docker Compose plugin from Docker is now also supported. Accordingly, a standalone version of Docker Compose (docker-compose) is no longer required (but still compatible) #4725 by @DerLinkman
  • The Change Password button (logged in as user) in the mailcow UI disappeared when SOGo was disabled. This has been fixed. Commit: 4322c98 by @DerLinkman

Now let’s get to the biggest part of the update: the nightly builds.


Nightly Builds? Whats that all about?

Starting with the 2022-08 update, there will be regular Nightly Updates alongside the Major Updates (like this one) to test and gather feedback.

This will give us the opportunity to get direct input from some people and expand our own testing to multiple scenarios.

But what’s the benefit for you, you ask?

Well, we want to use the Nightly Builds primarily to offer new (also bigger) features for testing, which you can test first before it will be implemented into the stable builds.

This means in the example here, the new UI update (The MUH-I Update) to Bootstrap 5, which is ready for you to test directly in the Nightly Builds.

But there will be a separate blog entry about the Bootstrap 5 UI, which explains your assistance in more detail.

How do I get the Nightly Updates?

This is not so hard.

We have added two new parameters in the update.sh --nightly and --stable.

Depending on which updates you are currently getting, you can switch to the respective update branch with the parameter.

As an example:

You are currently (as usual) in the stable branch (master) (This is the default), then you have to run update.sh --nightly to switch to the nightly builds.

If you want to switch from Nightly back to Stable you have to run update.sh --stable accordingly.

But ATTENTION please!!! Backup your mailcow completely if you plan to switch to Nightly. We are not liable for any data corruption/data loss!!! So be warned.

We have published a Best Practice Guide on the documentation page which shows a good way to test the Nightly Builds.

In general: The Nightly Builds are NOT I really mean NOT released for productional usage! It can work and if it does that’s great, but it can also not work. Just for your information.


For the next updates, there will be Nightly Update News in addition to the Stable Updates News, which will contain the summary of the last Nightly Builds.

If you need more information about the Nightly Builds please have a look at the Documentation.

Until then. All the best and stay healthy.

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-08b/index.html b/posts/2022/release-2022-08b/index.html index 3ab543cd9..f321d1339 100644 --- a/posts/2022/release-2022-08b/index.html +++ b/posts/2022/release-2022-08b/index.html @@ -1,312 +1,25 @@ - - - - - - - - ๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes - mailcow: dockerized - Blog - -๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- ๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes -

Moohoo everyone!

-

A small but important update for or against the current SOGo Sieve/mail sending problems is here!

-

We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone.

-

For those who are interested: It’s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo.

-

Yeah… however, this bug should be fixed now. If not: Don’t be afraid to file an issue on GitHub, that helps us a lot!

-

Furthermore, the mailcow Ansible role has now been made fully compatible with the new Nightly Switch again.

-
-

Thats all for now.

-

Until then. All the best and stay healthy.

-

Your mailcow Team
-Niklas

-
-
0% -
-
- +Yeah… however, this bug should be fixed now.">

๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changes

Moohoo everyone!

A small but important update for or against the current SOGo Sieve/mail sending problems is here!

We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone.

For those who are interested: It’s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo.

Yeah… however, this bug should be fixed now. If not: Don’t be afraid to file an issue on GitHub, that helps us a lot!

Furthermore, the mailcow Ansible role has now been made fully compatible with the new Nightly Switch again.


Thats all for now.

Until then. All the best and stay healthy.

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-09/index.html b/posts/2022/release-2022-09/index.html new file mode 100644 index 000000000..92c2690b3 --- /dev/null +++ b/posts/2022/release-2022-09/index.html @@ -0,0 +1,30 @@ +๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changes - mailcow: dockerized - Blog +

๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changes

2022-09a (Release: 30th September 2022)

Changes:

  • The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes CVE-2022-39261.
    Attention: This CVE is not critical for all mailcow users but only serves to update the packages.

2022-09 (Release: 27th September 2022)

Moohoo everyone!

The official September update is here and brings this time unfortunately only a small update, which is not to be ignored, however.

We’ve addressed one minor security issue with the Swagger UI for mailcow. More details in this Article.

Stable changes (stable Branch)

Vulnerability in Swagger UI

Before we talk about the Nightly Updates, let’s talk about the Swagger vulnerability.

This allowed a script to be loaded via the URL call of the Swagger UI which could convert the page into a credit card phishing portal, for example.

We have opened a CVE case for this: CVE-2022-39258

On GitHub you can read the more detailed informations: https://github.com/mailcow/mailcow-dockerized/security/advisories/GHSA-vjgf-cp5p-wm45

Before panic kicks in this is the most harmless of the security vulnerabilities so far.

We advise (as always) to update soon of course!

Nightly changes (Bootstrap 5 update)

So, let’s move on to the Nightly Updates, which are fully focused on the Bootstrap 5 update:

  • [NEW] Sieve Access can now be toggled via Mass-Actions
  • [NEW] Added a Loading Animation for the Container Charts
  • [NEW] The Public IP-Adresses of your Mailserver (done with dig inside the containers) are now displayed on the Dashboard Page.
  • [FIX] Fixed some Layout Issues (especially Color Changes)

As some of you may have inferred, we are listening to your feedback regarding the Bootstrap 5 update. We are still diligently collecting feedback on this.

Either here on GitHub, on Telegram, at the Forum or simply via Mail to info@mailcow.email.

Keep in mind: The mentioned Bootstrap 5 changes only affect the Nightly Builds (for now).

Learn here how you can obtain Nightly Builds too: https://docs.mailcow.email/de/i_u_m/i_u_m_update/#neu-nightly-updates-beziehen or use the new Nightly Demo.

More information and the login data for the demo can be found here: https://docs.mailcow.email/#demos


That would be it also so far.

Until then, stay healthy and have a happy #Hacktober

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-10/index.html b/posts/2022/release-2022-10/index.html new file mode 100644 index 000000000..558e77daa --- /dev/null +++ b/posts/2022/release-2022-10/index.html @@ -0,0 +1,14 @@ +๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script update - mailcow: dockerized - Blog +

๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script update

Moohoo everyone!

We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.

Stable changes (stable Branch)

  • Fixed the annoying netfilter bug that caused infinite SNAT rules to be created. Thanks to @mnin see PR: #4724
  • The mailcow speaks fluent Chinese now! At the same time, the language files have been updated to comply with ISO 639-1. However, nothing will change for you, as all previous translations will be preserved. Thanks to @tomy0000000 see PR: #4657
  • Redis has been updated to version 7. Thanks to @ethrgeist see PR: #4815
  • Rspamd has been updated to version 3.3.2. Thanks to @DerLinkman see PR: #4816
  • The backup/restore script now supports multithreading. For more information please refer the Docs. Thanks to @DerLinkman see PR: #4806

Nightly changes (Bootstrap 5 Update)

The Nightly updates also include all of the above features. The specific Nightly changes are primarily related to the upcoming Bootstrap 5 update:

  • [NEW] The “Previous page” button of the subpages is now also placed at the top (instead of only at the bottom)
  • [NEW] There is now a " Expand/Collapse all" button in the action dropdowns, which collapses/expands the tables in the respective window (especially interesting for mobile).
  • [CHANGED] The main menu item “E-Mail Configuration” and the item below it (with the same name) have been renamed to avoid duplication of names.
  • [NEW] The position of the mail queue has changed. It is now located in the dropdown below the renamed item “E-Mail” (next to Quarantine).
  • [FIXED] The general behavior of the various tables has been optimized.

The Bootstrap 5 update now has an ETA. We are targeting (at the latest) the 2022-12 update, as some on Twitter had already correctly said practically as a Christmas present. Until then, we are still diligently collecting feedback to further optimize the UI.

Submit Feedbach on GitHub, on Telegram, at the Forum or simply via Mail to info@mailcow.email.

Keep in mind: The mentioned Bootstrap 5 changes only affect the Nightly Builds (for now).

Learn here how you can obtain Nightly Builds too: https://docs.mailcow.email/en/i_u_m/i_u_m_update/#new-get-nightly-updates or use the new Nightly Demo.

More information and the login data for the demo can be found here: https://docs.mailcow.email/#demos


That would be it also so far.

Until then, stay healthy and see ya next update.

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-10a/index.html b/posts/2022/release-2022-10a/index.html new file mode 100644 index 000000000..93569e5b1 --- /dev/null +++ b/posts/2022/release-2022-10a/index.html @@ -0,0 +1,23 @@ +โš ๏ธ 2022-10a | Critical stability update โš ๏ธ - mailcow: dockerized - Blog +

โš ๏ธ 2022-10a | Critical stability update โš ๏ธ

Moohoo everyone!

Yesterday (on 25th October 2022) weยดve released the 2022-10 update. +This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.

We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!

Stable changes (stable Branch)

  • RSPAMD Crashes or refuses to work for some (leads to non-delivery of emails) –> This has been fixed by using the previous RSPAMD version.
  • The netfilter problem still existed –> This was fixed. The wrong image file was specified in the docker-compose.yml, which did not have the fix yet.
  • Fixed a bug with the French language in the mailcow UI that caused the UI to freeze during alias creation/editing.
  • A bug in the quarantine view where it happened that some emails could not be parsed has been fixed

You can find more information and the exact PRs on GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-10a


We apologize for any problems that may have been caused.

Until then, stay healthy and until the next update.

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-11a/index.html b/posts/2022/release-2022-11a/index.html new file mode 100644 index 000000000..34590b918 --- /dev/null +++ b/posts/2022/release-2022-11a/index.html @@ -0,0 +1,27 @@ +๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision B - mailcow: dockerized - Blog +

๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision B

Moohoo everyone!

Due to the 2022-11a 2022-11b update, here are the changelogs of the 2022-11a 2022-11b update and the changes of the major version (2022-11).

Weยดve released 2022-11b already!

Stable changes (stable Branch 2022-11b)

  • CalDav should now work like before on MacOS again. New SOGo image version (in the docker-compose.yml): 1.113.
  • Some users could no longer use update.sh because the DNS lookup timeout was too low. This was increased from 3 to 6!
    Note: A reasonable and fast DNS resolution is essential for a mail server!

You can find more information and the exact PRs on GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-11b

Stable changes (stable Branch 2022-11a)

  • The IMAPSYNC jobs are no longer automatically deactivated if the server to be fetched is not available or the credentials are incorrect. New image version of Dovecot (in the docker-compose.yml): 1.21.
  • Translation corrections were also made.

You can find more information and the exact PRs on GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-11a

Stable changes (stable Branch 2022-11)

  • An undocumented API endpoint (/api/v1/get/mailbox/all/domain.tld) was added to the API docs (mailcow integrated).
  • The PHP container was updated to version 8.1. Additionally, some optimizations were made to the dockerfile. New image version (in the docker-compose.yml): 1.80
  • The Pushover functionality got a major update, which adds new sounds and more for Pushover.
  • RSPAMD was updated to version 3.4 (finally). We already updated RSPAMD in the 2022-10 update, but removed it again with 2022-10a due to some issues with the 3.3 Version of RSPAMD. But now it is stable and live in mailcow! New image version (in the docker-compose.yml): 1.91.
  • SOGo has been updated to version 5.8.0. This fixes the long reported Battery Drain bug on iOS 16 or later. New image version (in the docker-compose.yml): 1.112.
  • The update.sh is now proxy capable! The previous ping check has been replaced with a DNS check.
  • Some minor adjustments like translation improvements or typos were also corrected.

You can find more information and the exact PRs on GitHub: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-11

Nightly changes (nightly Branch)

We are approaching the last big mailcow update for 2022 with huge steps: The Bootstrap 5 (from now on called BS5) or MUH-I update! +Accordingly, the last few weeks have been spent fine-tuning the new UI. Even though it may seem that the big 2022-12 update touches the UI once and then never again this is not quite correct. The new BS5 update only marks the beginning of further UI optimizations in the near future.

As always, the new UI changes can already be found on the Nightly Demo mailcow instance or the Nightly Branch.


So, I really hope that you are also looking forward to the new UI update as much as we are! Of course, in the 2022-12 update include even more besides BS5, just in advance ;)

Until then, stay healthy.

Your mailcow Team

Niklas

0%
\ No newline at end of file diff --git a/posts/2022/release-2022-12/index.html b/posts/2022/release-2022-12/index.html new file mode 100644 index 000000000..289283841 --- /dev/null +++ b/posts/2022/release-2022-12/index.html @@ -0,0 +1,24 @@ +๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5) - mailcow: dockerized - Blog +

๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)

Introduction

Moohoo everyone!

To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here!

As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future.

Because of the Bootstrap update the old UI was completely renewed and ported to the new version. So there might be some differences compared to the old UI.

Well, but enough about the introduction. Now we come to the actual changelog:


Changelog

[NEW] Redesigned UI, based on Bootstrap 5

  • Brand new Status Page! (Replaces the previous Status Page and summarizes it with new information).
  • New integration of the new Docker API (allows generating the new diagrams on the new Status Page).
  • Darkmode! (Thanks to @Foxly for contributing to the darkmode code).
  • New loading animations.
  • Redesign of UI components (buttons, tables, etc.).
  • New position of the mail queue. Previously under: System -> Mail Queue (quite hidden). Now under: System -> Mail -> Mail Queue (below the quarantine button in the navbar).
  • Optimized UI performance.

[NEW] The complete Docker API (which is used to control Docker containers within the stack) has been completely rewritten as part of the Bootstrap 5 update.

[NEW] ClamAV has been updated to Version 1.0. New Container Version: 1.60
The changelog for the 1.0 version of ClamAV can be found here: +https://github.com/Cisco-Talos/clamav/releases/tag/clamav-1.0.0

[NEW] Nextcloud install script now installs Nextcloud 25. Additionally, the uninstall was fixed because the uninstall still removed the old tables(nc instead of oc).

[NEW] Our Alpine Linux based containers (php-fpm, netfilter, unbound, olefy, acme, dockerapi, watchdog) have been updated to Alpine 3.17.

[NEW] Many translation changes. Some strings have been renamed, others removed. However, German and English are 100% complete.

[FIX] Some Netfilter rules (related to Dovecot logins) were not recognized correctly before. These have been fixed. **RESET OF THE NETFILTER RULES WITHIN THE MAILCOW UI REQUIRED

[FIX] The update-docker-compose.sh script has been rebuilt to get the latest Docker-Compose version directly from GitHub instead of via our Servercow page.

[FIX] The bulk header map of RSPAMD has been adjusted and AWeber has been removed. This should prevent emails from said provider from being treated negatively directly.

[FIX] The message ID for Pushover has been added as information to the mailcow UI.


So, that it.

You can always find the complete Changelog over at GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-12

We hope you like the new UI as much as we do.

As always, your feedback is always welcome. So let’s continue with the feedback collection. Only this time with more people giving us feedback :)

We also want to say a big thank you to YOU! You are the heart that keeps mailcow alive, whether it’s your support on Telegram, in the forum, mailcow tutorials/guides or uploads to Youtube etc. about mailcow or simply that you use mailcow. THANK YOU, just THANK YOU!

With this in mind, the whole mailcow/tinc team wishes you a Merry Christmas, good food, a good time and a Happy New Year 2023.

If there are no critical bugs the mailcow team will take a little break between Christmas and New Year.

Your mailcow team

Niklas

0%
\ No newline at end of file diff --git a/posts/2022/welcome-new-blog/index.html b/posts/2022/welcome-new-blog/index.html index 970d2b5b6..11a41103b 100644 --- a/posts/2022/welcome-new-blog/index.html +++ b/posts/2022/welcome-new-blog/index.html @@ -1,322 +1,25 @@ - - - - - - - - Welcome to the new mailcow blog! - mailcow: dockerized - Blog - -Welcome to the new mailcow blog! - mailcow: dockerized - Blog + - - - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
- - - -
-

- Welcome to the new mailcow blog! -

Happy new day to you!

-

Welcome to the new blog page.

-

Some of you may have already stumbled across the site on Twitter or on Telegram in the last update announcement, but now here again officially!

-

Built with the fast and beautiful Static Site Generator Hugo and the LoveIt Theme, this site can keep up with WordPress and even outperform it.

-

What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.email now news.mailcow.email, until we know exactly if this will stay like this or if it will become the new mailcow.email page.

-

Besides the new design the site offers a few more features:

-
    -
  • Darkmode
  • -
  • Multiple languages (English and German)
  • -
  • Better overview
  • -
-

The change of the “engine” was worth it, wasn’t it? Not that our old blog site wasn’t nice, don’t get me wrong, but a breath of fresh air is always good (at least most of the time).

-

So, that’s it so far. I hope you like the new site? We certainly do!

-

Your mailcow Team
-– Niklas

-
-
0% -
-
- +What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.">

Welcome to the new mailcow blog!

Happy new day to you!

Welcome to the new blog page.

Some of you may have already stumbled across the site on Twitter or on Telegram in the last update announcement, but now here again officially!

Built with the fast and beautiful Static Site Generator Hugo and the LoveIt Theme, this site can keep up with WordPress and even outperform it.

What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.email now news.mailcow.email, until we know exactly if this will stay like this or if it will become the new mailcow.email page.

Besides the new design the site offers a few more features:

  • Darkmode
  • Multiple languages (English and German)
  • Better overview

The change of the “engine” was worth it, wasn’t it? Not that our old blog site wasn’t nice, don’t get me wrong, but a breath of fresh air is always good (at least most of the time).

So, that’s it so far. I hope you like the new site? We certainly do!

Your mailcow Team
Niklas

0%
\ No newline at end of file diff --git a/posts/2023/arm64-announcement/index.html b/posts/2023/arm64-announcement/index.html new file mode 100644 index 000000000..014c817d7 --- /dev/null +++ b/posts/2023/arm64-announcement/index.html @@ -0,0 +1,18 @@ +๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcement - mailcow: dockerized - Blog +

๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcement

Moohoo everyone!

The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:

mailcow gets ARM64 support

Of course, some are now asking, “That’s good but what about compatibility with normal x86 mailcow?”

The tests so far show: Everything remains as it is and nothing will change. The mailcow configurations and the mailcow data should be compatible with the ARM64 version.

This means that migration from x86 to ARM64 is also possible.

Own repository or native in the main repository?

We can currently assume that mailcow on ARM64 (or armcow64: dockerized, take your pick) can coexist in the main repository on GitHub without any problems and both versions will use the same patch level.

This would mean that only the respective images (from the launch of the ARM64 variant, not retroactively) decide which platform can be used and which not.

The actual system requirements (see docs) will not change for the time being, as mailcow should still not be run on small devices or devices with less than 4 GB RAM.


A lot of blah blah again but when is ARM64 support for mailcow coming?

Again, we will be using the Nightly Test phase to gather general community feedback to get the feature as best as possible to the official release.

We don’t have an exact release date yet, but you can be sure that it won’t be that long. If we test thoroughly I expect a release in Q3 2023 for everyone.

But this can still change (both positive and negative). I hope you guys are understanding about this.

Thanks for your time!

*P.S: The ARM64 compatibility seems to get more attention than originally thought! We think that’s great! Thanks to all of you who report about it or just look forward to it!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/arm64-delay/index.html b/posts/2023/arm64-delay/index.html new file mode 100644 index 000000000..39564ae97 --- /dev/null +++ b/posts/2023/arm64-delay/index.html @@ -0,0 +1,19 @@ +๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023 - mailcow: dockerized - Blog +

๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023

Moohoo everyone!

We are back with new information on the current ARM64 topic.

Unfortunately, it’s not good news, as you might have guessed from the headline…

After the initial euphoria at the start of the ARM64 nightly releases, the bitter reality is now setting in: unfortunately, it’s not all as compatible as originally thought.

What happened?

Well, after we released the nightly releases for ARM64 we noticed something with the migration of old mails: They can NOT be decrypted despite having the same crypt key. +We didn’t notice this at first, because we had already successfully tested the migration of old e-mails in May, but nobody could have guessed that some of the packages in the operating system would change in the meantime.

Where is the problem?

Our guess is the changeover from OpenSSL 1.1.1X to OpenSSL 3.X, which is also included in the Debian 12 and Alpine 3.17+ released in the meantime, because it was not included in our tests at the time, which is why it worked at the time.

But we are not 100% sure about this thesis. However, it would be the only logical explanation, since the rest remained exactly identical.

Yes, even the private key used for encryption is exactly the same, as are permissions and users.

The curious thing is that Dovecot can encrypt/decrypt new mails received with OpenSSL 3.X with the key without any problems…

A problem that can also affect x86 in the future.

We have to find a solution for this that is pleasant for all sides and ideally does not need any further input from you, the users, because exactly the same problem will also fall on our feet on x86.

Because currently mailcow still uses Debian 11 as base images for Dovecot. And, we remember, Debian 11 still has OpenSSL 1.1.1X, where everything works fine. Debian 12 has OpenSSL 3.X… ringing a bell? Correct, we have the same problem there (already verifiable). So it’s not due to the architecture (good news at least…) but this will definitely be an issue in the future.

We are currently still in the process of analysing OpenSSL 3.X and Dovecot’s crypt key dilemma, which is why we can say with a high degree of certainty:

armcow64 will no longer be released stable in 2023.

Believe me: I hate to have to make this announcement, but of course we don’t want to leave you out in the cold on this topic, as some people have asked.

ARM64 support is still in the Nightly, so further testing is still possible.

And of course we will continue to look into this problem to find solutions that are good for all sides.


Thank you all for taking ARM64 support so well up to this point.

We all deeply regret having to make this announcement here.

Other than that, the same thing that always applies: Happy Mailing and stay healthy!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/arm64-open-beta/index.html b/posts/2023/arm64-open-beta/index.html new file mode 100644 index 000000000..866ffbbe1 --- /dev/null +++ b/posts/2023/arm64-open-beta/index.html @@ -0,0 +1,18 @@ +๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds) - mailcow: dockerized - Blog +

๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)

Moohoo everyone!

No you are not dreaming, yes you are awake and no this is no joke:

mailcow’s ARM64 support can now be tested in nightly as BETA!

Wow, that came faster than expected.

Indeed it did! Funnily enough, one day after our last blog post on this topic, the ominous bug in Rspamd was finally fixed, and bang: ARM64 is up and running!

Even the problem with Dovecot and self compiling is solved, thanks to the Alpine Linux Project. Well, we already used it in some places in mailcow, but now in one more place!


Ok, enough of the hype, let’s get down to business:

How to install mailcow for ARM64?

Installing the BETA (I’ll just repeat that here) is pretty simple:

  1. install Docker/Docker Compose, Git etc. as usual (dependencies).
  2. clone mailcow (as usual)
  3. run generate_config.sh and select “nightly” under branch
  4. get docker images
  5. start mailcow (with docker compose up -d)
  6. wait a short while
  7. login and use mailcow as usual!

So far the plan. However, I would like to point out that the ARM64 support is currently still in BETA and there may be bugs or crashes.

It is also possible that after an update (within the nightly) the email data does not work anymore or is corrupted. Even if not much seems to have changed, the multi-architecture is not without bugs.

This has never happened in our tests, but we cannot and do not want to exclude it completely.

Disclaimer: The mailcow team is not liable for any data loss. The ARM64 functionality is still under development.

Please watch out for rspamd data when restoring your x86 mailcow backups. It is best to leave them out as they are not cross-arch compatible!


Roadmap for the full version

Finally more people (who want to) can test mailcow on ARM64 devices.

This helps us a lot, because we can’t test all scenarios and react to feedback from the community.

So here is the call: Report problems to us! This is the only way we can fix them and improve the product.

By mail, on GitHub or via Telegram: Feedback is welcome!

This is the current roadmap for ARM64 support:

After listening to and processing community feedback, we will start integrating ARM64 compatibility into the normal master branch (making it available to everyone).

But until then, there are still a few things to do around the ARM64 implementation, like documentation or moving the issue templates to GitHub, etc.

The whole thing will happen bit by bit from now on, and will progress more and more.

So please don’t be surprised if not everything is multi-architecture at the start of the open beta (e.g. documentation).

Of course we will keep you up to date, so stay tuned!

If you are still looking for ARM64 servers, we can highly recommend the servers from Hetzner. (No advertising! We did our tests on self paid Hetzner ARM64 cloud servers).


Good, then we have it. Anything else? Let me think… uh… not for now.

As always, stay healthy, have fun with IT and enjoy your time.

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/cve-2023-34108/index.html b/posts/2023/cve-2023-34108/index.html new file mode 100644 index 000000000..a915f5947 --- /dev/null +++ b/posts/2023/cve-2023-34108/index.html @@ -0,0 +1,18 @@ +โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธ - mailcow: dockerized - Blog +

โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธ

Moohoo everyone!

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

Impact

On May 30, 2023, a vulnerability was discovered in mailcow. The vulnerability allows an attacker to manipulate internal Dovecot variables by using specially crafted passwords during the authentication process.

The issue arises from the behavior of the passwd-verify.lua script, which is responsible during login. Upon a successful login, the script returns a response in the format of password=, indicating the successful authentication.

By crafting a password with additional key-value pairs appended to it, an attacker can manipulate the returned string and influence the internal behavior of Dovecot. For example, using the password 123 mail_crypt_save_version=0 would cause the passwd-verify.lua script to return the string password=123 mail_crypt_save_version=0. Consequently, Dovecot will interpret this string and set the internal variables accordingly, leading to unintended consequences.

By changing the password to a specific payload, the vulnerability can be exploited during the login process using the special-crafted password. Successful exploitation could result in unauthorized access to user accounts, bypassing security controls, or other malicious activities.

What has been done about this vulnerability?

On the same day, a hotfix (2023-05a) was released to fix the vulnerability.

This means that it is no longer possible to exploit this vulnerability.

Affected Versions

Basically everything before the 2023-05a update.

The impacted file passwd-verify.lua has been in mailcow: dockerized code for almost 3 years.

Workaround (if any)

In short: NONE!

There is no workaround for this problem because every user can change and set his own password and this function cannot be restricted by an ACL.

In general, we recommend updating the mail system on a regular basis. Updates are very important in the IT world and protect against vulnerabilities like this.

References

We thank the finder of this exploit and refer to his reference:

https://github.com/VladimirBorisov/CVE_proposal/blob/main/MailcowUserPassword.md


For further inquiries about this CVE, please do not hesitate to contact us at info@servercow.de.

Please make sure that your mail server always has a current patch level!

Stay healthy and happy mailing!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/ldap-announcement/index.html b/posts/2023/ldap-announcement/index.html new file mode 100644 index 000000000..d69a86a2f --- /dev/null +++ b/posts/2023/ldap-announcement/index.html @@ -0,0 +1,22 @@ +๐Ÿฎ๐Ÿค LDAP is real and is coming 2023 - mailcow: dockerized - Blog +

๐Ÿฎ๐Ÿค LDAP is real and is coming 2023

Moohoo everyone!

The time of waiting is over and many have shared their solution with us on the contact options below.

Today we finally have the pleasure to let it out into the world!

One thing that has been wished for a very, very long time:

LDAP IS COMING TO NIGHTLY Q2 2023.

Many (actually almost all) have guessed it correctly and found the solution.

But what exactly does it mean now?

mailcow gets in the second quarter of 2023 (April to June) finally a LDAP option to manage users conveniently somewhere.

This of course brings new possibilities for mailcow: e.g. in schools or other public institutions.

How does it work?

With the new feature, mailcow can be configured to use an external keycloak for authentication in addition to the local SQL database. +If you don’t know Keycloak, you can read about Red Hat’s open source project here: https://www.keycloak.org/. +The mailcow is connected to Keycloak via OIDC. Keycloak can in turn be configured to use an LDAP system for authentication.

Some may ask, why the detour via Keycloak? +In addition to the option to connect to an LDAP system, Keycloak could provide other options to perhaps even provide more authentication options in the future. +In addition, companies that already have Keycloak in place can use the single sign-on feature for the Mailcow UI and therefore SOGo as well.


We would like to point out that this LDAP feature will only be part of the nightly versions (i.e. the testing versions) of mailcow upon full release because we want to get as much as possible as right as possible with such a hotly anticipated feature and work closely with the community.

If everything goes smoothly, we can aim for an official release towards the end of Q4 (Nov - Dec 2023).

Of course, there will be news about this again, should something change.

Nevertheless, we want to thank you all for this little puzzle fun and hope that you also had some fun guessing the solution. It won’t be the last time we did something like this ๐Ÿ˜Š

Your mailcow team

Niklas or DerLinkman & Patrick or FreddleSpl0it

0%
\ No newline at end of file diff --git a/posts/2023/letters-mystery/index.html b/posts/2023/letters-mystery/index.html new file mode 100644 index 000000000..82b1eaa14 --- /dev/null +++ b/posts/2023/letters-mystery/index.html @@ -0,0 +1,21 @@ +๐Ÿค” Have you seen these letters? - [Solved] - mailcow: dockerized - Blog +

๐Ÿค” Have you seen these letters? - [Solved]

Moohoo everyone!

First of all, a big, big sorry for the long radio silence here.

We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of “ONLY” bug fixes, etc..

But in this blogpost we would like to draw your attention to a mysterious thing:

Have you noticed these letters on Twitter from us yet?

For all of you who DON’T have Twitter (and don’t want to) here’s the short summary:

We’ve been posting (mostly) two letters a day for just under 2 weeks with no real context.

Today (as of March 28th 2023) all letters are known:

LD - GH - Q2 - IS - CO - TLY - AP - TO - NI - 20 - 23 - NG - MI

However, you should notice that they are not really sorted.

And that’s where you come in!

Sort the letters into the right order and you’ll get a nice surprise for many of you.

This is something that many have been waiting for for a long time.

You have time for your musings until 31.03.2023 until we will announce the solution on Twitter and here for all.

If you think you know the solution, feel free to send us an email:

community@mailcow.email with the subject: Letters Mystery March 2023 - Solution

or write us on Twitter @mailcow_email with the solution you came up with!

We’re exited to hear your solutions!

Your mailcow team

Niklas or DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/mailcow-idp/index.html b/posts/2023/mailcow-idp/index.html new file mode 100644 index 000000000..821d43a45 --- /dev/null +++ b/posts/2023/mailcow-idp/index.html @@ -0,0 +1,53 @@ +๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authentication - mailcow: dockerized - Blog +

๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authentication

Moohoo - Good News, everyone!

With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source.
mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users.
To enable this, we have made some changes to the way authentication works.

Let’s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.
To make things simpler, I’ll use the term IdP (Identity Provider) throughout this post.


What has been changed and why?

Our goal was to enable the use of an IdP alongside the existing SQL database as an authentication source. However, only one IdP can be configured at a time, and multiple ones are not supported.
Now, mailcow needs to be able to decide, depending on the user, which authentication source should be used. To make this possible, we have made changes to the services mailcow UI (phpfpm), Dovecot, and SOGo.

mailcow UI

We have outsourced the entire authentication logic to the phpfpm service. For each user, an authentication source is now defined, which can currently be either mailcow, Keycloak, or Generic-OIDC. During login, mailcow then uses the corresponding source for authentication.

Dovecot

Until now, Dovecot has been using a custom LUA script for authentication, which used SQL queries. Instead of SQL queries, HTTP requests to an internally available PHP script are now used.
Users who authenticate via the IdP must create App passwords to continue using mail clients like Thunderbird.
There is another option available to avoid creating additional App passwords, but this is only applicable for the Keycloak provider.
I’ll explain that later.

SOGo

Many might have wondered why the mailcow login is displayed under the root path instead of the SOGo login. +For the SOGo login, there has been a Proxy Auth feature available for quite some time, which can be used from the mailcow UI. +With the Proxy Auth feature, logged-in users can be redirected to SOGo without needing to log in again. This allows users to access additional features beforehand, such as password change, app passwords, temporary aliases, etc. +To highlight this feature more prominently, we have redesigned the mailcow UI and placed a noticeable blue button at the top that nobody should overlook. +Users who use the IdP can only log in to SOGo through the mailcow UI. Directly logging in through SOGo will not work.

As direct login through SOGo does not work for IdP users, we have extended the app links to avoid confusion in the future. +App links can now be either hidden or displayed for the login. The default linking to SOGo in the mailcow login is hidden. However, logged-in users will still see all the apps. +Furthermore, an additional link can be entered for logged-in users, using %u as a placeholder for the username. For example, logged-in users can be redirected to the Proxy Auth script with /sogo-auth.php?login=%u using an app link.




Ideas for the future

In the future, we may consider allowing you to customize the post-login redirection for individual users, giving you the flexibility to choose whether they should be directed to mailcow or SOGo after logging in.
Additionally, as a result of the authentication overhaul, we have now separated the login functions for Admins, Domain Admins, Users, and App Passwords. One potential idea is to offer different login paths for Admins, Domain Admins, and Users, which would also involve dividing the API into distinct Admin, Domain Admin, and User APIs.
Building on this foundation, we could explore the possibility of adding more OIDC providers if the Generic-OIDC option proves insufficient. Alternatively, we might even consider directly integrating an LDAP provider. +Please note that these are just some potential ideas for future development.


How do I use this feature?

Firstly, I want to mention that in our tests, we have only tested Keycloak as an IdP. However, it is also possible to set up other IdPs (Generic-OIDC). If you are already using a different IdP, such as Authentik, we would appreciate your feedback.

The prerequisite for this guide is that you already have a running Keycloak instance.

For this example, we will use the following setup:


Keycloak Configuration

Step 1

Install the mailcow Nightly version on a test instance.
https://docs.mailcow.email/i_u_m/i_u_m_update/#best-practice-nightly-update

Step 2

Log in as an Admin to Keycloak and navigate to your Realm or create one.
In the Realm, we will now create a new client named mailcow and configure it as follows:

+ +
Step 3

After saving the client, we need to include a User Attribute in the token claim. The User Attribute is named mailcow_template, and with the following settings, it will be included in the OIDC Endpoint /userinfo. Based on this attribute, the mailbox configuration will be determined (quota, ACLs, etc.).

+ + +
Step 4

Now we can copy the Client Secret from the Client Configuration and proceed with mailcow.




mailcow Configuration

Step 1

Log in to mailcow and navigate to System -> Configuration -> Access -> Identity Provider. Fill in the fields accordingly.
The Keycloak version can be found in the Admin Dashboard under the master Realm. It is essential to know whether a version greater or smaller than 20 is used since mailcow needs to add the “openid” scope accordingly.
The Attribute Mapping is used by mailcow to apply the mapped mailbox template based on the Keycloak User Attribute mailcow_template. +For this example, I haven’t created an extra template, so we will set up a mapping to the Default template.
We can ignore everything beyond the Attribute Mapping for now.

Step 2

The settings can be tested before saving. If the test fails, please check whether mailcow can reach the specified server URL and verify that the Realm, Client ID, and Client Secret information are correct.




Create Test User

Now, let’s proceed to add a user in Keycloak. Go back to the Keycloak Admin Dashboard and select your Realm. +Then, navigate to Users and add the new user.

Afterwards, let’s specify that the user should receive a default mailbox.

+

Finally, don’t forget to set a password for the new user under the Credentials tab, and you’re done.

With our current configuration, the new user does not exist directly in mailcow. However, this will happen automatically during the first login. +Go to the mailcow login and click on the SSO button in the dropdown. This will redirect you to Keycloak. +If the Keycloak login works, but you end up back at the mailcow login with an error message, please make sure that the domain exists and that mailboxes can be created under that domain.

Everything should work now, and you should be logged in, landing on the new user page. I believe you can’t miss the “Login to webmail” button. Additionally, you’ll notice that there are no configuration options for password change or 2FA displayed here since these are configured through Keycloak.

If you want to use a mail client like Thunderbird with this user, you can create an app password under App Passwords accordingly.




Change IdP for existing mailbox users

The IdP for existing mailbox users can be changed. Make sure the user exists in the IdP and simply edit the mailbox in mailcow and select the IdP you want. +If you switch back to mailcow as IdP, it will reuse the old password.




Automatic User Provisioning

Keycloak, as an IdP, can be configured in mailcow to control changes for all users at a custom interval. This allows users to be automatically created, and even when the mailcow_template is modified later, attributes will be adjusted automatically. To configure this, the mailcow client needs additional permissions in Keycloak. Specifically, the client requires the view-users permission. With this permission, all Realm users can be queried through the Keycloak Admin REST API.

Step 1

Log in as an Admin to Keycloak, go to your Realm, and edit the mailcow client.

+
Step 2

In the mailcow UI, under Identity Provider, enable Periodic Full Sync and Import Users. Then, select your desired interval in minutes and save. +Periodic Full Sync checks if the mailcow_template attribute has changed and adjusts the mailbox accordingly. +Import Users checks if new users have been created and also creates them in mailcow.

Step 3

Under System -> Information -> Logs -> Crontasks, you will find all logs related to automatic user provisioning. If something doesn’t work as expected, you can find more information there.

Mailpassword Flow

As described in the info text below the option, the Mailpassword Flow can be used to authenticate the user using the Keycloak attribute mailcow_password. This password can also be used directly for the mailcow UI and mail clients.
For this to work, the mailcow client must have the view-users permission, as described above, and the attribute mailcow_password must be included in the token claim, as described above. +You can now add the attribute mailcow_password to the user in Keycloak. +The password should be hashed and have one of the following formats: https://docs.mailcow.email/models/model-passwd/ +Here is an example of the standard moohoo password: {SSHA256}K8eVJ6YsZbQCfuJvSUbaQRLr0HPLz5rC9IAp0PAFl0tmNDBkMDc0NDAyOTAxN2Rk




LDAP

In Keycloak, you can connect an LDAP provider in your Realm under User Federation. +https://www.keycloak.org/docs/latest/server_admin/#_ldap

After configuring, the mailcow_template attribute needs to be mapped. If desired, you can also map the mailcow_password attribute using the same procedure. +With the following configuration, we map the LDAP attribute mailboxType to the Keycloak attribute mailcow_template. If no value for mailcow_template is present, we force it to be default.

+




In conclusion

The authentication has undergone significant changes. When testing, pay special attention to security vulnerabilities.
Otherwise, we can say: Enjoy testing! We look forward to your feedback and bug reports.
๐Ÿฎ



Stay healthy and happy mailing!

Your mailcow Team

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-01/index.html b/posts/2023/release-2023-01/index.html new file mode 100644 index 000000000..597ca60de --- /dev/null +++ b/posts/2023/release-2023-01/index.html @@ -0,0 +1,27 @@ +๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new features - mailcow: dockerized - Blog +

๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new features

Introduction

Moohoo everyone!

The mailcow team is back with some exciting news about our beloved mailcow project!

But this time we are doing something a bit different than usual (at least here with the blog post entry)

As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT.

So we thought: “Hey, why don’t we let the bot write our changelog in text form?” and we started writing the script that ChatGPT should write, which was:

write a funny changelog in a robot slang for the mailcow update with the name ““Janmooary 2023 Update” and the following highlights:
Many bugfixes in Bootstrap 5 (detailed list is available on GitHub).
Nextcloud installation script has been improved (Dedicated database on installation, Update possibility via script, Improved purgen of Nextcloud).
Some Behind the Scenes changes (not relevant for the user)
Developer Mode for generate_config.sh (skips branch checkout)
Dovecot updated to version 2.3.20
SOGo CalDAV bug fixed with macOS

And now: We present you our new employee’s style of presenting you the latest news on the mailcow project:


Changelog (written form by ChatGPT, funny robotic variant, formatted by DerLinkman)

Greetings, organic units!

The Janmooary 2023 Update is now available for installation.

Our team of robot engineers have been hard at work squashing bugs in Bootstrap 5. A detailed list of exterminated pests can be found on our GitHub repository.

In addition, we have optimized the Nextcloud installation script for improved performance. +The script now includes the ability to dedicate a separate database during installation and the option to update Nextcloud with ease.

Our robot overlords have also made some behind the scenes changes that will not affect the user experience.

For our developer units, the generate_config.sh script now includes a Developer Mode that allows for skipping branch checkout.

Finally, we have upgraded Dovecot to version 2.3.20, and fixed a pesky SOGo CalDAV bug that was causing issues with macOS (again).

Upgrade now and continue your efficient communication operations.


Lovely, isn’t it?

As you may have noticed, we haven’t added any Nightly Changelogs this time around. The reason for this is that we don’t have any nightly exclusive content at the moment.

But don’t worry! We’ll do this year looking at Xapian FTS

Anyways you can always find the complete Changelog over at GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-01

If you still find issues please feel free to report them on GitHub.

Your mailcow team

Niklas

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-04/index.html b/posts/2023/release-2023-04/index.html new file mode 100644 index 000000000..5e5686e66 --- /dev/null +++ b/posts/2023/release-2023-04/index.html @@ -0,0 +1,32 @@ +๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision A - mailcow: dockerized - Blog +

๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision A

Update 2023-04a

We’ve just released a hotfix update for the 2023-04 update.

It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does.


Update 2023-04

Moohoo everyone

It’s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack.

Let’s get started:

  • SOGo has been updated to version 5.8.2. Some might have noticed a bug in macOS Ventura and CalDav, which caused the macOS calendar app to not detect any SOGo calendars and simply tried to create new calendars with the name on the remote server (which of course failed, because the calendar already existed). +Furthermore the update to 5.8.2 should have fixed some more problems, a complete changelog of SOGo can be found here: https://github.com/Alinto/sogo/releases/tag/SOGo-5.8.1 & https://github.com/Alinto/sogo/releases/tag/SOGo-5.8.2
  • Rspamd has been updated to version 3.5. A full changelog of Rspamd itself can be found here: https://github.com/rspamd/rspamd/releases/tag/3.5
  • The mailcow netfilter has been extended by an exponential ban time function. I.e. banned IPs/subnets can now lengthen their ban time exponentially (if desired). This means that would-be attackers are banned for longer before they can try again.
  • The Vmail index now also deletes itself as soon as a mailbox is finally deleted from the mailcow server, this was not the case before.
  • PHP was updated to version 8.2.
  • Nextcloud (in mailcow) was upgraded to version 26.
  • For Nextcloud there was an adjustment in the nextcloud.conf of the NGINX server to meet the security requirements of Nextcloud.
  • Removed some minor broken pipe errors in mailcow scripts, which occurred when the urandom command (to generate password) was not properly aborted or the message was not hidden.
  • Various other optimizations.

As always, the full changelog with the individual commits is available on GitHub at any time: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-04

Otherwise, the same applies as always:

Stay healthy and happy mailing!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-05/index.html b/posts/2023/release-2023-05/index.html new file mode 100644 index 000000000..31a7d9d1f --- /dev/null +++ b/posts/2023/release-2023-05/index.html @@ -0,0 +1,23 @@ +๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Update - mailcow: dockerized - Blog +

๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Update

Moohoo everyone!

It’s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance.

Let’s go:

Changelog

  • For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.mailcow.email/manual-guides/Dovecot/u_e-dovecot-performance.
  • Fixed a bug in the BCC Map setting in the UI, this messed up the dropdown once a selection was made. Also, it was not possible to select aliases as a local target.
  • In the user view (Spam Aliases) the aliases were displayed in the wrong order, this has been fixed.
  • A problem in the Rspamd table (especially on devices with smaller screens) caused display errors in the user interface. For example, the spam value and scan time were not displayed. This is now fixed.
  • In the user view, the tabs displayed now match the ACLs set.
  • When clicking on “Show user’s active filters” in the user view, an error message was displayed instead of the set Sieve filters. From now on, the user’s active Sieve filters are displayed here as expected.
  • A display error where a deleted mailbox (from which it was possible to send as another mailbox) was still displayed in the “Send as” drop-down list has been fixed.
  • An automatic update of the accesslist for postscreen has been set up for Postfix via GitHub. This automatically updates the list every month (then rolled out with new updates from mailcow).
  • Old SASL logs were not correctly removed from the database. This is now the case.
  • The UI now shows the architecture used under the hostname of your mailcow instance. This is in preparation for ARM64 support (see below for current status).
  • Some typos and links have been corrected.

As always, the full changelog with the individual commits is available on GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-05


Ok, that’s all about the changelog so far. Let me say a few words about ARM64:

ARM64 Status Update

The bad news first: ARM64 is not yet in the nightly build and will not make it before June 2023.

The good news: Some people are already testing with ARM64 and report no major problems so far, except for some incompatibilities of the hyperscans by Rspamd. This means that mailcow runs very well on ARM64 so far. I have also run these tests and come to a similar conclusion.

However, since we are making some major changes in the way Docker images are built with the move to ARM64, it will unfortunately take a little while before we can incorporate this into the nightly builds for everyone. This is because from the moment ARM64 support is integrated into the nightly of mailcow, the Docker images should also have the same versioning as the images in the nightly and not like now e.g. arm64-dev. This means a change for us and especially a preparation for the dual OS architecture design on the part of the Docker images.

Because the plan is (so far it can be kept) that for ARM64 and x86 users NOTHING changes in the way of updating/installing mailcow.

Also (as mentioned above) there is currently a somewhat major bug with Rspamd and ARM64, but this is in prospect of being fixed. If this is the case we can start integrating it into Nightly, which is expected to be early/mid June 2023.

When it is done, we will of course announce it everywhere and inform you.


So, enough rambling, have a nice morning/lunch/evening or whenever you read this….

Otherwise, what always applies:

Stay healthy and happy mailing!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-05a/index.html b/posts/2023/release-2023-05a/index.html new file mode 100644 index 000000000..ab4305864 --- /dev/null +++ b/posts/2023/release-2023-05a/index.html @@ -0,0 +1,19 @@ +๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ) - mailcow: dockerized - Blog +

๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)

Contents +

Moohoo everyone!

A very urgent security update for mailcow (2023-05a) has just been released.

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

Roughly speaking, this vulnerability is a password parsing bug on the part of Dovecot and mailcow.

More detailed information as well as a proof of concept will be available in a CVE in the next few days.

There is NO workaround for this problem!

Changelog

  • The Nextcloud script now installs Nextcloud 26.0.2 or updates to it (if desired).
  • A critical vulnerability in Dovecot was closed, which allowed unauthorized access to another mailbox via a password change. A separate CVE and POC will follow in a few days.
  • In the Dockerfiles the maintainer was changed from Andrรฉ to tinc (The Infrastructure Company GmbH).

As always, the full changelog with the individual commits is available on GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-05a


Please make sure that your e-mail server always has a current patch level!

Otherwise, what always applies:

Stay healthy and happy mailing!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-07/index.html b/posts/2023/release-2023-07/index.html new file mode 100644 index 000000000..f7c7f716a --- /dev/null +++ b/posts/2023/release-2023-07/index.html @@ -0,0 +1,22 @@ +๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvements - mailcow: dockerized - Blog +

๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvements

2023-07a (Release 31th July 2023)

There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix:

Changelog

  • dns_blocklists.cf isn’t appended to main.cf and therefore ineffectiveโ€ฆ
  • Fix Reponse Code for ASN Checks
  • [Postfix] Reimplemented option for custom dnsbls
  • [Postfix] Added dns_blocklists.cf for customizations
  • [Postfix] update postscreen_access.cidr
  • Update SOGo to 5.8.4
  • Fix spamhaus query domains (.net only)

As always, the full changelog with the individual commits is available on GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-07a


2023-07 (Release 28th July 2023)

Moohoo everyone!

Important

Before updating mailcow, make sure that the whois package is installed on your system.
A functionality has been added which makes the locally installed package whois obsolete.

New Feature: Manage CORS Settings

administrators can now manage CORS (Cross-Origin Resource Sharing) settings via the web UI for API access. +This allows for better control and enhanced security when handling data exchange between different origins.

CORS - Why Is It Needed?

Under normal circumstances, when a script runs in the user’s browser, it primarily needs to access resources from the same origin. +For example, making API calls to the backend that served the JavaScript code initially. +This limitation of JavaScript not being able to access resources from other origins is actually a security feature.

“Other origins” in this context refers to URLs that differ from the location where the JavaScript is running. These differences may include having different domain, port or scheme (HTTP or HTTPS). +While this security measure is essential for protecting users from unauthorized access to their data, there are valid situations where cross-origin access becomes necessary or desirable.

Broadcasting commands to multiple dockerapi instances!

For Administrators who use mailcow in a cluster, you now need to set the following in mailcow.conf: CLUSTERMODE=replication. +This ensures, that now on mailbox deletion the request will be broadcasted to each Dockerapi container and therefore each Dovecot container, so all files on each Host will be deleted.

Bug fixes, Bug fixes and more Bug fixes…

Changelog

  • Update thollander/actions-comment-pull-request action to v2.4.0
  • Update dependency nextcloud/server to v27
  • Update nextcloud heper script to disable SMTP TLS host verification
  • [API] Update swagger version to 5.1.0
  • Rspamd returns 401 on unsuccesful logins
  • [Web] add cors to json_api
  • [Web] fix loading rspamd-history
  • [Dockerapi] add redis pubsub handler for broadcasting requests
  • [Rspamd] add dot-stuffing to bcc forwarding
  • [web] logger pdo exception handling workaround
  • [Rspamd] Native mailcow Support for Securite ClamAV Signatures
  • Fixes several instances of missing , extra role=‘tabpanel’ andโ€ฆ
  • Update dependency nextcloud/server to v27.0.1
  • Spamhaus DNSBL AS Detection

As always, the full changelog with the individual commits is available on GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-07


Stay Tuned for More:

As we continue to grow and refine mailcow, we’ll keep you updated with the latest developments and improvements.

A big thank you to our amazing mailcow community for your continuous support and valuable feedback. +Your contributions have played a vital role in making mailcow even better - more robust and user-friendly!

Stay healthy and happy mailing!

Your mailcow Team

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-08/index.html b/posts/2023/release-2023-08/index.html new file mode 100644 index 000000000..594caa500 --- /dev/null +++ b/posts/2023/release-2023-08/index.html @@ -0,0 +1,27 @@ +๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixes - mailcow: dockerized - Blog +

๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixes

2023-08 (Release 3rd August 2023)

Moohoo everyone!

I hope you are not tired yet of performing updates.
The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature.
If you are not using Spamhaus DQS and haven’t experienced any issues with the 2023-07 update, you don’t have to install this update.

As this release only contains hotfixes, there is not much to say about it, except for one thing.
If you don’t want to use Postscreen DNSBL at all, you can delete and leave the content of the file data/conf/postfix/dns_blocklists.cf empty.
To undo any changes to this file, simply delete the file and restart Postfix.

Changelog

  • Fix main.cf merging order
  • [Postfix] rework dns_blocklists.cf generation
  • Add postscreen_dnsbl_reply_map to avoid disclosure of DQS key

The full changelog with the individual commits is available on GitHub: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-08


As always, a big thank you to our amazing mailcow community for your continuous support and valuable feedback.

Stay healthy and happy mailing!

Your mailcow Team

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-09/index.html b/posts/2023/release-2023-09/index.html new file mode 100644 index 000000000..d2d31c413 --- /dev/null +++ b/posts/2023/release-2023-09/index.html @@ -0,0 +1,27 @@ +๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0) - mailcow: dockerized - Blog +

๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)

2023-09

Moohoo everyone!

We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo.

That’s all there is this month. More content will come in early October with update 2023-10.

Changelog

  • [SOGo] Update to 5.9.0

The full changelog, including the individual commits, is available on GitHub at any time for those interested: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09


As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.

Stay healthy and happy mailing!

Your mailcow team

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-10/index.html b/posts/2023/release-2023-10/index.html new file mode 100644 index 000000000..efb6a7c08 --- /dev/null +++ b/posts/2023/release-2023-10/index.html @@ -0,0 +1,55 @@ +๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision A - mailcow: dockerized - Blog +

๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision A

2023-10a (Released 12th October 2023)

Changelog

  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)

2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

This time it’s quite huge!

From UI Improvements (especially for all Darkmode fans like myself) over Domainwide footers to general Improvements and fixes roundabout the hole stack we have a lot to tell.

So let’s begin should we?

Changelog

  • A lot of UI Improvements have been added:
    • You can now upload two ui logos (one for light- and one for darkmode).
    • Darkmode Enhancements (Color Improvements in UI).
    • Styling Enhancements in General.
    • Better Mobile view of mailcow UI.
    • You can now filter the most tables (mailboxes, domains, aliases etc.) by Domains for a better view.
  • Inside mailcow UI there is a new option to use a Domain wide footer. It can be used to add a signature under all e-mails you send from a specific email domain.
  • The main.cf (of Postfix) will now be correctly updated once you add some options with $myhostname Variable. Previously it was removed, which should not be the case.
  • We fixed the high load of the dockerapi container which has been introduced with 2023-08.
  • The X-Moo Tag (added if you used subaddressing) is now only added if really necessary, this was a small non critical security issue.
  • The generate_config.sh is now correctly checking out the desired git branch, which was not the case before.
  • http2 has been removed on the listen options of nginx to remove the deprecation message during the NGINX startup.
  • We increased the hash bucket size from 64 to 512 as some domain names would have caused NGINX to crash during startup with that previous setting.
  • A improved FQDN check during the generate_config and update.sh processes have been implemented.
  • ClamAV have been updated to LTS 1.0.3.
  • We fixed a issue with ACLs on domain/mailbox creation which causes mailcow to set a fallback value of the SQL schemata if no ACLs were set.
  • Dovecot has been updated to 2.3.21.
  • We updated all Container Images which include cURL to fix the Security issues with the cURL Releases before Version 8.4.0
  • A Unbound Healthcheck on compose startup has been added. This will wait for unbound to be fully working before it is starting up containers which need DNS resolutions (Postfix, ClamAV, acme).
  • EAS Bodys are now searchable. This option has been activated within SOGo. It is declared as a experimental feature by us and maybe removed if it will make more trouble than fun.
  • Updates of some internal PHP-FPM Components.

Whew, that was ALOT but we are done for this update.

As always: The full changelog, including the individual commits, is available on GitHub at any time for those interested: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-10


As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.

Stay healthy, happy mailing and a great spooktober season!

Your mailcow team

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-11/index.html b/posts/2023/release-2023-11/index.html new file mode 100644 index 000000000..475e55827 --- /dev/null +++ b/posts/2023/release-2023-11/index.html @@ -0,0 +1,95 @@ +๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixes - mailcow: dockerized - Blog +

๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixes

2023-11a (Release 07th December 2023)

Changelog


2023-11 (Release 21st November 2023)

Moo hoo everyone!

The holiday season is slowly approaching, and here we are with another update at our doorstep.

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

Changelog

  • Rspamd has been updated to version 3.7.4.
  • Synchronization jobs now include a Dry Mode button, allowing mailbox synchronization testing.
  • Additionally, synchronization jobs now support the valid parameter --f1f2 for syncing a mail folder to another named mail folder.
  • An issue affecting attachments and the Domain Wide Footer has been resolved. This problem led to attachment destruction when the Domain Wide Footer was set.
  • A script for generating a CAA record has been created in the helper-scripts folder.
  • Nextcloud version has been updated to 27.1.3. Also, the NGINX side of Nextcloud has been adjusted to meet the new requirements and has been rolled out for users of the Nextcloud script in the helper-scripts folder.
  • A new Sieve Template has been added to the Filter Menu of the mailcow UI.
  • utf-8 encoded passwords are now correctly processed in the sync jobs.
  • The update.sh script has been optimized to better handle Docker images that do not follow standard version tagging (e.g., the Nightly Images). These images are now correctly removed.
  • Various new translations.
  • A critical security vulnerability affecting the mailcow Quarantine UI has been patched, with a CVE to follow.

Given that we have addressed a critical vulnerability here, we strongly recommend updating. However, if you do not use the mailcow Quarantine feature, theoretically, you can skip this update. Nevertheless, we always recommend keeping your system up to date!

As always, the complete changelog, including individual commits, is available on GitHub for those interested: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-11


Once again, a huge thank you to our amazing mailcow community for your ongoing support and valuable feedback.

Stay healthy.

Your mailcow team

0%
\ No newline at end of file diff --git a/posts/2023/release-2023-12/index.html b/posts/2023/release-2023-12/index.html new file mode 100644 index 000000000..99d2d13d8 --- /dev/null +++ b/posts/2023/release-2023-12/index.html @@ -0,0 +1,63 @@ +๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpoint - mailcow: dockerized - Blog +

๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpoint

2023-12a (Release 29th December 2023)

Changelog


2023-12 (Release 19th December 2023)

Moo hoo everyone!

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

Changelog

  • Update actions/stale action to v9 by @renovate in #5579
  • Translations update from Weblate by @milkmaker in #5583
  • [Netfilter] add nftables support by @FreddleSpl0it thanks to @amorfo77 in #5585
  • [Web] add f2b_banlist endpoint by @FreddleSpl0it in #5313
  • Watchdog: Allow sending notifications via webhooks by @felixoi in #4968
  • Allow suppressing watchdog start notification by @smarsching in #5453
  • Translations update from Weblate by @milkmaker in #5590
  • Update dependency nextcloud/server to v28 by @renovate in #5589
  • Translations update from Weblate by @milkmaker in #5591
  • Translations update from Weblate by @milkmaker in #5598
  • Guideline Improvement + Issue Template adjusting by @DerLinkman in #5602
  • chore(deps): update alpine docker tag to v3.19 by @renovate in #5603

How to use the Banlist Endpoint is described here https://docs.mailcow.email/manual-guides/mailcow-UI/u_e-mailcow_ui-netfilter/#provide-netfilter-decisions-via-url-as-source-for-firewall-block-rules.

The complete changelog, including individual commits, is available on GitHub for those interested: +https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-12


Once again, a huge thank you to our amazing mailcow community for your ongoing support and valuable feedback.

Stay healthy.

Your mailcow team

0%
\ No newline at end of file diff --git a/posts/2023/spamhaus-dnsblocklist/index.html b/posts/2023/spamhaus-dnsblocklist/index.html new file mode 100644 index 000000000..8c5a1ca44 --- /dev/null +++ b/posts/2023/spamhaus-dnsblocklist/index.html @@ -0,0 +1,20 @@ +๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07 - mailcow: dockerized - Blog +

๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07

Moohoo everyone!

With the mailcow update 2023-07, there’s a somewhat significant change regarding Spamhaus DNS blocklists.

This blog post is here to provide information for those interested.

What are Spamhaus DNS blocklists?

First of all, let’s address the general question of what these lists actually are and what they are used for.

The Spamhaus DNS blocklists are (usually) freely accessible lists that can be integrated into various systems of an email server (whether it’s Rspamd, Postfix, or others). In the case of mailcow, these blocklists are integrated into Postfix via Postscreen.

Essentially, they act as a “prefilter” for spammer addresses, but they work based on IP, not content, like Rspamd does.

These lists are updated in real-time and instruct the email server to deny connections from listed IPs.

Until now, these blocklists were available for use without any restrictions for all users.

However, that’s unfortunately changing.

What’s changing?

On June 20th, Spamhaus blocked access to these lists from OVH, AWS, and Cloudflare servers.

As a result, the DNS blocklists (only from Spamhaus, others still function) won’t work unless users take action.

From now on, if you want to continue using the Spamhaus DNS blocklists, you’ll need to create an account with them and generate a DQS (Domain Query Service) key, which you’ll then add to mailcow.conf.

mailcow will take care of configuring the new DQS blocklists, which technically function the same way as the ones without an account.

We’ve implemented a solution in the update and generate_config scripts that associates your public IP address with an Autonomous System (AS) and checks against a service we provide (asn-check.mailcow.email) to see if you’re affected. If you are, mailcow will notify you.

Why is this change happening, and am I affected?

Spamhaus explains it as follows:

The Spamhaus Projectโ€™s Terms of Use state that it doesnโ€™t allow users to query via DNS resolvers where there is no attributable reverse DNS; this includes OVHCloud (weโ€™ll explain why later in this article).

[…] The blocklists that the Spamhaus Project makes freely available via its Public Mirrors are for small-scale, non-commercial use. To ensure these users have a good quality of service, usage is monitored and measured against the Projectโ€™s Terms of Use. OVHCloud masks organizationsโ€™ queries to the Projectโ€™s Public Mirrors, so the team canโ€™t attribute usage to individual entities. They have no way of establishing the number of queries a single organization is making. […]

[…] To ensure its Terms of Use are adhered to, the Spamhaus Project will block queries from a specific IP address outside the policy. It also returns an error code. In the case of querying via an open/public resolver, i.e., OVHCloud, the error code is 127.255.255.254. […]

In other words, OVH/AWS/Cloudflare’s way of sending queries to Spamhaus violates the usage terms of Spamhaus’s public DNS blocklists.

Currently, we can’t say for sure whether other providers will be affected in the future. For now, we’re aware of these three.

What if I don’t want to create a DQS key and an associated account with Spamhaus?

If you choose not to create a Spamhaus account and, therefore, forgo DQS, you won’t receive extra protection from Spamhaus’s DNS blocklists if you’re using one of the affected providers.

However, your mailcow will continue to function as before, and you’ll still be able to send and receive emails normally!

This change only affects the inclusive spam protection that will no longer be in place. Rspamd will still be there and will continue to catch spam emails.

Are there any benefits to using DQS even if I’m not affected? +Of course, all mailcow users (not just the affected ones) can access and use the new DQS blocklists.

It’s best to read the official post from Spamhaus itself, which compares both lists. (Unfortunately, it’s only available in English)

https://www.spamhaus.com/resource-center/if-you-query-spamhaus-projects-dnsbls-via-ovhclouds-dns-move-to-the-free-data-query-service/

This article summarizes the situation in general and explains how to obtain a DQS key.

I hope this brings some clarity to the situation and alleviates any fears that your mailcow server has been completely blocked or something similar.

Stay healthy and happy mailing!

Your mailcow Team +Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/posts/index.html b/posts/index.html index 81935552a..599ecdf51 100644 --- a/posts/index.html +++ b/posts/index.html @@ -1,290 +1,26 @@ - - - - - - - - All Posts - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
-

All Posts - 24 -

Total 5.24K words

2022

2021

  • - - 1 - -
  • - - 2 - -
0% -
-
- +All Posts - mailcow: dockerized - Blog +

All Posts 49

Total 16.85K words

2023

2022

0%
\ No newline at end of file diff --git a/posts/index.xml b/posts/index.xml index 8c1d92449..78b0d94c9 100644 --- a/posts/index.xml +++ b/posts/index.xml @@ -1,189 +1,67 @@ -Posts on mailcow: dockerized - Bloghttps://mailcow.email/posts/Recent content in Posts on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-12/<h2 id="2023-12a-release-29th-december-2023">2023-12a (Release 29th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-19th-december-2023">2023-12 (Release 19th December 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>We have some new Netfilter features for you before the holidays. -In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables <code>WATCHDOG_NOTIFY_WEBHOOK</code> and <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in <code>mailcow.conf</code> accordingly.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-11/<h2 id="2023-11a-release-07th-december-2023">2023-11a (Release 07th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-21st-november-2023">2023-11 (Release 21st November 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>The holiday season is slowly approaching, and here we are with another update at our doorstep.</p> -<p>First things first: It&rsquo;s advisable to update (especially if using Quarantine) due to a critical security patch.</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-delay/<p><strong>Moohoo everyone!</strong></p> -<p>We are back with new information on the current ARM64 topic.</p> -<p>Unfortunately, it&rsquo;s not good news, as you might have guessed from the headline&hellip;</p>๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-10/<h2 id="2023-10a-released-12th-october-2023">2023-10a (Released 12th October 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>We&rsquo;ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!</li> -<li>We&rsquo;ve removed the restart action from the <code>depends_on</code> section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-released-12th-october-2023">2023-10 (Released 12th October 2023)</h2> -<p><strong><del>Moo</del>Boo hoo everyone!</strong></p> -<p>It&rsquo;s spooky season again and we hope you&rsquo;re all ready to celebrate the Halloween season this year.</p> -<p>However mailcow is also delivering you with some treats (tricks &ldquo;sold&rdquo; seperately and not included in this update) regarding the stack.</p> -<p>This time it&rsquo;s quite huge!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +All Posts - mailcow: dockerized - Bloghttps://mailcow.email/posts/All Posts | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/posts/2023/release-2023-12/ + 2023-12a (Release 29th December 2023)
- -
-
- - -
-
Moohoo

The mailserver suite with the 'moo' โ€“ ๐Ÿฎ + ๐Ÿ‹ = ๐Ÿ’•

News and Infos

-

- โš ๏ธ Important Information about the 2022-04 Update โš ๏ธ -

Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. -So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. -Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.
-
-

- ๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnotes -

Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.
-
-

- ๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnotes -

Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, “Every little bit helps”. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.
-
-

- ๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnotes -

Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let’s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I’m looking at you ClamAV and Olefy!
-
-

- ๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Notes -

Moohoo everyone! It’s Friday then Then Saturday, Sunday (what?) -We have an exciting news to share with you! -We present you the newly released mailcow: dockerized Docs 2.0! -Not much may have changed at first glance (you would think) but under the hood a lot has changed! -So we present you from today: -Multi-language support (English and German are supported and updated by Servercow itself ) Light-/Darkmode New organized structure (interesting for contributors) All in all a remake of the existing docs.
-
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnotes -

Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.
-
-

- Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter! -

Moohoo everyone! -Our dear mailcow has taken the plunge into social media: Twitter! -There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. -Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. -We look forward to getting in touch with you there and keeping you up to date.
-
-

- ๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnotes -

Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn’t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.
-
-

- โš ๏ธ Important informations about log4j exploit โš ๏ธ -

Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. -Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! -For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.
-
-

- ๐Ÿ„ Moovember 2021 - Patchnotes -

Moohoo everyone! -Niklas here to present you the latest news around our lovely mailcow :) -Let’s get started, shall we? -Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:
-
-
  • - - 1 - -
  • - - 2 - -
  • - - 3 - -

+ Changelog

+
+

+ 2023-12 (Release 19th December 2023)

Moo hoo everyone!

+

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

]]>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-11/ + 2023-11a (Release 07th December 2023)

N{f}=hJyVz~&Ig83lmY%4(j$SFN&j#sZXv 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 DT5c?X literal 154228 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

+ Changelog

+
+

+ 2023-11 (Release 21st November 2023)

Moo hoo everyone!

+

The holiday season is slowly approaching, and here we are with another update at our doorstep.

+

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-delay/Moohoo everyone!

+

We are back with new information on the current ARM64 topic.

+

Unfortunately, it’s not good news, as you might have guessed from the headline…

]]>
๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-10/ + 2023-10a (Released 12th October 2023)

+ Changelog

    +
  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • +
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)
  • +
+
+

+ 2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

+

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

+

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

+

This time it’s quite huge!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. -Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-open-beta/<p><strong>Moohoo everyone!</strong></p> -<p>No you are not dreaming, yes you are awake and no this is no joke:</p> -<p>mailcow&rsquo;s ARM64 support can now be tested in nightly as <strong>BETA</strong>!</p>๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-open-beta/Moohoo everyone!

+

No you are not dreaming, yes you are awake and no this is no joke:

+

mailcow’s ARM64 support can now be tested in nightly as BETA!

]]>
๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: -Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo everyone!</strong></p> -<p>With the mailcow update 2023-07, there&rsquo;s a somewhat significant change regarding Spamhaus DNS blocklists.</p> -<p>This blog post is here to provide information for those interested.</p>โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p>๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! -It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. -Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:</p> -<p><strong>mailcow gets ARM64 support</strong></p>๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-04/Update 2023-04a We&rsquo;ve just released a hotfix update for the 2023-04 update. -It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. -Update 2023-04 Moohoo everyone -It&rsquo;s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. -Let&rsquo;s get started: -SOGo has been updated to version 5.๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/ldap-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The time of waiting is over and many have shared their solution with us on the contact options below.</p> -<p>Today we finally have the pleasure to let it out into the world!</p>๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/letters-mystery/Moohoo everyone! -First of all, a big, big sorry for the long radio silence here. -We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of &ldquo;ONLY&rdquo; bug fixes, etc.. -But in this blogpost we would like to draw your attention to a mysterious thing:๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-01/Introduction Moohoo everyone! -The mailcow team is back with some exciting news about our beloved mailcow project! -But this time we are doing something a bit different than usual (at least here with the blog post entry) -As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. -So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-12/Introduction Moohoo everyone! -To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! -As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. -Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-feat-alpine/โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10/<p><strong>Moohoo everyone!</strong></p> -<p>We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>The new Demos are here!https://mailcow.email/posts/2022/our-new-demos/Sat, 24 Sep 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/our-new-demos/<p>Moohoo everyone!</p> -<p>Itยดs finally time: Our new mailcow Demos are here and live for you to test!</p>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! -A small but important update for or against the current SOGo Sieve/mail sending problems is here! -We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. -For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know!๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! -Yeah, a August Update in September&hellip; kinda sus if you ask me! -This time there are even some changes regarding the Update sources! So stay curious. -Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! -We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). -Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) -Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).Welcome to the new mailcow blog!https://mailcow.email/posts/2022/welcome-new-blog/Fri, 15 Jul 2022 12:09:01 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/welcome-new-blog/Happy new day to you! -Welcome to the new blog page. -Some of you may have already stumbled across the site on Twitter or on Telegram in the last update announcement, but now here again officially! -Built with the fast and beautiful Static Site Generator Hugo and the LoveIt Theme, this site can keep up with WordPress and even outperform it. -What changes for all blog readers? Well, actually nothing. The only thing that changes is the URL (at least for now) instead of mailcow.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! -It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, -Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. -It is strongly recommended to install the update as soon as possible to prevent exploitation. -As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. -So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. -Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) -We have an exciting news to share with you! -We present you the newly released mailcow: dockerized Docs 2.0! -Not much may have changed at first glance (you would think) but under the hood a lot has changed! -So we present you from today: -Multi-language support (English and German are supported and updated by Servercow itself ) Light-/Darkmode New organized structure (interesting for contributors) All in all a remake of the existing docs.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-twitter/Moohoo everyone! -Our dear mailcow has taken the plunge into social media: Twitter! -There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. -Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. -We look forward to getting in touch with you there and keeping you up to date.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01/Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn&rsquo;t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. -Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! -For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moovember2021/Moohoo everyone! -Niklas here to present you the latest news around our lovely mailcow :) -Let&rsquo;s get started, shall we? -Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. -Furthermore we introduce our new cold standby solution. -With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moore_october21/Girls, guys and cows, -Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress. -We are also reworking the design a bit, that&rsquo;s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.From Peru with moo!https://mailcow.email/posts/2021/xubium_recommend/Wed, 29 Sep 2021 20:13:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/xubium_recommend/Dear cows, -For organizations in Spanish-speaking countries I would recommend you check out Xubium. -They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses. -Xubium is an amazing company to work with, it has our recommendation by all means.mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, -If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now. -Besides that, we also heavily reduced the map hammering with another change in the map generator. -Update time! -Andrรฉ
\ No newline at end of file +Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.
\ No newline at end of file diff --git a/posts/page/1/index.html b/posts/page/1/index.html index 173e429a3..c1b5a8656 100644 --- a/posts/page/1/index.html +++ b/posts/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/posts/ - - - - - - +https://mailcow.email/posts/ + \ No newline at end of file diff --git a/posts/page/2/index.html b/posts/page/2/index.html index 7d700ef24..8e5acdefe 100644 --- a/posts/page/2/index.html +++ b/posts/page/2/index.html @@ -1,242 +1,27 @@ - - - - - - - - All Posts - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +All Posts - mailcow: dockerized - Blog +

All Posts 49

Total 16.85K words

2022

0%
\ No newline at end of file diff --git a/posts/page/3/index.html b/posts/page/3/index.html new file mode 100644 index 000000000..e93fb5cc7 --- /dev/null +++ b/posts/page/3/index.html @@ -0,0 +1,16 @@ +All Posts - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/posts/whats-up-arm64/index.html b/posts/whats-up-arm64/index.html new file mode 100644 index 000000000..39ae24b67 --- /dev/null +++ b/posts/whats-up-arm64/index.html @@ -0,0 +1,25 @@ +๐Ÿค”๐Ÿฎ What's up? - ARM64 Integration - mailcow: dockerized - Blog +

๐Ÿค”๐Ÿฎ What's up? - ARM64 Integration

Moohoo everyone!

It has been more than a month since you heard from us and today we have a shadowdrop as an update.

Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What’s up?.

Today we start with the first topic, namely ARM64:

Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn’t work out so well. However, we still want to provide it and are still working on it. However, there are some difficulties to make a smooth transition from mailcow to ARM64.

These are not really noticeable for the main operation, but they bother us enough to keep the whole thing on hold for now.

What is it you ask?

Nice of you to ask! It’s about the Hyperscan library or the implementation of Hyperscan or Vectorscan (as it’s called on ARM64) for Rspamd. Said Hyperscan compiles regular regex entries that are dynamically generated by mailcow and used for spam detection. To be more precise, Hyperscan serves as a performance boost here, since the compilation of the regex entries does not have to be done over and over again, but remains compiled.

What is the problem?

The problem is that the said Hyperscan (Vectorscan) does not work properly on ARM64 at the moment, or the compilation is invalid after a reboot because it can no longer load it. But it has to be said that Rspamd just got native ARM64 support with the current version 3.5 and therefore may still have some bugs.

The main reason we are holding back the ARM64 support (even though the actual functionality is already there and has been successfully tested by some testers [THANKS]) is that it comes with some warnings in the console that can confuse or scare inexperienced users. Also, due to this issue, equivalent performance cannot be guaranteed.

In addition, some important core components like Dovecot (especially) have to be compiled by us with the nightly release of ARM64, because the Dovecot team will not provide native ARM64 support and we get the packages in the mailcow stack directly from them and not via the APT repo of Debian like we do with Postfix for example.

This may have unforeseen consequences at this point that need to be clarified in a larger testing round.

We don’t want to just “throw in” ARM64 support to say “hey, mailcow can do ARM64 now, look!!!”, but integrate it into the normal release cycle and the normal mailcow architecture, so that we can maintain not two repos, but one repo with the same content for x86 and ARM64.

So in the end, everybody benefits.

What does this mean for ARM64 support?

We are still working on support for ARM64 and will actually start implementing these changes in the nightly branch soon. However, it will take some time before the whole thing is moved to the normal stable branch and everyone can use it as they like.

So in short, we don’t want to guarantee a full release this year. We hope for it, of course.

We will of course let you know as soon as there is any news.

Now you know what’s going on with ARM64 and why it’s stagnating, even though it didn’t look that way at first.

Maybe some of you are thinking:

“You’re not going to release it for such a small thing?

And you’re probably not entirely wrong, but we don’t want to do any experiments quickly.


We plan to publish more “Ask the Developer” style blog posts in the future to keep you informed about the current state of the project.

For all LDAP fans, I can also announce a similar “Ask the Developer” type post. But that will be done by Patrick when he is ready to tell you something about it.

Otherwise, the usual applies:

Stay healthy and happy mailing!

Your mailcow Team

Niklas aka. DerLinkman

0%
\ No newline at end of file diff --git a/robots.txt b/robots.txt index 4f9540ba3..c74391649 100644 --- a/robots.txt +++ b/robots.txt @@ -1 +1,68 @@ -User-agent: * \ No newline at end of file +User-agent: * + +Disallow: /images/ +Disallow: /js/ +Disallow: /css/ + +Disallow: /*offline/ +Disallow: /*404.html$ +Disallow: /*.md$ + +User-agent: MJ12bot +Disallow: / + +User-agent: AhrefsBot +Disallow: / + +User-agent: BLEXBot +Disallow: / + +# Block SISTRIX +User-agent: SISTRIX Crawler +Disallow: / +User-agent: sistrix +Disallow: / +User-agent: 007ac9 +Disallow: / +User-agent: 007ac9 Crawler +Disallow: / + +# Block Uptime robot +User-agent: UptimeRobot/2.0 +Disallow: / + +# Block Ezooms Robot +User-agent: Ezooms Robot +Disallow: / + +# Block Perl LWP +User-agent: Perl LWP +Disallow: / + +# Block netEstate NE Crawler (+http://www.website-datenbank.de/) +User-agent: netEstate NE Crawler (+http://www.website-datenbank.de/) +Disallow: / + +# Block WiseGuys Robot +User-agent: WiseGuys Robot +Disallow: / + +# Block Turnitin Robot +User-agent: Turnitin Robot +Disallow: / + +# Block Heritrix +User-agent: Heritrix +Disallow: / + +# Block pricepi +User-agent: pimonster +Disallow: / + +User-agent: SurdotlyBot +Disallow: / + +User-agent: ZoominfoBot +Disallow: / + +Sitemap: https://mailcow.email/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml index e759432c5..173503ae8 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://mailcow.email/en/sitemap.xml2024-01-16T11:05:40+01:00https://mailcow.email/de/sitemap.xml2024-01-16T11:05:40+01:00 \ No newline at end of file +https://mailcow.email/en/sitemap.xml2024-01-16T11:16:31+01:00https://mailcow.email/de/sitemap.xml2024-01-16T11:16:31+01:00 \ No newline at end of file diff --git a/tags/2021/index.html b/tags/2021/index.html index e00b55f81..58bb2caea 100644 --- a/tags/2021/index.html +++ b/tags/2021/index.html @@ -1,238 +1,13 @@ - - - - - - - - 2021 - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +2021 - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/2021/index.xml b/tags/2021/index.xml index ee4595922..54bfcd787 100644 --- a/tags/2021/index.xml +++ b/tags/2021/index.xml @@ -1,18 +1,18 @@ -2021 on mailcow: dockerized - Bloghttps://mailcow.email/tags/2021/Recent content in 2021 on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. +2021 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/2021/2021 - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100Authorhttps://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! -For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moovember2021/Moohoo everyone! +For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100Authorhttps://mailcow.email/posts/2021/moovember2021/Moohoo everyone! Niklas here to present you the latest news around our lovely mailcow :) Let&rsquo;s get started, shall we? Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. +All changes from November 2021 for the mailcow stack (newest to oldest):30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100Authorhttps://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. Furthermore we introduce our new cold standby solution. With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moore_october21/Girls, guys and cows, +Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.more, moore, moooorehttps://mailcow.email/posts/2021/moore_october21/Fri, 01 Oct 2021 21:55:47 +0100Authorhttps://mailcow.email/posts/2021/moore_october21/Girls, guys and cows, Development is not stuck, we just have trouble handling many requests of new customers. Combined with cases of illness, vacation and the usual business we are really under stress. -We are also reworking the design a bit, that&rsquo;s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.From Peru with moo!https://mailcow.email/posts/2021/xubium_recommend/Wed, 29 Sep 2021 20:13:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/xubium_recommend/Dear cows, +We are also reworking the design a bit, that&rsquo;s a WIP and will take a while. The first new prints will probably be seen on our new cars @ tinc. We are very excited! There are also plans for a mailcow.From Peru with moo!https://mailcow.email/posts/2021/xubium_recommend/Wed, 29 Sep 2021 20:13:47 +0100Authorhttps://mailcow.email/posts/2021/xubium_recommend/Dear cows, For organizations in Spanish-speaking countries I would recommend you check out Xubium. They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses. -Xubium is an amazing company to work with, it has our recommendation by all means.mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, +Xubium is an amazing company to work with, it has our recommendation by all means.mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100Authorhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now. Besides that, we also heavily reduced the map hammering with another change in the map generator. Update time! diff --git a/tags/2021/page/1/index.html b/tags/2021/page/1/index.html index ee2c070c2..6b19161ee 100644 --- a/tags/2021/page/1/index.html +++ b/tags/2021/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/2021/ - - - - - - +https://mailcow.email/tags/2021/ + \ No newline at end of file diff --git a/tags/2022/index.html b/tags/2022/index.html index 6f24cdcd8..4165a7269 100644 --- a/tags/2022/index.html +++ b/tags/2022/index.html @@ -1,268 +1,26 @@ - - - - - - - - 2022 - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-

- 2022 16

2022

0% -
-
- +2022 - Tag - mailcow: dockerized - Blog +

2022 21

2022

0%
\ No newline at end of file diff --git a/tags/2022/index.xml b/tags/2022/index.xml index 1632744e5..ad1de3b1e 100644 --- a/tags/2022/index.xml +++ b/tags/2022/index.xml @@ -1,75 +1,34 @@ -2022 on mailcow: dockerized - Bloghttps://mailcow.email/tags/2022/Recent content in 2022 on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Sat, 24 Dec 2022 09:30:10 +0200๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-12/Introduction Moohoo everyone! +2022 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/2022/2022 - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenSat, 24 Dec 2022 09:30:10 +0200๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-12/<div class="featured-image"><img loading="eager" src="/images/2022-12/mailcow_ui_login.en.png" alt="๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5) " title="๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5) " referrerpolicy="no-referrer"/></div>IntroductionMoohoo everyone! To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. -Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10/<p><strong>Moohoo everyone!</strong></p> -<p>We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! +Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-11a/Moohoo everyone!

+

Due to the 2022-11a 2022-11b update, here are the changelogs of the 2022-11a 2022-11b update and the changes of the major version (2022-11).

+
+

Weยดve released 2022-11b already!

+
]]>
โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-10a/Moohoo everyone!

+

Yesterday (on 25th October 2022) weยดve released the 2022-10 update. +This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.

+

We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!

]]>
๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-10/Moohoo everyone!

+

We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.

]]>
๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-09/ + 2022-09a (Release: 30th September 2022)

Changes:

+
    +
  • The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes CVE-2022-39261.
    +Attention: This CVE is not critical for all mailcow users but only serves to update the packages.
  • +
]]>
๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! A small but important update for or against the current SOGo Sieve/mail sending problems is here! We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know!๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! +Yeah&hellip; however, this bug should be fixed now.Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/nightly-tests-bs5/Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!]]>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! Yeah, a August Update in September&hellip; kinda sus if you ask me! This time there are even some changes regarding the Update sources! So stay curious. Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! +Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200Authorhttps://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! +The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, -Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. -It is strongly recommended to install the update as soon as possible to prevent exploitation. -As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. -So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. -Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) -We have an exciting news to share with you! -We present you the newly released mailcow: dockerized Docs 2.0! -Not much may have changed at first glance (you would think) but under the hood a lot has changed! -So we present you from today: -Multi-language support (English and German are supported and updated by Servercow itself ) Light-/Darkmode New organized structure (interesting for contributors) All in all a remake of the existing docs.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-twitter/Moohoo everyone! -Our dear mailcow has taken the plunge into social media: Twitter! -There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. -Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. -We look forward to getting in touch with you there and keeping you up to date.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01/Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn&rsquo;t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.
\ No newline at end of file +TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.
\ No newline at end of file diff --git a/tags/2022/page/1/index.html b/tags/2022/page/1/index.html index 7afe5a7cd..1d9cb68d9 100644 --- a/tags/2022/page/1/index.html +++ b/tags/2022/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/2022/ - - - - - - +https://mailcow.email/tags/2022/ + \ No newline at end of file diff --git a/tags/2022/page/2/index.html b/tags/2022/page/2/index.html new file mode 100644 index 000000000..aed8fa1e8 --- /dev/null +++ b/tags/2022/page/2/index.html @@ -0,0 +1,8 @@ +2022 - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/2023/index.html b/tags/2023/index.html new file mode 100644 index 000000000..4286673f2 --- /dev/null +++ b/tags/2023/index.html @@ -0,0 +1,26 @@ +2023 - Tag - mailcow: dockerized - Blog +

2023 19

2023

0%
\ No newline at end of file diff --git a/tags/2023/index.xml b/tags/2023/index.xml index bdccef060..8a140a69e 100644 --- a/tags/2023/index.xml +++ b/tags/2023/index.xml @@ -1,92 +1,67 @@ -2023 on mailcow: dockerized - Bloghttps://mailcow.email/tags/2023/Recent content in 2023 on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-12/<h2 id="2023-12a-release-29th-december-2023">2023-12a (Release 29th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-19th-december-2023">2023-12 (Release 19th December 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>We have some new Netfilter features for you before the holidays. -In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables <code>WATCHDOG_NOTIFY_WEBHOOK</code> and <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in <code>mailcow.conf</code> accordingly.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-11/<h2 id="2023-11a-release-07th-december-2023">2023-11a (Release 07th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-21st-november-2023">2023-11 (Release 21st November 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>The holiday season is slowly approaching, and here we are with another update at our doorstep.</p> -<p>First things first: It&rsquo;s advisable to update (especially if using Quarantine) due to a critical security patch.</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-delay/<p><strong>Moohoo everyone!</strong></p> -<p>We are back with new information on the current ARM64 topic.</p> -<p>Unfortunately, it&rsquo;s not good news, as you might have guessed from the headline&hellip;</p>๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-10/<h2 id="2023-10a-released-12th-october-2023">2023-10a (Released 12th October 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>We&rsquo;ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!</li> -<li>We&rsquo;ve removed the restart action from the <code>depends_on</code> section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-released-12th-october-2023">2023-10 (Released 12th October 2023)</h2> -<p><strong><del>Moo</del>Boo hoo everyone!</strong></p> -<p>It&rsquo;s spooky season again and we hope you&rsquo;re all ready to celebrate the Halloween season this year.</p> -<p>However mailcow is also delivering you with some treats (tricks &ldquo;sold&rdquo; seperately and not included in this update) regarding the stack.</p> -<p>This time it&rsquo;s quite huge!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +2023 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/2023/2023 - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/posts/2023/release-2023-12/ + 2023-12a (Release 29th December 2023)

+ Changelog

+
+

+ 2023-12 (Release 19th December 2023)

Moo hoo everyone!

+

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-11/ + 2023-11a (Release 07th December 2023)

+ Changelog

+
+

+ 2023-11 (Release 21st November 2023)

Moo hoo everyone!

+

The holiday season is slowly approaching, and here we are with another update at our doorstep.

+

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-delay/Moohoo everyone!

+

We are back with new information on the current ARM64 topic.

+

Unfortunately, it’s not good news, as you might have guessed from the headline…

]]>
๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-10/ + 2023-10a (Released 12th October 2023)

+ Changelog

    +
  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • +
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)
  • +
+
+

+ 2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

+

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

+

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

+

This time it’s quite huge!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. -Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-open-beta/<p><strong>Moohoo everyone!</strong></p> -<p>No you are not dreaming, yes you are awake and no this is no joke:</p> -<p>mailcow&rsquo;s ARM64 support can now be tested in nightly as <strong>BETA</strong>!</p>๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-open-beta/Moohoo everyone!

+

No you are not dreaming, yes you are awake and no this is no joke:

+

mailcow’s ARM64 support can now be tested in nightly as BETA!

]]>
๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: -Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo everyone!</strong></p> -<p>With the mailcow update 2023-07, there&rsquo;s a somewhat significant change regarding Spamhaus DNS blocklists.</p> -<p>This blog post is here to provide information for those interested.</p>โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p>๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! -It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. -Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:</p> -<p><strong>mailcow gets ARM64 support</strong></p>๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-04/Update 2023-04a We&rsquo;ve just released a hotfix update for the 2023-04 update. -It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. -Update 2023-04 Moohoo everyone -It&rsquo;s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. -Let&rsquo;s get started: -SOGo has been updated to version 5.๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/ldap-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The time of waiting is over and many have shared their solution with us on the contact options below.</p> -<p>Today we finally have the pleasure to let it out into the world!</p>๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/letters-mystery/Moohoo everyone! -First of all, a big, big sorry for the long radio silence here. -We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of &ldquo;ONLY&rdquo; bug fixes, etc.. -But in this blogpost we would like to draw your attention to a mysterious thing:๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-01/Introduction Moohoo everyone! -The mailcow team is back with some exciting news about our beloved mailcow project! -But this time we are doing something a bit different than usual (at least here with the blog post entry) -As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. -So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?
\ No newline at end of file +Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.
\ No newline at end of file diff --git a/tags/2023/page/1/index.html b/tags/2023/page/1/index.html new file mode 100644 index 000000000..c1906caf6 --- /dev/null +++ b/tags/2023/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/2023/ + \ No newline at end of file diff --git a/tags/alpine/index.html b/tags/alpine/index.html new file mode 100644 index 000000000..81930acd5 --- /dev/null +++ b/tags/alpine/index.html @@ -0,0 +1,8 @@ +Alpine - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/alpine/index.xml b/tags/alpine/index.xml index b27faccfd..5eb33342b 100644 --- a/tags/alpine/index.xml +++ b/tags/alpine/index.xml @@ -1 +1 @@ -Alpine on mailcow: dockerized - Bloghttps://mailcow.email/tags/alpine/Recent content in Alpine on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Alpine - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/alpine/Alpine - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Authorhttps://mailcow.email/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="A small guide for installing mailcow on Alpine Linux" referrerpolicy="no-referrer"/></div>A small guide for installing mailcow on Alpine Linux \ No newline at end of file diff --git a/tags/alpine/page/1/index.html b/tags/alpine/page/1/index.html new file mode 100644 index 000000000..270d441df --- /dev/null +++ b/tags/alpine/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/alpine/ + \ No newline at end of file diff --git a/tags/arm64/index.html b/tags/arm64/index.html new file mode 100644 index 000000000..e7f89e651 --- /dev/null +++ b/tags/arm64/index.html @@ -0,0 +1,12 @@ +ARM64 - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/arm64/index.xml b/tags/arm64/index.xml index 6a7ad5404..5fd808592 100644 --- a/tags/arm64/index.xml +++ b/tags/arm64/index.xml @@ -1,14 +1,14 @@ -ARM64 on mailcow: dockerized - Bloghttps://mailcow.email/tags/arm64/Recent content in ARM64 on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-delay/<p><strong>Moohoo everyone!</strong></p> -<p>We are back with new information on the current ARM64 topic.</p> -<p>Unfortunately, it&rsquo;s not good news, as you might have guessed from the headline&hellip;</p>๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-open-beta/<p><strong>Moohoo everyone!</strong></p> -<p>No you are not dreaming, yes you are awake and no this is no joke:</p> -<p>mailcow&rsquo;s ARM64 support can now be tested in nightly as <strong>BETA</strong>!</p>๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +ARM64 - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/arm64/ARM64 - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 13 Oct 2023 08:00:00 +0200๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) development stagnates. Will no longer release as stable in 2023https://mailcow.email/posts/2023/arm64-delay/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-delay/Moohoo everyone!

+

We are back with new information on the current ARM64 topic.

+

Unfortunately, it’s not good news, as you might have guessed from the headline…

]]>
๐Ÿ’ช๐Ÿฎ6๏ธโƒฃ4๏ธโƒฃ mailcow: dockerized (ARM64) is now in open Beta (inside nightly builds)https://mailcow.email/posts/2023/arm64-open-beta/Fri, 04 Aug 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-open-beta/Moohoo everyone!

+

No you are not dreaming, yes you are awake and no this is no joke:

+

mailcow’s ARM64 support can now be tested in nightly as BETA!

]]>
๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: -Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! +Originally we announced to have mailcow ARM64 ready by June 2023. Obviously that didn&rsquo;t work out so well.๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/arm64-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:</p> -<p><strong>mailcow gets ARM64 support</strong></p>
\ No newline at end of file +Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.
๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcementhttps://mailcow.email/posts/2023/arm64-announcement/Mon, 08 May 2023 08:00:00 +0200Authorhttps://mailcow.email/posts/2023/arm64-announcement/๐Ÿ’ช๐Ÿฎ armcow64: dockerized (mailcow on ARM64) Announcement

Moohoo everyone!

+

The emerging hype about ARM64 has not left the mailcow team cold either and so it is a pleasure to say:

+

mailcow gets ARM64 support

]]>
\ No newline at end of file diff --git a/tags/arm64/page/1/index.html b/tags/arm64/page/1/index.html new file mode 100644 index 000000000..62e36ae1a --- /dev/null +++ b/tags/arm64/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/arm64/ + \ No newline at end of file diff --git a/tags/authentik/index.html b/tags/authentik/index.html new file mode 100644 index 000000000..80cdfd829 --- /dev/null +++ b/tags/authentik/index.html @@ -0,0 +1,8 @@ +authentik - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/authentik/index.xml b/tags/authentik/index.xml index c863ecdc3..e4edeeb9e 100644 --- a/tags/authentik/index.xml +++ b/tags/authentik/index.xml @@ -1,4 +1,4 @@ -authentik on mailcow: dockerized - Bloghttps://mailcow.email/tags/authentik/Recent content in authentik on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +authentik - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/authentik/authentik - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. diff --git a/tags/authentik/page/1/index.html b/tags/authentik/page/1/index.html new file mode 100644 index 000000000..86104c41a --- /dev/null +++ b/tags/authentik/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/authentik/ + \ No newline at end of file diff --git a/tags/bugfix/index.html b/tags/bugfix/index.html index a43a859f2..198c49838 100644 --- a/tags/bugfix/index.html +++ b/tags/bugfix/index.html @@ -1,256 +1,22 @@ - - - - - - - - bugfix - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
0% -
-
- +bugfix - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/bugfix/index.xml b/tags/bugfix/index.xml index 7f27b21ca..d68691ec4 100644 --- a/tags/bugfix/index.xml +++ b/tags/bugfix/index.xml @@ -1,56 +1,42 @@ -bugfix on mailcow: dockerized - Bloghttps://mailcow.email/tags/bugfix/Recent content in bugfix on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 12 Dec 2022 09:30:10 +0200๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! +bugfix - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/bugfix/bugfix - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 12 Dec 2022 09:30:10 +0200๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-11a/Moohoo everyone!

+

Due to the 2022-11a 2022-11b update, here are the changelogs of the 2022-11a 2022-11b update and the changes of the major version (2022-11).

+
+

Weยดve released 2022-11b already!

+
]]>
โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-10a/Moohoo everyone!

+

Yesterday (on 25th October 2022) weยดve released the 2022-10 update. +This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.

+

We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!

]]>
๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-09/ + 2022-09a (Release: 30th September 2022)

Changes:

+
    +
  • The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes CVE-2022-39261.
    +Attention: This CVE is not critical for all mailcow users but only serves to update the packages.
  • +
]]>
๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! A small but important update for or against the current SOGo Sieve/mail sending problems is here! We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! +Yeah&hellip; however, this bug should be fixed now.๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! Yeah, a August Update in September&hellip; kinda sus if you ask me! This time there are even some changes regarding the Update sources! So stay curious. Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! +Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200Authorhttps://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! +The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! +TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! Today we have put together a big fat update package for you again, which besides general container updates brings one big change: Docker Compose v2 support!!! But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! +Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200Authorhttps://mailcow.email/posts/2022/release-2022-05/2022-05cItยดs us again again! This time weยดve published the 2022-05c Update which is a very small one. It changed the API a bit again. This time for security reasons. Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c Stay healthy Niklas -2022-05b Itยดs us again! +2022-05bItยดs us again! Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! +As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100Authorhttps://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! The April update is here with a bunch of new stuff for your flawless E-Mail Flow. This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. -Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! -For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2.mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, -If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now. -Besides that, we also heavily reduced the map hammering with another change in the map generator. -Update time! -Andrรฉ
\ No newline at end of file +Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.
\ No newline at end of file diff --git a/tags/bugfix/page/1/index.html b/tags/bugfix/page/1/index.html index f49a307f5..a6f682f0f 100644 --- a/tags/bugfix/page/1/index.html +++ b/tags/bugfix/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/bugfix/ - - - - - - +https://mailcow.email/tags/bugfix/ + \ No newline at end of file diff --git a/tags/challenge/index.html b/tags/challenge/index.html new file mode 100644 index 000000000..39755fef5 --- /dev/null +++ b/tags/challenge/index.html @@ -0,0 +1,8 @@ +challenge - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/challenge/index.xml b/tags/challenge/index.xml index cf72ed88a..fad87f11e 100644 --- a/tags/challenge/index.xml +++ b/tags/challenge/index.xml @@ -1,4 +1,4 @@ -challenge on mailcow: dockerized - Bloghttps://mailcow.email/tags/challenge/Recent content in challenge on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/letters-mystery/Moohoo everyone! +challenge - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/challenge/challenge - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/letters-mystery/๐Ÿค” Have you seen these letters? - [Solved]Moohoo everyone! First of all, a big, big sorry for the long radio silence here. -We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of &ldquo;ONLY&rdquo; bug fixes, etc.. -But in this blogpost we would like to draw your attention to a mysterious thing: \ No newline at end of file +We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of “ONLY” bug fixes, etc.. +But in this blogpost we would like to draw your attention to a mysterious thing:]]> \ No newline at end of file diff --git a/tags/challenge/page/1/index.html b/tags/challenge/page/1/index.html new file mode 100644 index 000000000..a2a143f78 --- /dev/null +++ b/tags/challenge/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/challenge/ + \ No newline at end of file diff --git a/tags/changelog/index.html b/tags/changelog/index.html index 2a2496578..fcc619342 100644 --- a/tags/changelog/index.html +++ b/tags/changelog/index.html @@ -1,259 +1,26 @@ - - - - - - - - changelog - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
0% -
-
- +changelog - Tag - mailcow: dockerized - Blog +

changelog 28

2023

2022

0%
\ No newline at end of file diff --git a/tags/changelog/index.xml b/tags/changelog/index.xml index 457b6eafb..8a5d5682a 100644 --- a/tags/changelog/index.xml +++ b/tags/changelog/index.xml @@ -1,132 +1,69 @@ -changelog on mailcow: dockerized - Bloghttps://mailcow.email/tags/changelog/Recent content in changelog on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-12/<h2 id="2023-12a-release-29th-december-2023">2023-12a (Release 29th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-19th-december-2023">2023-12 (Release 19th December 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>We have some new Netfilter features for you before the holidays. -In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables <code>WATCHDOG_NOTIFY_WEBHOOK</code> and <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in <code>mailcow.conf</code> accordingly.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-11/<h2 id="2023-11a-release-07th-december-2023">2023-11a (Release 07th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-21st-november-2023">2023-11 (Release 21st November 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>The holiday season is slowly approaching, and here we are with another update at our doorstep.</p> -<p>First things first: It&rsquo;s advisable to update (especially if using Quarantine) due to a critical security patch.</p>๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-10/<h2 id="2023-10a-released-12th-october-2023">2023-10a (Released 12th October 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>We&rsquo;ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!</li> -<li>We&rsquo;ve removed the restart action from the <code>depends_on</code> section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-released-12th-october-2023">2023-10 (Released 12th October 2023)</h2> -<p><strong><del>Moo</del>Boo hoo everyone!</strong></p> -<p>It&rsquo;s spooky season again and we hope you&rsquo;re all ready to celebrate the Halloween season this year.</p> -<p>However mailcow is also delivering you with some treats (tricks &ldquo;sold&rdquo; seperately and not included in this update) regarding the stack.</p> -<p>This time it&rsquo;s quite huge!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +changelog - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/changelog/changelog - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/posts/2023/release-2023-12/ + 2023-12a (Release 29th December 2023)

+ Changelog

+
+

+ 2023-12 (Release 19th December 2023)

Moo hoo everyone!

+

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-11/ + 2023-11a (Release 07th December 2023)

+ Changelog

+
+

+ 2023-11 (Release 21st November 2023)

Moo hoo everyone!

+

The holiday season is slowly approaching, and here we are with another update at our doorstep.

+

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

]]>
๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-10/ + 2023-10a (Released 12th October 2023)

+ Changelog

    +
  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • +
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)
  • +
+
+

+ 2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

+

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

+

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

+

This time it’s quite huge!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-04/Update 2023-04a We&rsquo;ve just released a hotfix update for the 2023-04 update. +Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-04/๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision AUpdate 2023-04aWe’ve just released a hotfix update for the 2023-04 update. It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. -Update 2023-04 Moohoo everyone -It&rsquo;s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. -Let&rsquo;s get started: -SOGo has been updated to version 5.๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-01/Introduction Moohoo everyone! +Update 2023-04Moohoo everyone +It’s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. +Let’s get started: +SOGo has been updated to version 5.]]>๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-01/IntroductionMoohoo everyone! The mailcow team is back with some exciting news about our beloved mailcow project! But this time we are doing something a bit different than usual (at least here with the blog post entry) As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. -So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-12/Introduction Moohoo everyone! -To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! -As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. -Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10/<p><strong>Moohoo everyone!</strong></p> -<p>We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! -A small but important update for or against the current SOGo Sieve/mail sending problems is here! -We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. -For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! -Yeah, a August Update in September&hellip; kinda sus if you ask me! -This time there are even some changes regarding the Update sources! So stay curious. -Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! -We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). -Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) -Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! -It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01/Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn&rsquo;t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moovember2021/Moohoo everyone! -Niklas here to present you the latest news around our lovely mailcow :) -Let&rsquo;s get started, shall we? -Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. -Furthermore we introduce our new cold standby solution. -With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.
\ No newline at end of file +So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?
\ No newline at end of file diff --git a/tags/changelog/page/1/index.html b/tags/changelog/page/1/index.html index 00f670f8a..15e2152a8 100644 --- a/tags/changelog/page/1/index.html +++ b/tags/changelog/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/changelog/ - - - - - - +https://mailcow.email/tags/changelog/ + \ No newline at end of file diff --git a/tags/changelog/page/2/index.html b/tags/changelog/page/2/index.html new file mode 100644 index 000000000..3383f6011 --- /dev/null +++ b/tags/changelog/page/2/index.html @@ -0,0 +1,15 @@ +changelog - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/community/index.html b/tags/community/index.html new file mode 100644 index 000000000..6d7b0925d --- /dev/null +++ b/tags/community/index.html @@ -0,0 +1,8 @@ +community - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/community/index.xml b/tags/community/index.xml index ae69345d9..99e925351 100644 --- a/tags/community/index.xml +++ b/tags/community/index.xml @@ -1,4 +1,4 @@ -community on mailcow: dockerized - Bloghttps://mailcow.email/tags/community/Recent content in community on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/letters-mystery/Moohoo everyone! +community - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/community/community - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 28 Mar 2023 09:30:10 +0200๐Ÿค” Have you seen these letters? - [Solved]https://mailcow.email/posts/2023/letters-mystery/Tue, 28 Mar 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/letters-mystery/๐Ÿค” Have you seen these letters? - [Solved]Moohoo everyone! First of all, a big, big sorry for the long radio silence here. -We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of &ldquo;ONLY&rdquo; bug fixes, etc.. -But in this blogpost we would like to draw your attention to a mysterious thing: \ No newline at end of file +We have not forgotten the blog here and will also fill this again with content, probably once a month as a summary of what has happened with the updates, which now (actually) come more spontaneously and more often and with more innovations instead of “ONLY” bug fixes, etc.. +But in this blogpost we would like to draw your attention to a mysterious thing:]]> \ No newline at end of file diff --git a/tags/community/page/1/index.html b/tags/community/page/1/index.html new file mode 100644 index 000000000..52df9fd4f --- /dev/null +++ b/tags/community/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/community/ + \ No newline at end of file diff --git a/tags/cors/index.html b/tags/cors/index.html new file mode 100644 index 000000000..04ae9104f --- /dev/null +++ b/tags/cors/index.html @@ -0,0 +1,8 @@ +CORS - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/cors/index.xml b/tags/cors/index.xml index 9574a676d..3298fcdd5 100644 --- a/tags/cors/index.xml +++ b/tags/cors/index.xml @@ -1,2 +1,2 @@ -CORS on mailcow: dockerized - Bloghttps://mailcow.email/tags/cors/Recent content in CORS on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 10:48:10 +0200๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +CORS - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/cors/CORS - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 31 Jul 2023 10:48:10 +0200๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github. \ No newline at end of file diff --git a/tags/cors/page/1/index.html b/tags/cors/page/1/index.html new file mode 100644 index 000000000..e0288ad51 --- /dev/null +++ b/tags/cors/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/cors/ + \ No newline at end of file diff --git a/tags/cve/index.html b/tags/cve/index.html new file mode 100644 index 000000000..58500ed79 --- /dev/null +++ b/tags/cve/index.html @@ -0,0 +1,8 @@ +cve - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/cve/index.xml b/tags/cve/index.xml index d2cf3d70c..c164b5f89 100644 --- a/tags/cve/index.xml +++ b/tags/cve/index.xml @@ -1,3 +1,3 @@ -cve on mailcow: dockerized - Bloghttps://mailcow.email/tags/cve/Recent content in cve on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p> \ No newline at end of file +cve - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/cve/cve - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/cve-2023-34108/Moohoo everyone!

+

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

+

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

]]>
\ No newline at end of file diff --git a/tags/cve/page/1/index.html b/tags/cve/page/1/index.html new file mode 100644 index 000000000..86f40674b --- /dev/null +++ b/tags/cve/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/cve/ + \ No newline at end of file diff --git a/tags/dnsbl/index.html b/tags/dnsbl/index.html new file mode 100644 index 000000000..325028d46 --- /dev/null +++ b/tags/dnsbl/index.html @@ -0,0 +1,9 @@ +DNSBL - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/dnsbl/index.xml b/tags/dnsbl/index.xml index a36c5a4d4..17abf665c 100644 --- a/tags/dnsbl/index.xml +++ b/tags/dnsbl/index.xml @@ -1,6 +1,6 @@ -DNSBL on mailcow: dockerized - Bloghttps://mailcow.email/tags/dnsbl/Recent content in DNSBL on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +DNSBL - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/dnsbl/DNSBL - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenThu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github. \ No newline at end of file diff --git a/tags/dnsbl/page/1/index.html b/tags/dnsbl/page/1/index.html new file mode 100644 index 000000000..66491351b --- /dev/null +++ b/tags/dnsbl/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/dnsbl/ + \ No newline at end of file diff --git a/tags/docs/index.html b/tags/docs/index.html index 6c0730477..155fb1aef 100644 --- a/tags/docs/index.html +++ b/tags/docs/index.html @@ -1,221 +1,8 @@ - - - - - - - - docs - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +docs - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/docs/index.xml b/tags/docs/index.xml index b48c86bd5..ead1dd01f 100644 --- a/tags/docs/index.xml +++ b/tags/docs/index.xml @@ -1,4 +1,4 @@ -docs on mailcow: dockerized - Bloghttps://mailcow.email/tags/docs/Recent content in docs on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) +docs - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/docs/docs - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 04 Feb 2022 14:53:25 +0100๐Ÿ“˜New: The mailcow Docs now also speak German! ๐Ÿ“˜ - mailcow Docs 2.0 Release Noteshttps://mailcow.email/posts/2022/docs-update-2.0/Fri, 04 Feb 2022 14:53:25 +0100Authorhttps://mailcow.email/posts/2022/docs-update-2.0/Moohoo everyone! It&rsquo;s Friday then Then Saturday, Sunday (what?) We have an exciting news to share with you! We present you the newly released mailcow: dockerized Docs 2.0! Not much may have changed at first glance (you would think) but under the hood a lot has changed! diff --git a/tags/docs/page/1/index.html b/tags/docs/page/1/index.html index fa7617de3..1b49879af 100644 --- a/tags/docs/page/1/index.html +++ b/tags/docs/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/docs/ - - - - - - +https://mailcow.email/tags/docs/ + \ No newline at end of file diff --git a/tags/dqs/index.html b/tags/dqs/index.html new file mode 100644 index 000000000..b3d2747b4 --- /dev/null +++ b/tags/dqs/index.html @@ -0,0 +1,8 @@ +DQS - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/dqs/index.xml b/tags/dqs/index.xml index e9761c63f..d64b05681 100644 --- a/tags/dqs/index.xml +++ b/tags/dqs/index.xml @@ -1,4 +1,4 @@ -DQS on mailcow: dockerized - Bloghttps://mailcow.email/tags/dqs/Recent content in DQS on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +DQS - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/dqs/DQS - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenThu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. diff --git a/tags/dqs/page/1/index.html b/tags/dqs/page/1/index.html new file mode 100644 index 000000000..4dec38451 --- /dev/null +++ b/tags/dqs/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/dqs/ + \ No newline at end of file diff --git a/tags/faq/index.html b/tags/faq/index.html new file mode 100644 index 000000000..cfbcdd9c3 --- /dev/null +++ b/tags/faq/index.html @@ -0,0 +1,8 @@ +faq - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/faq/index.xml b/tags/faq/index.xml index f27cb46bd..d58472599 100644 --- a/tags/faq/index.xml +++ b/tags/faq/index.xml @@ -1,4 +1,4 @@ -faq on mailcow: dockerized - Bloghttps://mailcow.email/tags/faq/Recent content in faq on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +faq - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/faq/faq - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: diff --git a/tags/faq/page/1/index.html b/tags/faq/page/1/index.html new file mode 100644 index 000000000..d063db0ef --- /dev/null +++ b/tags/faq/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/faq/ + \ No newline at end of file diff --git a/tags/feedback/index.html b/tags/feedback/index.html index b9e7834ee..b5c564c61 100644 --- a/tags/feedback/index.html +++ b/tags/feedback/index.html @@ -1,223 +1,8 @@ - - - - - - - - feedback - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +feedback - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/feedback/index.xml b/tags/feedback/index.xml index 16e498e52..aa18c932e 100644 --- a/tags/feedback/index.xml +++ b/tags/feedback/index.xml @@ -1,4 +1,4 @@ -feedback on mailcow: dockerized - Bloghttps://mailcow.email/tags/feedback/Recent content in feedback on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know! \ No newline at end of file +feedback - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/feedback/feedback - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/nightly-tests-bs5/Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!]]> \ No newline at end of file diff --git a/tags/feedback/page/1/index.html b/tags/feedback/page/1/index.html index a477a2427..9f383cbca 100644 --- a/tags/feedback/page/1/index.html +++ b/tags/feedback/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/feedback/ - - - - - - +https://mailcow.email/tags/feedback/ + \ No newline at end of file diff --git a/tags/hotfix/index.html b/tags/hotfix/index.html index 2673191f0..d5828cf44 100644 --- a/tags/hotfix/index.html +++ b/tags/hotfix/index.html @@ -1,226 +1,12 @@ - - - - - - - - hotfix - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +hotfix - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/hotfix/index.xml b/tags/hotfix/index.xml index 08d778381..7866a578d 100644 --- a/tags/hotfix/index.xml +++ b/tags/hotfix/index.xml @@ -1,17 +1,17 @@ -hotfix on mailcow: dockerized - Bloghttps://mailcow.email/tags/hotfix/Recent content in hotfix on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +hotfix - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/hotfix/hotfix - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Authorhttps://mailcow.email/posts/2022/release-2022-05d/Hello all, Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. It is strongly recommended to install the update as soon as possible to prevent exploitation. As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. +The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100Authorhttps://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.
\ No newline at end of file diff --git a/tags/hotfix/page/1/index.html b/tags/hotfix/page/1/index.html index 1233fb976..92f9d070b 100644 --- a/tags/hotfix/page/1/index.html +++ b/tags/hotfix/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/hotfix/ - - - - - - +https://mailcow.email/tags/hotfix/ + \ No newline at end of file diff --git a/tags/identity-provider/index.html b/tags/identity-provider/index.html new file mode 100644 index 000000000..f5f7cec55 --- /dev/null +++ b/tags/identity-provider/index.html @@ -0,0 +1,8 @@ +identity provider - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/identity-provider/index.xml b/tags/identity-provider/index.xml index 888059bd8..dededd097 100644 --- a/tags/identity-provider/index.xml +++ b/tags/identity-provider/index.xml @@ -1,4 +1,4 @@ -identity provider on mailcow: dockerized - Bloghttps://mailcow.email/tags/identity-provider/Recent content in identity provider on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +identity provider - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/identity-provider/identity provider - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. diff --git a/tags/identity-provider/page/1/index.html b/tags/identity-provider/page/1/index.html new file mode 100644 index 000000000..66e3a703f --- /dev/null +++ b/tags/identity-provider/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/identity-provider/ + \ No newline at end of file diff --git a/tags/important/index.html b/tags/important/index.html index 1dee5de8d..63688c76c 100644 --- a/tags/important/index.html +++ b/tags/important/index.html @@ -1,224 +1,12 @@ - - - - - - - - important - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +important - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/important/index.xml b/tags/important/index.xml index b95e93bc9..64a8d567d 100644 --- a/tags/important/index.xml +++ b/tags/important/index.xml @@ -1,16 +1,16 @@ -important on mailcow: dockerized - Bloghttps://mailcow.email/tags/important/Recent content in important on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p>๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, +important - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/important/important - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/cve-2023-34108/Moohoo everyone!

+

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

+

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

]]>
๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200Authorhttps://mailcow.email/posts/2022/release-2022-09/ + 2022-09a (Release: 30th September 2022)

Changes:

+
    +
  • The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes CVE-2022-39261.
    +Attention: This CVE is not critical for all mailcow users but only serves to update the packages.
  • +
]]>
โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Authorhttps://mailcow.email/posts/2022/release-2022-05d/Hello all, Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. It is strongly recommended to install the update as soon as possible to prevent exploitation. As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. +The update does not remove any important functionality from mailcow or IMAPSYNC!โš ๏ธ Important Information about the 2022-04 Update โš ๏ธhttps://mailcow.email/posts/2022/2022-04-info/Wed, 06 Apr 2022 10:01:00 +0100Authorhttps://mailcow.email/posts/2022/2022-04-info/Yesterday we released the 2022-04 update (Moopril) which included a change in the NGINX configuration. During the same day we received a message that SOGo would not work since the update, more precisely the login. So we released an update yesterday evening around 23:00 (German summertime) which solves this problem in most cases. Please update your mailcow via the update.sh Script as soon as possible to use SOGo as usual again.
\ No newline at end of file diff --git a/tags/important/page/1/index.html b/tags/important/page/1/index.html index 942f7dfbf..ee00f87fa 100644 --- a/tags/important/page/1/index.html +++ b/tags/important/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/important/ - - - - - - +https://mailcow.email/tags/important/ + \ No newline at end of file diff --git a/tags/index.html b/tags/index.html index 00bdb080e..f56380a0d 100644 --- a/tags/index.html +++ b/tags/index.html @@ -1,221 +1,7 @@ - - - - - - - - All Tags - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +All Tags - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/index.xml b/tags/index.xml index fac301919..68a951750 100644 --- a/tags/index.xml +++ b/tags/index.xml @@ -1 +1 @@ -Tags on mailcow: dockerized - Bloghttps://mailcow.email/tags/Recent content in Tags on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +02002023https://mailcow.email/tags/2023/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/2023/changeloghttps://mailcow.email/tags/changelog/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/changelog/updatehttps://mailcow.email/tags/update/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/update/ARM64https://mailcow.email/tags/arm64/Fri, 13 Oct 2023 08:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/arm64/hotfixhttps://mailcow.email/tags/hotfix/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/hotfix/SOGohttps://mailcow.email/tags/sogo/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/sogo/authentikhttps://mailcow.email/tags/authentik/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/authentik/identity providerhttps://mailcow.email/tags/identity-provider/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/identity-provider/keycloakhttps://mailcow.email/tags/keycloak/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/keycloak/LDAPhttps://mailcow.email/tags/ldap/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/ldap/nightlyhttps://mailcow.email/tags/nightly/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/nightly/oidchttps://mailcow.email/tags/oidc/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/oidc/single sign onhttps://mailcow.email/tags/single-sign-on/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/single-sign-on/ssohttps://mailcow.email/tags/sso/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/sso/DNSBLhttps://mailcow.email/tags/dnsbl/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/dnsbl/DQShttps://mailcow.email/tags/dqs/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/dqs/Spamhaushttps://mailcow.email/tags/spamhaus/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/spamhaus/CORShttps://mailcow.email/tags/cors/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/cors/faqhttps://mailcow.email/tags/faq/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/faq/newshttps://mailcow.email/tags/news/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/news/statushttps://mailcow.email/tags/status/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/status/infohttps://mailcow.email/tags/info/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/info/cvehttps://mailcow.email/tags/cve/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/cve/importanthttps://mailcow.email/tags/important/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/important/securityhttps://mailcow.email/tags/security/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/security/Performancehttps://mailcow.email/tags/performance/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/performance/challengehttps://mailcow.email/tags/challenge/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/challenge/communityhttps://mailcow.email/tags/community/Tue, 28 Mar 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/community/2022https://mailcow.email/tags/2022/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/2022/bugfixhttps://mailcow.email/tags/bugfix/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/bugfix/Alpinehttps://mailcow.email/tags/alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/alpine/Installationhttps://mailcow.email/tags/installation/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/installation/Tutorialhttps://mailcow.email/tags/tutorial/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/tutorial/feedbackhttps://mailcow.email/tags/feedback/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/feedback/testinghttps://mailcow.email/tags/testing/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/tags/testing/docshttps://mailcow.email/tags/docs/Fri, 04 Feb 2022 14:53:25 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/docs/social mediahttps://mailcow.email/tags/social-media/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/social-media/2021https://mailcow.email/tags/2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/2021/log4jhttps://mailcow.email/tags/log4j/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/log4j/recommendationshttps://mailcow.email/tags/recommendations/Wed, 29 Sep 2021 20:13:47 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/recommendations/memoryleakhttps://mailcow.email/tags/memoryleak/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/tags/memoryleak/ \ No newline at end of file +Tags - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/Tags - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +02002023https://mailcow.email/tags/2023/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/tags/2023/changeloghttps://mailcow.email/tags/changelog/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/tags/changelog/updatehttps://mailcow.email/tags/update/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/tags/update/ARM64https://mailcow.email/tags/arm64/Fri, 13 Oct 2023 08:00:00 +0200Authorhttps://mailcow.email/tags/arm64/hotfixhttps://mailcow.email/tags/hotfix/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/tags/hotfix/SOGohttps://mailcow.email/tags/sogo/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/tags/sogo/authentikhttps://mailcow.email/tags/authentik/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/tags/authentik/identity providerhttps://mailcow.email/tags/identity-provider/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/tags/identity-provider/keycloakhttps://mailcow.email/tags/keycloak/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/tags/keycloak/LDAPhttps://mailcow.email/tags/ldap/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/tags/ldap/ \ No newline at end of file diff --git a/tags/info/index.html b/tags/info/index.html new file mode 100644 index 000000000..274c63dad --- /dev/null +++ b/tags/info/index.html @@ -0,0 +1,8 @@ +info - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/info/index.xml b/tags/info/index.xml index 03a4e8081..42574094c 100644 --- a/tags/info/index.xml +++ b/tags/info/index.xml @@ -1,3 +1,3 @@ -info on mailcow: dockerized - Bloghttps://mailcow.email/tags/info/Recent content in info on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/spamhaus-dnsblocklist/<p><strong>Moohoo everyone!</strong></p> -<p>With the mailcow update 2023-07, there&rsquo;s a somewhat significant change regarding Spamhaus DNS blocklists.</p> -<p>This blog post is here to provide information for those interested.</p> \ No newline at end of file +info - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/info/info - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 28 Jul 2023 16:00:10 +0200๐Ÿ›‘๐Ÿ“œ Spamhaus DNS Blocklist changes since 2023-07https://mailcow.email/posts/2023/spamhaus-dnsblocklist/Fri, 28 Jul 2023 16:00:10 +0200Authorhttps://mailcow.email/posts/2023/spamhaus-dnsblocklist/Moohoo everyone!

+

With the mailcow update 2023-07, there’s a somewhat significant change regarding Spamhaus DNS blocklists.

+

This blog post is here to provide information for those interested.

]]>
\ No newline at end of file diff --git a/tags/info/page/1/index.html b/tags/info/page/1/index.html new file mode 100644 index 000000000..8c07c9d7c --- /dev/null +++ b/tags/info/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/info/ + \ No newline at end of file diff --git a/tags/installation/index.html b/tags/installation/index.html new file mode 100644 index 000000000..75659f6c0 --- /dev/null +++ b/tags/installation/index.html @@ -0,0 +1,8 @@ +Installation - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/installation/index.xml b/tags/installation/index.xml index 21bd4a2c6..4b57c8455 100644 --- a/tags/installation/index.xml +++ b/tags/installation/index.xml @@ -1 +1 @@ -Installation on mailcow: dockerized - Bloghttps://mailcow.email/tags/installation/Recent content in Installation on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Installation - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/installation/Installation - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Authorhttps://mailcow.email/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="A small guide for installing mailcow on Alpine Linux" referrerpolicy="no-referrer"/></div>A small guide for installing mailcow on Alpine Linux \ No newline at end of file diff --git a/tags/installation/page/1/index.html b/tags/installation/page/1/index.html new file mode 100644 index 000000000..43d6cbff9 --- /dev/null +++ b/tags/installation/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/installation/ + \ No newline at end of file diff --git a/tags/keycloak/index.html b/tags/keycloak/index.html new file mode 100644 index 000000000..a83852495 --- /dev/null +++ b/tags/keycloak/index.html @@ -0,0 +1,8 @@ +keycloak - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/keycloak/index.xml b/tags/keycloak/index.xml index 005f91972..f707a7dff 100644 --- a/tags/keycloak/index.xml +++ b/tags/keycloak/index.xml @@ -1,4 +1,4 @@ -keycloak on mailcow: dockerized - Bloghttps://mailcow.email/tags/keycloak/Recent content in keycloak on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +keycloak - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/keycloak/keycloak - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. diff --git a/tags/keycloak/page/1/index.html b/tags/keycloak/page/1/index.html new file mode 100644 index 000000000..4e95892d3 --- /dev/null +++ b/tags/keycloak/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/keycloak/ + \ No newline at end of file diff --git a/tags/ldap/index.html b/tags/ldap/index.html new file mode 100644 index 000000000..052dab8b7 --- /dev/null +++ b/tags/ldap/index.html @@ -0,0 +1,9 @@ +LDAP - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/ldap/index.xml b/tags/ldap/index.xml index aac99f19c..60812a108 100644 --- a/tags/ldap/index.xml +++ b/tags/ldap/index.xml @@ -1,7 +1,7 @@ -LDAP on mailcow: dockerized - Bloghttps://mailcow.email/tags/ldap/Recent content in LDAP on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +LDAP - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/ldap/LDAP - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. -Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/ldap-announcement/<p><strong>Moohoo everyone!</strong></p> -<p>The time of waiting is over and many have shared their solution with us on the contact options below.</p> -<p>Today we finally have the pleasure to let it out into the world!</p> \ No newline at end of file +Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.๐Ÿฎ๐Ÿค LDAP is real and is coming 2023https://mailcow.email/posts/2023/ldap-announcement/Fri, 31 Mar 2023 11:00:00 +0200Authorhttps://mailcow.email/posts/2023/ldap-announcement/Moohoo everyone!

+

The time of waiting is over and many have shared their solution with us on the contact options below.

+

Today we finally have the pleasure to let it out into the world!

]]>
\ No newline at end of file diff --git a/tags/ldap/page/1/index.html b/tags/ldap/page/1/index.html new file mode 100644 index 000000000..3a18a3f82 --- /dev/null +++ b/tags/ldap/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/ldap/ + \ No newline at end of file diff --git a/tags/log4j/index.html b/tags/log4j/index.html index 2d66a0e0f..0757324a1 100644 --- a/tags/log4j/index.html +++ b/tags/log4j/index.html @@ -1,223 +1,8 @@ - - - - - - - - log4j - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +log4j - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/log4j/index.xml b/tags/log4j/index.xml index 3b022d973..404240b6d 100644 --- a/tags/log4j/index.xml +++ b/tags/log4j/index.xml @@ -1,3 +1,3 @@ -log4j on mailcow: dockerized - Bloghttps://mailcow.email/tags/log4j/Recent content in log4j on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. +log4j - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/log4j/log4j - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 13 Dec 2021 08:49:44 +0100โš ๏ธ Important informations about log4j exploit โš ๏ธhttps://mailcow.email/posts/2021/log4j-dec2021/Mon, 13 Dec 2021 08:49:44 +0100Authorhttps://mailcow.email/posts/2021/log4j-dec2021/Moohoo everyone! Due to the recent accidents regarding the Java library log4j we would like to inform you, that your mailcow is NOT affected directly by this. Yes, it is true, that the Solr Container is a Java application which is affected by the log4j security breach. BUT solr is NOT accessible from the outside of the mailcow stack! For those who are worried we released a Solr Hotfix which is fixing the log4j issue with the simple flag +EXTRA_ARGS+=('-Dlog4j2. \ No newline at end of file diff --git a/tags/log4j/page/1/index.html b/tags/log4j/page/1/index.html index 9138654c6..8fd071ebd 100644 --- a/tags/log4j/page/1/index.html +++ b/tags/log4j/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/log4j/ - - - - - - +https://mailcow.email/tags/log4j/ + \ No newline at end of file diff --git a/tags/memoryleak/index.html b/tags/memoryleak/index.html index 96f7a5ee2..b799e7b3a 100644 --- a/tags/memoryleak/index.html +++ b/tags/memoryleak/index.html @@ -1,223 +1,8 @@ - - - - - - - - memoryleak - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +memoryleak - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/memoryleak/index.xml b/tags/memoryleak/index.xml index 67d191655..03a0e5a83 100644 --- a/tags/memoryleak/index.xml +++ b/tags/memoryleak/index.xml @@ -1,4 +1,4 @@ -memoryleak on mailcow: dockerized - Bloghttps://mailcow.email/tags/memoryleak/Recent content in memoryleak on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 02 Sep 2021 20:19:57 +0100mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, +memoryleak - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/memoryleak/memoryleak - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenThu, 02 Sep 2021 20:19:57 +0100mailcows updated between 25th August and 2nd September 2021 should be updated againhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Thu, 02 Sep 2021 20:19:57 +0100Authorhttps://mailcow.email/posts/2021/rspamd_memleak_sep2021/Hi, If you updated your mailcow between 25th August and 2nd September 2021 you most likely encounter a settings map memory leak in Rspamd that was fixed just now. Besides that, we also heavily reduced the map hammering with another change in the map generator. Update time! diff --git a/tags/memoryleak/page/1/index.html b/tags/memoryleak/page/1/index.html index 9601833be..892ec1987 100644 --- a/tags/memoryleak/page/1/index.html +++ b/tags/memoryleak/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/memoryleak/ - - - - - - +https://mailcow.email/tags/memoryleak/ + \ No newline at end of file diff --git a/tags/news/index.html b/tags/news/index.html new file mode 100644 index 000000000..7344e6040 --- /dev/null +++ b/tags/news/index.html @@ -0,0 +1,8 @@ +news - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/news/index.xml b/tags/news/index.xml index 1a939b631..b13d15153 100644 --- a/tags/news/index.xml +++ b/tags/news/index.xml @@ -1,4 +1,4 @@ -news on mailcow: dockerized - Bloghttps://mailcow.email/tags/news/Recent content in news on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +news - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/news/news - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: diff --git a/tags/news/page/1/index.html b/tags/news/page/1/index.html new file mode 100644 index 000000000..7bd216417 --- /dev/null +++ b/tags/news/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/news/ + \ No newline at end of file diff --git a/tags/nightly/index.html b/tags/nightly/index.html index 463c28b4c..8d77615d6 100644 --- a/tags/nightly/index.html +++ b/tags/nightly/index.html @@ -1,223 +1,9 @@ - - - - - - - - nightly - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +nightly - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/nightly/index.xml b/tags/nightly/index.xml index a84ee818d..110aef37e 100644 --- a/tags/nightly/index.xml +++ b/tags/nightly/index.xml @@ -1,8 +1,8 @@ -nightly on mailcow: dockerized - Bloghttps://mailcow.email/tags/nightly/Recent content in nightly on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +nightly - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/nightly/nightly - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. -Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know! \ No newline at end of file +Let&rsquo;s talk about what has changed, what we had in mind, and what we plan to add in the future. Of course, we will also show you how to use the new feature.Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/nightly-tests-bs5/Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!]]> \ No newline at end of file diff --git a/tags/nightly/page/1/index.html b/tags/nightly/page/1/index.html index 131448647..5b18f97e6 100644 --- a/tags/nightly/page/1/index.html +++ b/tags/nightly/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/nightly/ - - - - - - +https://mailcow.email/tags/nightly/ + \ No newline at end of file diff --git a/tags/oidc/index.html b/tags/oidc/index.html new file mode 100644 index 000000000..50c02fe74 --- /dev/null +++ b/tags/oidc/index.html @@ -0,0 +1,8 @@ +oidc - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/oidc/index.xml b/tags/oidc/index.xml index 9210a251e..98d045f7e 100644 --- a/tags/oidc/index.xml +++ b/tags/oidc/index.xml @@ -1,4 +1,4 @@ -oidc on mailcow: dockerized - Bloghttps://mailcow.email/tags/oidc/Recent content in oidc on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +oidc - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/oidc/oidc - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. diff --git a/tags/oidc/page/1/index.html b/tags/oidc/page/1/index.html new file mode 100644 index 000000000..a73c7677c --- /dev/null +++ b/tags/oidc/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/oidc/ + \ No newline at end of file diff --git a/tags/performance/index.html b/tags/performance/index.html new file mode 100644 index 000000000..602b614a3 --- /dev/null +++ b/tags/performance/index.html @@ -0,0 +1,8 @@ +Performance - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/performance/index.xml b/tags/performance/index.xml index c6580f922..64c920fc3 100644 --- a/tags/performance/index.xml +++ b/tags/performance/index.xml @@ -1,4 +1,4 @@ -Performance on mailcow: dockerized - Bloghttps://mailcow.email/tags/performance/Recent content in Performance on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 25 May 2023 09:30:10 +0200๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! +Performance - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/performance/Performance - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenThu, 25 May 2023 09:30:10 +0200๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. Let&rsquo;s go: Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs. \ No newline at end of file diff --git a/tags/performance/page/1/index.html b/tags/performance/page/1/index.html new file mode 100644 index 000000000..8628a0bb6 --- /dev/null +++ b/tags/performance/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/performance/ + \ No newline at end of file diff --git a/tags/recommendations/index.html b/tags/recommendations/index.html index 3a1bec431..82359ac05 100644 --- a/tags/recommendations/index.html +++ b/tags/recommendations/index.html @@ -1,223 +1,8 @@ - - - - - - - - recommendations - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-

- recommendations 1

2021

0% -
-
- +recommendations - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/recommendations/index.xml b/tags/recommendations/index.xml index c8c97ed41..2a0ee7080 100644 --- a/tags/recommendations/index.xml +++ b/tags/recommendations/index.xml @@ -1,4 +1,4 @@ -recommendations on mailcow: dockerized - Bloghttps://mailcow.email/tags/recommendations/Recent content in recommendations on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 29 Sep 2021 20:13:47 +0100From Peru with moo!https://mailcow.email/posts/2021/xubium_recommend/Wed, 29 Sep 2021 20:13:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/xubium_recommend/Dear cows, +recommendations - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/recommendations/recommendations - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 29 Sep 2021 20:13:47 +0100From Peru with moo!https://mailcow.email/posts/2021/xubium_recommend/Wed, 29 Sep 2021 20:13:47 +0100Authorhttps://mailcow.email/posts/2021/xubium_recommend/Dear cows, For organizations in Spanish-speaking countries I would recommend you check out Xubium. They are a Latin-American company with expertise in mailcow that works with our infrastructure and support to provide a fully managed email service to medium and small businesses. Xubium is an amazing company to work with, it has our recommendation by all means. \ No newline at end of file diff --git a/tags/recommendations/page/1/index.html b/tags/recommendations/page/1/index.html index a43b278f6..ad1a64920 100644 --- a/tags/recommendations/page/1/index.html +++ b/tags/recommendations/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/recommendations/ - - - - - - +https://mailcow.email/tags/recommendations/ + \ No newline at end of file diff --git a/tags/security/index.html b/tags/security/index.html index 4ce0617ed..74ef4e497 100644 --- a/tags/security/index.html +++ b/tags/security/index.html @@ -1,223 +1,10 @@ - - - - - - - - security - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +security - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/security/index.xml b/tags/security/index.xml index a2f81d7d6..06dd2a410 100644 --- a/tags/security/index.xml +++ b/tags/security/index.xml @@ -1,8 +1,8 @@ -security on mailcow: dockerized - Bloghttps://mailcow.email/tags/security/Recent content in security on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/cve-2023-34108/<p><strong>Moohoo everyone!</strong></p> -<p>As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.</p> -<p>If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.</p>๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, +security - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/security/security - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 07 Jun 2023 09:30:10 +0200โš ๏ธ CVE-2023-34108 : Manipulation of Internal Dovecot Variables in mailcow via crafted Passwords โš ๏ธhttps://mailcow.email/posts/2023/cve-2023-34108/Wed, 07 Jun 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/cve-2023-34108/Moohoo everyone!

+

As announced in the last blog entry (dated 30.05.2023), here is the detailed CVE for security patch 2023-05a.

+

If you have not yet updated, you should do so as soon as possible, because an exploit is now publicly available on the Internet that could be exploited by authenticated users on your mail server.

]]>
๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200Authorhttps://mailcow.email/posts/2022/release-2022-05d/Hello all, Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. It is strongly recommended to install the update as soon as possible to prevent exploitation. As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d diff --git a/tags/security/page/1/index.html b/tags/security/page/1/index.html index 9ee09ccac..a7909a487 100644 --- a/tags/security/page/1/index.html +++ b/tags/security/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/security/ - - - - - - +https://mailcow.email/tags/security/ + \ No newline at end of file diff --git a/tags/single-sign-on/index.html b/tags/single-sign-on/index.html new file mode 100644 index 000000000..dab5d2a9a --- /dev/null +++ b/tags/single-sign-on/index.html @@ -0,0 +1,8 @@ +single sign on - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/single-sign-on/index.xml b/tags/single-sign-on/index.xml index 3ddead869..ccfeb56d7 100644 --- a/tags/single-sign-on/index.xml +++ b/tags/single-sign-on/index.xml @@ -1,4 +1,4 @@ -single sign on on mailcow: dockerized - Bloghttps://mailcow.email/tags/single-sign-on/Recent content in single sign on on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +single sign on - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/single-sign-on/single sign on - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. diff --git a/tags/single-sign-on/page/1/index.html b/tags/single-sign-on/page/1/index.html new file mode 100644 index 000000000..6dbd1f9f1 --- /dev/null +++ b/tags/single-sign-on/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/single-sign-on/ + \ No newline at end of file diff --git a/tags/social-media/index.html b/tags/social-media/index.html index 16d947ba8..9dacbc159 100644 --- a/tags/social-media/index.html +++ b/tags/social-media/index.html @@ -1,223 +1,8 @@ - - - - - - - - social media - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +social media - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/social-media/index.xml b/tags/social-media/index.xml index 813d8de11..746da53b1 100644 --- a/tags/social-media/index.xml +++ b/tags/social-media/index.xml @@ -1,5 +1,5 @@ -social media on mailcow: dockerized - Bloghttps://mailcow.email/tags/social-media/Recent content in social media on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 24 Jan 2022 12:33:09 +0100Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-twitter/Moohoo everyone! +social media - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/social-media/social media - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 24 Jan 2022 12:33:09 +0100Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!https://mailcow.email/posts/2022/mailcow-twitter/Mon, 24 Jan 2022 12:33:09 +0100Authorhttps://mailcow.email/posts/2022/mailcow-twitter/Is it a ๐Ÿฆ? Is it a โœˆ๏ธ? No it's the mailcow on Twitter!Moohoo everyone! Our dear mailcow has taken the plunge into social media: Twitter! There she will provide you with new release information or small hints about possible new features as well as general information about the mailcow project. Of course you can also tweet about your experiences with mailcow. Just use the Twitter handle: @mailcow_email. -We look forward to getting in touch with you there and keeping you up to date. \ No newline at end of file +We look forward to getting in touch with you there and keeping you up to date.]]> \ No newline at end of file diff --git a/tags/social-media/page/1/index.html b/tags/social-media/page/1/index.html index 21691ade1..4d6aff734 100644 --- a/tags/social-media/page/1/index.html +++ b/tags/social-media/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/social-media/ - - - - - - +https://mailcow.email/tags/social-media/ + \ No newline at end of file diff --git a/tags/sogo/index.html b/tags/sogo/index.html new file mode 100644 index 000000000..2b7ce76a9 --- /dev/null +++ b/tags/sogo/index.html @@ -0,0 +1,8 @@ +SOGo - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/sogo/index.xml b/tags/sogo/index.xml index dbac64661..7b7841677 100644 --- a/tags/sogo/index.xml +++ b/tags/sogo/index.xml @@ -1,4 +1,4 @@ -SOGo on mailcow: dockerized - Bloghttps://mailcow.email/tags/sogo/Recent content in SOGo on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +SOGo - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/sogo/SOGo - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 29 Sep 2023 11:11:32 +0200๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 diff --git a/tags/sogo/page/1/index.html b/tags/sogo/page/1/index.html new file mode 100644 index 000000000..a4584353b --- /dev/null +++ b/tags/sogo/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/sogo/ + \ No newline at end of file diff --git a/tags/spamhaus/index.html b/tags/spamhaus/index.html new file mode 100644 index 000000000..d892bb673 --- /dev/null +++ b/tags/spamhaus/index.html @@ -0,0 +1,9 @@ +Spamhaus - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/spamhaus/index.xml b/tags/spamhaus/index.xml index 2c9825231..cafd95443 100644 --- a/tags/spamhaus/index.xml +++ b/tags/spamhaus/index.xml @@ -1,6 +1,6 @@ -Spamhaus on mailcow: dockerized - Bloghttps://mailcow.email/tags/spamhaus/Recent content in Spamhaus on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Thu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +Spamhaus - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/spamhaus/Spamhaus - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenThu, 03 Aug 2023 11:11:32 +0200๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github. \ No newline at end of file diff --git a/tags/spamhaus/page/1/index.html b/tags/spamhaus/page/1/index.html new file mode 100644 index 000000000..774f81b8c --- /dev/null +++ b/tags/spamhaus/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/spamhaus/ + \ No newline at end of file diff --git a/tags/sso/index.html b/tags/sso/index.html new file mode 100644 index 000000000..aa2ddd2a6 --- /dev/null +++ b/tags/sso/index.html @@ -0,0 +1,8 @@ +sso - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/sso/index.xml b/tags/sso/index.xml index 5e32a4195..5478aa455 100644 --- a/tags/sso/index.xml +++ b/tags/sso/index.xml @@ -1,4 +1,4 @@ -sso on mailcow: dockerized - Bloghttps://mailcow.email/tags/sso/Recent content in sso on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Wed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! +sso - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/sso/sso - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenWed, 09 Aug 2023 10:24:31 +0200๐Ÿ”’๐Ÿ”‘ External Identity Providers for User authenticationhttps://mailcow.email/posts/2023/mailcow-idp/Wed, 09 Aug 2023 10:24:31 +0200Authorhttps://mailcow.email/posts/2023/mailcow-idp/Moohoo - Good News, everyone! With the Nightly Branch, it is now possible to use an external Identity Provider as an additional authentication source. mailcow utilizes the OIDC (OpenID Connect) protocol to authenticate only mailbox users. To enable this, we have made some changes to the way authentication works. diff --git a/tags/sso/page/1/index.html b/tags/sso/page/1/index.html new file mode 100644 index 000000000..5029dec32 --- /dev/null +++ b/tags/sso/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/sso/ + \ No newline at end of file diff --git a/tags/status/index.html b/tags/status/index.html new file mode 100644 index 000000000..440fdb6ae --- /dev/null +++ b/tags/status/index.html @@ -0,0 +1,8 @@ +status - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/status/index.xml b/tags/status/index.xml index a1c0eff2a..7f7244d45 100644 --- a/tags/status/index.xml +++ b/tags/status/index.xml @@ -1,4 +1,4 @@ -status on mailcow: dockerized - Bloghttps://mailcow.email/tags/status/Recent content in status on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Mon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/whats-up-arm64/Moohoo everyone! +status - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/status/status - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenMon, 31 Jul 2023 09:15:10 +0200๐Ÿค”๐Ÿฎ What's up? - ARM64 Integrationhttps://mailcow.email/posts/whats-up-arm64/Mon, 31 Jul 2023 09:15:10 +0200Authorhttps://mailcow.email/posts/whats-up-arm64/Moohoo everyone! It has been more than a month since you heard from us and today we have a shadowdrop as an update. Since we have a few things to discuss and want to communicate directly in the future, we came up with a section called What&rsquo;s up?. Today we start with the first topic, namely ARM64: diff --git a/tags/status/page/1/index.html b/tags/status/page/1/index.html new file mode 100644 index 000000000..61ad284fa --- /dev/null +++ b/tags/status/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/status/ + \ No newline at end of file diff --git a/tags/testing/index.html b/tags/testing/index.html index afb63e54e..85c45f57b 100644 --- a/tags/testing/index.html +++ b/tags/testing/index.html @@ -1,223 +1,8 @@ - - - - - - - - testing - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
0% -
-
- +testing - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/testing/index.xml b/tags/testing/index.xml index 33cb3567f..3e07af0be 100644 --- a/tags/testing/index.xml +++ b/tags/testing/index.xml @@ -1,4 +1,4 @@ -testing on mailcow: dockerized - Bloghttps://mailcow.email/tags/testing/Recent content in testing on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/nightly-tests-bs5/It took long enough, but here it is finally: The new mailcow UI! -Currently it&rsquo;s still exclusively in the nightly builds because we want to optimize the UI. -And that&rsquo;s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. -So if there was one thing that always bothered you so far, please let us know! \ No newline at end of file +testing - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/testing/testing - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 02 Sep 2022 09:30:10 +0200Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5https://mailcow.email/posts/2022/nightly-tests-bs5/Fri, 02 Sep 2022 09:30:10 +0200Authorhttps://mailcow.email/posts/2022/nightly-tests-bs5/Our new addition: The new mailcow UI (MUH-I) in Bootstrap 5It took long enough, but here it is finally: The new mailcow UI! +Currently it’s still exclusively in the nightly builds because we want to optimize the UI. +And that’s where you come in! Because we want to make the UI as user friendly as possible and improve not only the framework but also the usability. +So if there was one thing that always bothered you so far, please let us know!]]> \ No newline at end of file diff --git a/tags/testing/page/1/index.html b/tags/testing/page/1/index.html index 12363a0e4..bbaff5ebf 100644 --- a/tags/testing/page/1/index.html +++ b/tags/testing/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/testing/ - - - - - - +https://mailcow.email/tags/testing/ + \ No newline at end of file diff --git a/tags/tutorial/index.html b/tags/tutorial/index.html new file mode 100644 index 000000000..5061fb2c4 --- /dev/null +++ b/tags/tutorial/index.html @@ -0,0 +1,8 @@ +Tutorial - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file diff --git a/tags/tutorial/index.xml b/tags/tutorial/index.xml index d576758ad..cba2947c3 100644 --- a/tags/tutorial/index.xml +++ b/tags/tutorial/index.xml @@ -1 +1 @@ -Tutorial on mailcow: dockerized - Bloghttps://mailcow.email/tags/tutorial/Recent content in Tutorial on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Fri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/mailcow-feat-alpine/ \ No newline at end of file +Tutorial - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/tutorial/Tutorial - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenFri, 04 Nov 2022 10:00:00 +0100[GUIDE] mailcow feat. Alpine Linux = โค๏ธhttps://mailcow.email/posts/2022/mailcow-feat-alpine/Fri, 04 Nov 2022 10:00:00 +0100Authorhttps://mailcow.email/posts/2022/mailcow-feat-alpine/<div class="featured-image"><img loading="eager" src="/images/mailcow-feat-alpine_preview.jpg" alt="[GUIDE] mailcow feat. Alpine Linux = โค๏ธ" title="A small guide for installing mailcow on Alpine Linux" referrerpolicy="no-referrer"/></div>A small guide for installing mailcow on Alpine Linux \ No newline at end of file diff --git a/tags/tutorial/page/1/index.html b/tags/tutorial/page/1/index.html new file mode 100644 index 000000000..113c258b5 --- /dev/null +++ b/tags/tutorial/page/1/index.html @@ -0,0 +1,2 @@ +https://mailcow.email/tags/tutorial/ + \ No newline at end of file diff --git a/tags/update/index.html b/tags/update/index.html index c1bd6b6e0..1da704237 100644 --- a/tags/update/index.html +++ b/tags/update/index.html @@ -1,262 +1,26 @@ - - - - - - - - update - Tag - mailcow: dockerized - Blog - - - - - - - - - - - - - - - - - -
- -
-
- - -
-
0% -
-
- +update - Tag - mailcow: dockerized - Blog +

update 29

2023

2022

0%
\ No newline at end of file diff --git a/tags/update/index.xml b/tags/update/index.xml index dbcd43544..48d3b653c 100644 --- a/tags/update/index.xml +++ b/tags/update/index.xml @@ -1,136 +1,69 @@ -update on mailcow: dockerized - Bloghttps://mailcow.email/tags/update/Recent content in update on mailcow: dockerized - BlogHugo -- gohugo.ioeninfo@servercow.de (Moohoo)info@servercow.de (Moohoo)Tue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-12/<h2 id="2023-12a-release-29th-december-2023">2023-12a (Release 29th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>chore(deps): update dependency nextcloud/server to v28.0.1 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5614">https://github.com/mailcow/mailcow-dockerized/pull/5614</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5617">https://github.com/mailcow/mailcow-dockerized/pull/5617</a></li> -<li>[Postfix] Do not remove X-Mailer header by @feldsam in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5504">https://github.com/mailcow/mailcow-dockerized/pull/5504</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5622">https://github.com/mailcow/mailcow-dockerized/pull/5622</a></li> -<li>[Postfix] set smtpd_forbid_bare_newline = yes</li> -</ul> -<hr> -<h2 id="2023-12-release-19th-december-2023">2023-12 (Release 19th December 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>We have some new Netfilter features for you before the holidays. -In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables <code>WATCHDOG_NOTIFY_WEBHOOK</code> and <code>WATCHDOG_NOTIFY_WEBHOOK_BODY</code> in <code>mailcow.conf</code> accordingly.</p>๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-11/<h2 id="2023-11a-release-07th-december-2023">2023-11a (Release 07th December 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>[Update.sh] Fix repo change when running in forced mode by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5552">https://github.com/mailcow/mailcow-dockerized/pull/5552</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5557">https://github.com/mailcow/mailcow-dockerized/pull/5557</a></li> -<li>[Web] add /api/v1/get/spam-score endpoint by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5482">https://github.com/mailcow/mailcow-dockerized/pull/5482</a></li> -<li>Update dependency nextcloud/server to v27.1.4 by @renovate in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5559">https://github.com/mailcow/mailcow-dockerized/pull/5559</a></li> -<li>[Web][Rspamd] domain wide footer improvements and custom mailbox attributes by @FreddleSpl0it in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5555">https://github.com/mailcow/mailcow-dockerized/pull/5555</a></li> -<li>Detect docker compose version of form v2.x by @startnow65 in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5562">https://github.com/mailcow/mailcow-dockerized/pull/5562</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5567">https://github.com/mailcow/mailcow-dockerized/pull/5567</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5569">https://github.com/mailcow/mailcow-dockerized/pull/5569</a></li> -<li>Translations update from Weblate by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5573">https://github.com/mailcow/mailcow-dockerized/pull/5573</a></li> -<li>[Postfix] update postscreen_access.cidr by @milkmaker in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5570">https://github.com/mailcow/mailcow-dockerized/pull/5570</a></li> -<li>[Rspamd] Fixed Ratelimit forced by global ratelimits by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/pull/5577">https://github.com/mailcow/mailcow-dockerized/pull/5577</a></li> -<li>[UI] Fixed showing of &ldquo;disabled&rdquo; placeholder for ratelimits in domains by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab">https://github.com/mailcow/mailcow-dockerized/commit/550b88861f7a6dc8651659ceb894e111f49d76ab</a></li> -<li>Update Rspamd Image to 1.94 by @DerLinkman in <a href="https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be">https://github.com/mailcow/mailcow-dockerized/commit/03aaf4ad76898cebb5ad83cde2a7ca769410f8be</a></li> -</ul> -<hr> -<h2 id="2023-11-release-21st-november-2023">2023-11 (Release 21st November 2023)</h2> -<p><strong>Moo hoo everyone!</strong></p> -<p>The holiday season is slowly approaching, and here we are with another update at our doorstep.</p> -<p>First things first: It&rsquo;s advisable to update (especially if using Quarantine) due to a critical security patch.</p>๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-10/<h2 id="2023-10a-released-12th-october-2023">2023-10a (Released 12th October 2023)</h2> -<h3 id="changelog">Changelog</h3> -<ul> -<li>We&rsquo;ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!</li> -<li>We&rsquo;ve removed the restart action from the <code>depends_on</code> section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)</li> -</ul> -<hr> -<h2 id="2023-10-released-12th-october-2023">2023-10 (Released 12th October 2023)</h2> -<p><strong><del>Moo</del>Boo hoo everyone!</strong></p> -<p>It&rsquo;s spooky season again and we hope you&rsquo;re all ready to celebrate the Halloween season this year.</p> -<p>However mailcow is also delivering you with some treats (tricks &ldquo;sold&rdquo; seperately and not included in this update) regarding the stack.</p> -<p>This time it&rsquo;s quite huge!</p>๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-09/2023-09 Moohoo everyone! +update - Tag - mailcow: dockerized - Bloghttps://mailcow.email/tags/update/update - Tag | mailcow: dockerized - BlogHugo -- gohugo.ioenTue, 19 Dec 2023 11:19:02 +0200๐Ÿ›ท ๐Ÿ„ Moocember 2023 Update | Netfilter NFTables Support and Banlist Endpointhttps://mailcow.email/posts/2023/release-2023-12/Tue, 19 Dec 2023 11:19:02 +0200Authorhttps://mailcow.email/posts/2023/release-2023-12/ + 2023-12a (Release 29th December 2023)

+ Changelog

+
+

+ 2023-12 (Release 19th December 2023)

Moo hoo everyone!

+

We have some new Netfilter features for you before the holidays. +In addition, the watchdog can now send notifications via webhooks. To do this, simply configure the variables WATCHDOG_NOTIFY_WEBHOOK and WATCHDOG_NOTIFY_WEBHOOK_BODY in mailcow.conf accordingly.

]]>
๐Ÿฎ๐Ÿ„ Moovember 2023 Update Revision A | Ratelimit Fixes, Domain Wide Footer Fixeshttps://mailcow.email/posts/2023/release-2023-11/Tue, 21 Nov 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-11/ + 2023-11a (Release 07th December 2023)

+ Changelog

+
+

+ 2023-11 (Release 21st November 2023)

Moo hoo everyone!

+

The holiday season is slowly approaching, and here we are with another update at our doorstep.

+

First things first: It’s advisable to update (especially if using Quarantine) due to a critical security patch.

]]>
๐ŸŽƒ๐Ÿ„ Mooctober 2023 Update | Domainwide Footer, cURL Fixes and more - Revision Ahttps://mailcow.email/posts/2023/release-2023-10/Thu, 12 Oct 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-10/ + 2023-10a (Released 12th October 2023)

+ Changelog

    +
  • We’ve fixed the wrongly used clamav tag inside the docker-compose.yml. Now you are really using ClamAV 1.0.3 LTS!
  • +
  • We’ve removed the restart action from the depends_on section (tied to the unbound healthcheck logic) from the docker-compose.yml. Older Versions of Docker Compose v2 would not be able to start the stack with those settings set. (Please keep your systems up to date!!!!)
  • +
+
+

+ 2023-10 (Released 12th October 2023)

MooBoo hoo everyone!

+

It’s spooky season again and we hope you’re all ready to celebrate the Halloween season this year.

+

However mailcow is also delivering you with some treats (tricks “sold” seperately and not included in this update) regarding the stack.

+

This time it’s quite huge!

]]>
๐Ÿ”ฅ๐Ÿ„ Hotfix Update September 2023 (SOGo 5.9.0)https://mailcow.email/posts/2023/release-2023-09/Fri, 29 Sep 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-09/2023-09Moohoo everyone! We are back with a tiny mailcow update that solves the problems with macOS 14 (Sonoma) and SOGo. That&rsquo;s all there is this month. More content will come in early October with update 2023-10. Changelog [SOGo] Update to 5.9.0 The full changelog, including the individual commits, is available on GitHub at any time for those interested: https://github.com/mailcow/mailcow-dockerized/releases/tag/2023-09 -As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023) Moohoo everyone! +As always, a huge thank you to our great mailcow community for your continued support and valuable feedback.๐ŸŒป ๐Ÿ„ Moogust Update 2023 - Spamhaus DQS Hotfixeshttps://mailcow.email/posts/2023/release-2023-08/Thu, 03 Aug 2023 11:11:32 +0200Authorhttps://mailcow.email/posts/2023/release-2023-08/2023-08 (Release 3rd August 2023)Moohoo everyone! I hope you are not tired yet of performing updates. The 2023-08 Release is here, and it contains some hotfixes for the new Spamhaus DQS feature. If you are not using Spamhaus DQS and haven&rsquo;t experienced any issues with the 2023-07 update, you don&rsquo;t have to install this update. -As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023) There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: -Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05a/<p><strong>Moohoo everyone!</strong></p> -<p>A very urgent security update for mailcow (2023-05a) has just been released.</p> -<p>We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).</p>๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! +As this release only contains hotfixes, there is not much to say about it, except for one thing.๐Ÿ’ ๐Ÿ„ Mooly Update 2023 (a) - Manageable CORS Settings and UI Improvementshttps://mailcow.email/posts/2023/release-2023-07/Mon, 31 Jul 2023 10:48:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-07/2023-07a (Release 31th July 2023)There are some fixes for the 2023-07 update. Most of the fixes are related to the latest changes regarding the DNS blocklists of the postscreen in Postfix: +Changelog dns_blocklists.cf isn&rsquo;t appended to main.cf and therefore ineffectiveโ€ฆ Fix Reponse Code for ASN Checks [Postfix] Reimplemented option for custom dnsbls [Postfix] Added dns_blocklists.cf for customizations [Postfix] update postscreen_access.cidr Update SOGo to 5.8.4 Fix spamhaus query domains (.net only) As always, the full changelog with the individual commits is available on GitHub: https://github.๐ŸŒท๐Ÿ„ Mooay Update 2023 - Revision A (โš ๏ธ CRITICAL security update โš ๏ธ)https://mailcow.email/posts/2023/release-2023-05a/Tue, 30 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05a/Moohoo everyone!

+

A very urgent security update for mailcow (2023-05a) has just been released.

+

We urge you to apply this update as this vulnerability has been lurking in the code for quite some time (before 2020).

]]>
๐ŸŒท๐Ÿ„ Mooai Update 2023 - IMAP Performance + general Tweaks Updatehttps://mailcow.email/posts/2023/release-2023-05/Thu, 25 May 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-05/Moohoo everyone! It&rsquo;s on with our updates for mailcow, this time (once again) mainly to improve the overall stability and usability of the stack, but also to improve IMAP performance. Let&rsquo;s go: -Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-04/Update 2023-04a We&rsquo;ve just released a hotfix update for the 2023-04 update. +Changelog For Dovecot, the maildir_very_dirty_syncs option has been enabled by default. This allows much faster IMAP retrieval than before. In the mailcow docs we have created a new page about this. This describes the exact reasons for the performance boost as well as cases where the feature should be disabled: https://docs.๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision Ahttps://mailcow.email/posts/2023/release-2023-04/Mon, 03 Apr 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-04/๐Ÿฅš๐Ÿ„ Moopril Update 2023 - SOGo 5.8.2, Rspamd 3.5 and more | Revision AUpdate 2023-04aWe’ve just released a hotfix update for the 2023-04 update. It solves the problem with Nextcloud, which could not be updated to version 26, because version 25 does not support PHP 8.2, but 26 does. -Update 2023-04 Moohoo everyone -It&rsquo;s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. -Let&rsquo;s get started: -SOGo has been updated to version 5.๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2023/release-2023-01/Introduction Moohoo everyone! +Update 2023-04Moohoo everyone +It’s on with our updates for mailcow, this time mainly to contribute to the general stability and usability of the stack. +Let’s get started: +SOGo has been updated to version 5.]]>๐Ÿค–๐Ÿ„ Janmooary Update 2023 - Fixes, fixes and a sprinkling of new featureshttps://mailcow.email/posts/2023/release-2023-01/Thu, 19 Jan 2023 09:30:10 +0200Authorhttps://mailcow.email/posts/2023/release-2023-01/IntroductionMoohoo everyone! The mailcow team is back with some exciting news about our beloved mailcow project! But this time we are doing something a bit different than usual (at least here with the blog post entry) As you may have noticed in the last few weeks, a new AI has been making the rounds on the Internet: ChatGPT. -So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?๐ŸŽ„๐Ÿ„ Moocember Update 2022 - MUH-I Update (Bootstrap 5)https://mailcow.email/posts/2022/release-2022-12/Sat, 24 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-12/Introduction Moohoo everyone! -To end the chaotic year 2022 in a worthy manner, the time has finally come. The long awaited Bootstrap 5 update is finally here! -As already mentioned in some posts, this update marks only the turning point of the mailcow UI, because the new base (Bootstrap 5) will offer us many new possibilities and scope for new features in the future. -Because of the Bootstrap update the old UI was completely renewed and ported to the new version.๐Ÿšš๐Ÿ„ Moovember Update 2022 - Sogo 5.8.0, Rspamd 3.4.0 and PHP 8.1 Update | Revision Bhttps://mailcow.email/posts/2022/release-2022-11a/Mon, 12 Dec 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-11a/<p><strong>Moohoo everyone!</strong></p> -<p>Due to the <del>2022-11a</del> 2022-11b update, here are the changelogs of the <del>2022-11a</del> 2022-11b update and the changes of the major version (2022-11).</p> -<blockquote> -<p><em>Weยดve released 2022-11b already!</em></p> -</blockquote>โš ๏ธ 2022-10a | Critical stability update โš ๏ธhttps://mailcow.email/posts/2022/release-2022-10a/Wed, 26 Oct 2022 09:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10a/<p><strong>Moohoo everyone!</strong></p> -<p>Yesterday (on 25th October 2022) weยดve released the 2022-10 update. -This Update here contains a critical error with the spam filtering for several (not many), which ensures that no more emails can go out or come in.</p> -<p>We strongly advise you to update your mailcow installation which is updated with the 2022-10 update!!</p>๐ŸŒฐ๐Ÿ„ Mooctober Update 2022 - Translation overhaul + multithreaded backup/restore script updatehttps://mailcow.email/posts/2022/release-2022-10/Tue, 25 Oct 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-10/<p><strong>Moohoo everyone!</strong></p> -<p>We are moving in big steps towards the end of the year and despite the fact that the Bootstrap 5 UI update is still a bit more delayed (thanks for your patience by the way!) here is another small but nice mailcow update for you today.</p>๐Ÿ‚๐Ÿ„ Mootember Update 2022 - Quarantine & Swagger UI Fix Update - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-09/Fri, 30 Sep 2022 12:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-09/<h3 id="2022-09a-release-30th-september-2022">2022-09a (Release: 30th September 2022)</h3> -<p>Changes:</p> -<ul> -<li>The Twig template system on which mailcow is based has been updated to version 3.4.3 and closes <a href="https://github.com/advisories/GHSA-52m2-vc4m-jj33">CVE-2022-39261</a>.<br> -<strong>Attention: This CVE is not critical for all mailcow users but only serves to update the packages</strong>.</li> -</ul>๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update (Revision B) | Changeshttps://mailcow.email/posts/2022/release-2022-08b/Thu, 08 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08b/Moohoo everyone! -A small but important update for or against the current SOGo Sieve/mail sending problems is here! -We received countless messages about this and implemented a fix within tis update, which hopefully solves the problem for everyone. -For those who are interested: It&rsquo;s probably related to the IPv6 support introduced in SOGo 5.7.1 and the internal IPv6 connectivity of mailcowยดs Docker containers, which triggered connectivity issues with SOGo. -Yeah&hellip; however, this bug should be fixed now.๐ŸŒŠ๐Ÿ„ Amoogust Update 2022 - The Nightly Build Switch Update | Changeshttps://mailcow.email/posts/2022/release-2022-08/Thu, 01 Sep 2022 10:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-08/Moohoo everyone! -Yeah, a August Update in September&hellip; kinda sus if you ask me! -This time there are even some changes regarding the Update sources! So stay curious. -Let&rsquo;s start quite gently for the time being: -Stable changes (stable branch) OAuth clients and app passwords are now accepted again for Cal/CardDav connections. #4685 by @FreddleSpl0it SOGo has been updated to 5.7.1 (Complete changelog here) receives in mailcow stack container version: mailcow/sogo:1.โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - Revision A | Changeshttps://mailcow.email/posts/2022/release-2022-07a/Fri, 29 Jul 2022 10:32:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07a/Moohoo everyone! -We&rsquo;ve released an short update that improved the API and brings a new version of ClamAV (0.105.1). -Note: The update to ClamAV 0.105.1 is recommended by ClamAV as a security update (See ClamAV Update article) -Once again summarized what changes: -The schema of the domain section of the API has been adjusted and improved. Automatic GitHub actions for building the latest container versions has been set up (currently not used productively).โ˜€๏ธ๐Ÿ„ Mooly Update 2022 - TFA Flow Update | Changeloghttps://mailcow.email/posts/2022/release-2022-07/Thu, 14 Jul 2022 08:30:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-07/Moohoo everyone! -It&rsquo;s update time once again, a little later than before (I&rsquo;ll get into that a bit later) but still packed with some changes: -TFA Changes 2FA is now also possible for mailbox users in the UI (previously this was reserved for administrators). Also, it is now possible to enable multiple 2FA options for an account. Note: Only one is used, which is selected by the user. There is a nice new menu at to select the available 2FA options.๐ŸŒ•๐Ÿ„ Moone Update 2022 - The Docker Compose v2 Update (Part I) | Changeshttps://mailcow.email/posts/2022/release-2022-06/Tue, 07 Jun 2022 12:07:10 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-06/Moohoo everybody! -Today we have put together a big fat update package for you again, which besides general container updates brings one big change: -Docker Compose v2 support!!! -But let&rsquo;s start with the small stuff first: -Minor changes ClamAV is now using version 0.105 (the latest at release time). Postfix has been updated to version 3.5.6. netfilter, acme, dockerapi, olefy, watchdog, unbound and phpfpm have been updated to Alpine Linux 3.โš ๏ธ 2022-05d Important Security Update! โš ๏ธhttps://mailcow.email/posts/2022/release-2022-05d/Thu, 19 May 2022 16:03:56 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05d/Hello all, -Yesterday we received an important tip about a critical security vulnerability in mailcow (thanks again for that). It affects IMAPSYNC and gives access to administration rights in the mailcow UI and API. -It is strongly recommended to install the update as soon as possible to prevent exploitation. -As always please take a look at the GitHub Release: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05d -The update does not remove any important functionality from mailcow or IMAPSYNC!๐ŸŒŒ๐Ÿฎ Mooay 2022 Update - The Tag Update | Revision C - Changeloghttps://mailcow.email/posts/2022/release-2022-05/Fri, 13 May 2022 09:22:00 +0200info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-05/2022-05c Itยดs us again again! -This time weยดve published the 2022-05c Update which is a very small one. -It changed the API a bit again. This time for security reasons. -Head over to GitHub to see the full changelog: https://github.com/mailcow/mailcow-dockerized/releases/tag/2022-05c -Stay healthy -Niklas -2022-05b Itยดs us again! -Today we have a small API Fix Update which focus mainly on the UI. -As some of you reported the API Calls for Domains/Mailboxes donยดt work anymore if there is no Tag set.๐Ÿ„๐ŸฐMoopril 2022 - ClamAV, Rspamd, SOGo Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-04/Tue, 05 Apr 2022 10:42:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-04/Moohoo everyone! -The April update is here with a bunch of new stuff for your flawless E-Mail Flow. -This month we have 3 component updates (ClamAV, SOGo and Rspamd) and a few minor fixes which are as follows: -Major Changes We have updated SOGo in the mailcow stack to 5.5.1. Besides the SOGo fixes (see here) the mailcow database structure has been tweaked a bit to be ready for the upcoming 5.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ Revision A | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03a/Thu, 17 Mar 2022 22:29:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03a/Moohoo everyone! -We have released an impromptu bug fix update that fixes a few minor bugs and graphical issues. -These are only minor changes this time, but as the saying goes, &ldquo;Every little bit helps&rdquo;. -We have moved the version footer back to the correct position. Faithful to the motto: Stay were you are! We have improved the release tag handling with the version footer. The backup and restore script now uses Debian Bullseye instead of Buster.๐Ÿ„๐Ÿ’ฎ Moorch Update 2022 โ€“ ClamAV, Dovecot & Olefy Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-03/Wed, 02 Mar 2022 16:48:00 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-03/Moohoo everyone, March is here and by the end of the month it will be spring again. Surely the last few days were as scary for you as they were for us. -๐Ÿ‡บ๐Ÿ‡ฆ Ukraine, we are standing with you! -Let&rsquo;s move on to the March update of our mailcow. Spoilers ahead, the March update is not that full and extensive but there are some nice updates included in terms of long term (I&rsquo;m looking at you ClamAV and Olefy!๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - Revision A (2022-01a) ๐Ÿชฒ | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01a/Tue, 01 Feb 2022 15:28:32 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01a/Moohoo everyone. -Today we are releasing the first hotfix for the 2022-01 Update. -This has changed: -Additions: Weยดve added a Version Tag which is located at the bottom of the mailcow UI (It now shows the current release tag you are on!) Isnยดt that crazy? (https://github.com/mailcow/mailcow-dockerized/pull/4437) Changes: The passwordless SOGo Authentication is now supporting calender invitations and calender/contact subscriptions (https://github.com/mailcow/mailcow-dockerized/pull/4439) The Autoreply Schedule for SOGo has been changed from 24h to 5m (https://github.๐Ÿ“ฐ๐Ÿ„ Jan(moo)uary Update 2022 - The U2F --> WebAuthn (2FA) Update | Patchnoteshttps://mailcow.email/posts/2022/release-2022-01/Fri, 21 Jan 2022 14:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2022/release-2022-01/Moohoo everyone, Niklas here with the latest changelog for our beloved mailcow email software! -This month there is a big chunk of changes, some of them even very important regarding 2FA, but more about that later. -First of all we would like to thank you for your loyalty and cooperation, because without you the mailcow project wouldn&rsquo;t be where it is now โค๏ธ -We would also like to apologize for the fact that we are only now releasing a new update (master branch release), because some of the fixes included in this update (SOGo e.๐Ÿ„ Moovember 2021 - Patchnoteshttps://mailcow.email/posts/2021/moovember2021/Fri, 03 Dec 2021 09:49:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/moovember2021/Moohoo everyone! -Niklas here to present you the latest news around our lovely mailcow :) -Let&rsquo;s get started, shall we? -Major changes from November 2021 for the mailcow stack: SOGo update to 5.3.0 Dovecot update to 2.3.17 ClamAV update to 0.103.4 [Web] Auto-generated app passwords for Apple configuration profiles Please consider updating your mailcow stack to ensure a stable environment. -All changes from November 2021 for the mailcow stack (newest to oldest): 30th November 2021:๐Ÿ„ Mooctober 2021 - the feldsam editionhttps://mailcow.email/posts/2021/mooctober2021/Mon, 18 Oct 2021 21:55:47 +0100info@servercow.de (Moohoo)https://mailcow.email/posts/2021/mooctober2021/A big thanks to Kristian Feldsam for integrating Twig. We are closer to Bootstrap 5 than ever. That&rsquo;s a big change we hope to finish soon. -Furthermore we introduce our new cold standby solution. -With this new script you are able to create a fully working, 1:1, consistent copy of your running mailcow without downtime. -Disaster recovery of a mailcow is as easy as switching IPs and running &ldquo;up -d&rdquo;.
\ No newline at end of file +So we thought: &ldquo;Hey, why don&rsquo;t we let the bot write our changelog in text form?
\ No newline at end of file diff --git a/tags/update/page/1/index.html b/tags/update/page/1/index.html index 2a9ef7e8a..26cfde547 100644 --- a/tags/update/page/1/index.html +++ b/tags/update/page/1/index.html @@ -1,10 +1,2 @@ - - - - https://news.mailcow.email/tags/update/ - - - - - - +https://mailcow.email/tags/update/ + \ No newline at end of file diff --git a/tags/update/page/2/index.html b/tags/update/page/2/index.html new file mode 100644 index 000000000..cce34dda0 --- /dev/null +++ b/tags/update/page/2/index.html @@ -0,0 +1,16 @@ +update - Tag - mailcow: dockerized - Blog +
0%
\ No newline at end of file