From bf3870cccaafe190f55bca486905a786eb59890e Mon Sep 17 00:00:00 2001 From: Sam Kintop Date: Thu, 30 Apr 2026 09:44:02 -0500 Subject: [PATCH] all --- .dockerignore | 4 + .github/workflows/publish.yml | 66 + .gitignore | 5 + Dockerfile | 39 + LICENSE | 19 + build.php | 5 + composer.json | 28 + composer.lock | 413 ++++ dev/compose.yaml | 32 + dev/dev.ini | 7 + docker/Caddyfile | 28 + docker/compose.production.yaml | 46 + docker/mclogs.ini | 7 + example.config.json | 36 + src/Api/Action/AnalyseLogAction.php | 26 + src/Api/Action/ApiAction.php | 37 + src/Api/Action/BulkDeleteLogsAction.php | 77 + src/Api/Action/CreateLogAction.php | 43 + src/Api/Action/DeleteLogAction.php | 60 + src/Api/Action/EmptyAction.php | 13 + src/Api/Action/EndpointNotFoundAction.php | 14 + src/Api/Action/GetFiltersAction.php | 14 + src/Api/Action/GetLimitsAction.php | 14 + src/Api/Action/LogInfoAction.php | 28 + src/Api/Action/LogInsightsAction.php | 31 + src/Api/Action/RateLimitErrorAction.php | 17 + src/Api/Action/RawLogAction.php | 28 + src/Api/ApiRouter.php | 29 + src/Api/ContentParser.php | 85 + src/Api/LogContentParser.php | 33 + src/Api/Response/ApiError.php | 23 + src/Api/Response/ApiResponse.php | 63 + src/Api/Response/CodexLogResponse.php | 17 + src/Api/Response/FiltersResponse.php | 13 + src/Api/Response/LimitsResponse.php | 19 + src/Api/Response/LogResponse.php | 64 + src/Api/Response/MultiResponse.php | 38 + src/Api/Response/RawLogResponse.php | 22 + src/Cache/CacheEntry.php | 43 + src/Config/Config.php | 88 + src/Config/ConfigKey.php | 80 + src/Data/Deobfuscator.php | 138 ++ src/Data/MetadataEntry.php | 198 ++ src/Data/Token.php | 42 + src/Detective.php | 16 + src/Filter/AccessTokenFilter.php | 21 + src/Filter/Filter.php | 75 + src/Filter/FilterType.php | 11 + src/Filter/IPv4Filter.php | 32 + src/Filter/IPv6Filter.php | 30 + src/Filter/LimitBytesFilter.php | 41 + src/Filter/LimitLinesFilter.php | 41 + src/Filter/Pattern/Modifier.php | 16 + src/Filter/Pattern/Pattern.php | 51 + src/Filter/Pattern/PatternWithReplacement.php | 26 + src/Filter/RegexFilter.php | 59 + src/Filter/TrimFilter.php | 29 + src/Filter/UsernameFilter.php | 23 + src/Frontend/Action/ApiDocsAction.php | 14 + src/Frontend/Action/CreateLogAction.php | 21 + src/Frontend/Action/DeleteLogAction.php | 30 + src/Frontend/Action/FaviconAction.php | 15 + src/Frontend/Action/NotFoundAction.php | 15 + src/Frontend/Action/StartAction.php | 14 + src/Frontend/Action/ViewLogAction.php | 25 + src/Frontend/Assets/Asset.php | 105 + src/Frontend/Assets/AssetLoader.php | 101 + src/Frontend/Assets/AssetType.php | 9 + src/Frontend/Cookie/Cookie.php | 139 ++ src/Frontend/Cookie/SettingsCookie.php | 14 + src/Frontend/Cookie/TokenCookie.php | 52 + src/Frontend/FrontendRouter.php | 21 + src/Frontend/Settings/Setting.php | 39 + src/Frontend/Settings/Settings.php | 66 + src/Id.php | 60 + src/Log.php | 516 +++++ src/Printer/FormatModification.php | 20 + src/Printer/Printer.php | 88 + src/Router/Action.php | 8 + src/Router/Method.php | 17 + src/Router/Route.php | 51 + src/Router/Router.php | 73 + src/Storage/MongoDBClient.php | 234 ++ src/Util/Singleton.php | 37 + src/Util/TimeInterval.php | 53 + src/Util/URL.php | 128 ++ web/frontend/404.php | 22 + web/frontend/api-docs.php | 639 ++++++ web/frontend/log.php | 230 ++ web/frontend/parts/favicon.php | 7 + web/frontend/parts/footer.php | 28 + web/frontend/parts/head.php | 44 + web/frontend/parts/header.php | 49 + web/frontend/start.php | 37 + web/public/css/mclogs.css | 2006 +++++++++++++++++ web/public/img/favicon.ico | Bin 0 -> 230398 bytes web/public/img/logo-icon.svg | 7 + web/public/img/logo.svg | 23 + web/public/js/log.js | 309 +++ web/public/js/start.js | 365 +++ .../fontawesome/css/fontawesome.min.css | 12 + .../fontawesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 101224 bytes .../fontawesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 113152 bytes ...greek_latin_latin-ext_vietnamese-700.woff2 | Bin 0 -> 39008 bytes ...latin_latin-ext_vietnamese-700italic.woff2 | Bin 0 -> 41580 bytes ...ek_latin_latin-ext_vietnamese-italic.woff2 | Bin 0 -> 40148 bytes ...k_latin_latin-ext_vietnamese-regular.woff2 | Bin 0 -> 37836 bytes .../plus-jakarta-sans-v12-latin-500.woff2 | Bin 0 -> 12312 bytes .../plus-jakarta-sans-v12-latin-600.woff2 | Bin 0 -> 12188 bytes .../plus-jakarta-sans-v12-latin-regular.woff2 | Bin 0 -> 11816 bytes worker.php | 37 + 111 files changed, 8383 insertions(+) create mode 100644 .dockerignore create mode 100644 .github/workflows/publish.yml create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 build.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 dev/compose.yaml create mode 100644 dev/dev.ini create mode 100644 docker/Caddyfile create mode 100644 docker/compose.production.yaml create mode 100644 docker/mclogs.ini create mode 100644 example.config.json create mode 100644 src/Api/Action/AnalyseLogAction.php create mode 100644 src/Api/Action/ApiAction.php create mode 100644 src/Api/Action/BulkDeleteLogsAction.php create mode 100644 src/Api/Action/CreateLogAction.php create mode 100644 src/Api/Action/DeleteLogAction.php create mode 100644 src/Api/Action/EmptyAction.php create mode 100644 src/Api/Action/EndpointNotFoundAction.php create mode 100644 src/Api/Action/GetFiltersAction.php create mode 100644 src/Api/Action/GetLimitsAction.php create mode 100644 src/Api/Action/LogInfoAction.php create mode 100644 src/Api/Action/LogInsightsAction.php create mode 100644 src/Api/Action/RateLimitErrorAction.php create mode 100644 src/Api/Action/RawLogAction.php create mode 100644 src/Api/ApiRouter.php create mode 100644 src/Api/ContentParser.php create mode 100644 src/Api/LogContentParser.php create mode 100644 src/Api/Response/ApiError.php create mode 100644 src/Api/Response/ApiResponse.php create mode 100644 src/Api/Response/CodexLogResponse.php create mode 100644 src/Api/Response/FiltersResponse.php create mode 100644 src/Api/Response/LimitsResponse.php create mode 100644 src/Api/Response/LogResponse.php create mode 100644 src/Api/Response/MultiResponse.php create mode 100644 src/Api/Response/RawLogResponse.php create mode 100644 src/Cache/CacheEntry.php create mode 100644 src/Config/Config.php create mode 100644 src/Config/ConfigKey.php create mode 100644 src/Data/Deobfuscator.php create mode 100644 src/Data/MetadataEntry.php create mode 100644 src/Data/Token.php create mode 100644 src/Detective.php create mode 100644 src/Filter/AccessTokenFilter.php create mode 100644 src/Filter/Filter.php create mode 100644 src/Filter/FilterType.php create mode 100644 src/Filter/IPv4Filter.php create mode 100644 src/Filter/IPv6Filter.php create mode 100644 src/Filter/LimitBytesFilter.php create mode 100644 src/Filter/LimitLinesFilter.php create mode 100644 src/Filter/Pattern/Modifier.php create mode 100644 src/Filter/Pattern/Pattern.php create mode 100644 src/Filter/Pattern/PatternWithReplacement.php create mode 100644 src/Filter/RegexFilter.php create mode 100644 src/Filter/TrimFilter.php create mode 100644 src/Filter/UsernameFilter.php create mode 100644 src/Frontend/Action/ApiDocsAction.php create mode 100644 src/Frontend/Action/CreateLogAction.php create mode 100644 src/Frontend/Action/DeleteLogAction.php create mode 100644 src/Frontend/Action/FaviconAction.php create mode 100644 src/Frontend/Action/NotFoundAction.php create mode 100644 src/Frontend/Action/StartAction.php create mode 100644 src/Frontend/Action/ViewLogAction.php create mode 100644 src/Frontend/Assets/Asset.php create mode 100644 src/Frontend/Assets/AssetLoader.php create mode 100644 src/Frontend/Assets/AssetType.php create mode 100644 src/Frontend/Cookie/Cookie.php create mode 100644 src/Frontend/Cookie/SettingsCookie.php create mode 100644 src/Frontend/Cookie/TokenCookie.php create mode 100644 src/Frontend/FrontendRouter.php create mode 100644 src/Frontend/Settings/Setting.php create mode 100644 src/Frontend/Settings/Settings.php create mode 100644 src/Id.php create mode 100644 src/Log.php create mode 100644 src/Printer/FormatModification.php create mode 100644 src/Printer/Printer.php create mode 100644 src/Router/Action.php create mode 100644 src/Router/Method.php create mode 100644 src/Router/Route.php create mode 100644 src/Router/Router.php create mode 100644 src/Storage/MongoDBClient.php create mode 100644 src/Util/Singleton.php create mode 100644 src/Util/TimeInterval.php create mode 100644 src/Util/URL.php create mode 100644 web/frontend/404.php create mode 100644 web/frontend/api-docs.php create mode 100644 web/frontend/log.php create mode 100644 web/frontend/parts/favicon.php create mode 100644 web/frontend/parts/footer.php create mode 100644 web/frontend/parts/head.php create mode 100644 web/frontend/parts/header.php create mode 100644 web/frontend/start.php create mode 100644 web/public/css/mclogs.css create mode 100644 web/public/img/favicon.ico create mode 100644 web/public/img/logo-icon.svg create mode 100644 web/public/img/logo.svg create mode 100644 web/public/js/log.js create mode 100644 web/public/js/start.js create mode 100644 web/public/vendor/fontawesome/css/fontawesome.min.css create mode 100644 web/public/vendor/fontawesome/webfonts/fa-brands-400.woff2 create mode 100644 web/public/vendor/fontawesome/webfonts/fa-solid-900.woff2 create mode 100644 web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-700.woff2 create mode 100644 web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-700italic.woff2 create mode 100644 web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-italic.woff2 create mode 100644 web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-regular.woff2 create mode 100644 web/public/vendor/fonts/plus-jakarta-sans-v12-latin-500.woff2 create mode 100644 web/public/vendor/fonts/plus-jakarta-sans-v12-latin-600.woff2 create mode 100644 web/public/vendor/fonts/plus-jakarta-sans-v12-latin-regular.woff2 create mode 100644 worker.php diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c516c12 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +vendor/ +.git/ +.github/ +Dockerfile \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..9468738 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,66 @@ +name: Publish Docker Image + +on: + push: + branches: + - 'main' + tags: + - 'v*' + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + # Branch Name (e.g. 'two', 'main') + type=ref,event=branch + # Full Version (e.g. '1.2.3') + type=semver,pattern={{version}} + # Major Version (e.g. '1') + type=semver,pattern={{major}} + # Major.Minor (e.g. '1.2') + type=semver,pattern={{major}}.{{minor}} + # Latest (Only on release tags) + type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 + cache-from: | + type=gha + type=gha,scope=refs/heads/main + cache-to: type=gha,mode=max \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fa6d5e6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.log +*.cache +.idea +/vendor/ +config.json \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6f95e63 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,39 @@ +FROM dunglas/frankenphp:1-php8.5 + +# System Setup +RUN install-php-extensions mongodb zip + +ARG USER=mclogs +RUN useradd ${USER} && \ + setcap CAP_NET_BIND_SERVICE=+eip /usr/local/bin/frankenphp + +COPY --from=composer/composer:2-bin /composer /usr/bin/composer + +WORKDIR /app + +# Dependencies (Cached) +COPY composer.json composer.lock ./ + +RUN --mount=type=cache,target=/tmp/cache/composer \ + COMPOSER_CACHE_DIR=/tmp/cache/composer \ + composer install --no-dev --no-interaction --no-scripts --no-autoloader --prefer-dist --ignore-platform-req=ext-frankenphp + +# Application Setup +COPY docker/Caddyfile /etc/frankenphp/Caddyfile +COPY docker/mclogs.ini /usr/local/etc/php/conf.d/mclogs.ini + +COPY . . + +RUN composer dump-autoload --optimize --no-dev --classmap-authoritative +RUN php build.php + +# Permissions & Runtime +RUN chown -R ${USER}:${USER} /config/caddy /data/caddy /app + +USER ${USER} + +EXPOSE 80 +EXPOSE 443 +EXPOSE 443/udp + +VOLUME ["/data"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c0a550c --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018-2024 Aternos GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build.php b/build.php new file mode 100644 index 0000000..425052e --- /dev/null +++ b/build.php @@ -0,0 +1,5 @@ +writeCache(); \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..f01c4a4 --- /dev/null +++ b/composer.json @@ -0,0 +1,28 @@ +{ + "name": "aternos/mclogs", + "description": "Paste, share and analyse Minecraft logs", + "authors": [ + { + "name": "Matthias Neid", + "email": "matthias@aternos.org" + } + ], + "require": { + "php": ">=8.5", + "ext-frankenphp": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-mongodb": "*", + "ext-uri": "*", + "ext-zlib": "*", + "aternos/codex-hytale": "^2.0", + "aternos/codex-minecraft": "^5.0.1", + "aternos/sherlock": "^1.0.2", + "mongodb/mongodb": "2.1.2" + }, + "autoload": { + "psr-4": { + "Aternos\\Mclogs\\": "src/" + } + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..a4df1b5 --- /dev/null +++ b/composer.lock @@ -0,0 +1,413 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "a570f76a4698742115ca4d1d4113a836", + "packages": [ + { + "name": "aternos/codex", + "version": "v4.1.0", + "source": { + "type": "git", + "url": "https://github.com/aternosorg/codex.git", + "reference": "2d0b1930464d9c5129e90c5e69314b1da22c7c4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aternosorg/codex/zipball/2d0b1930464d9c5129e90c5e69314b1da22c7c4a", + "reference": "2d0b1930464d9c5129e90c5e69314b1da22c7c4a", + "shasum": "" + }, + "require": { + "php": ">=8.4" + }, + "require-dev": { + "phpunit/phpunit": "^12" + }, + "type": "library", + "autoload": { + "psr-4": { + "Aternos\\Codex\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthias Neid", + "email": "matthias@aternos.org" + } + ], + "description": "PHP library to read, parse, print and analyse log files.", + "support": { + "issues": "https://github.com/aternosorg/codex/issues", + "source": "https://github.com/aternosorg/codex/tree/v4.1.0" + }, + "time": "2026-01-21T14:12:19+00:00" + }, + { + "name": "aternos/codex-hytale", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/aternosorg/codex-hytale.git", + "reference": "9b48e2d0fa4b82a3f10c8833a766b7e76e233271" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aternosorg/codex-hytale/zipball/9b48e2d0fa4b82a3f10c8833a766b7e76e233271", + "reference": "9b48e2d0fa4b82a3f10c8833a766b7e76e233271", + "shasum": "" + }, + "require": { + "aternos/codex": "^v4.1.0", + "ext-json": "*", + "php": ">=8.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^12.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Aternos\\Codex\\Hytale\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthias", + "email": "matthias@aternos.org" + } + ], + "description": "PHP library to read, parse, print and analyse Hytale log files.", + "support": { + "issues": "https://github.com/aternosorg/codex-hytale/issues", + "source": "https://github.com/aternosorg/codex-hytale/tree/v2.0.0" + }, + "time": "2026-01-23T12:25:09+00:00" + }, + { + "name": "aternos/codex-minecraft", + "version": "v5.1.0", + "source": { + "type": "git", + "url": "https://github.com/aternosorg/codex-minecraft.git", + "reference": "f921d0277449af04a72c3dbb784e37b5fa4934b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aternosorg/codex-minecraft/zipball/f921d0277449af04a72c3dbb784e37b5fa4934b1", + "reference": "f921d0277449af04a72c3dbb784e37b5fa4934b1", + "shasum": "" + }, + "require": { + "aternos/codex": "^v4.1.0", + "ext-json": "*", + "php": ">=8.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^12" + }, + "type": "library", + "autoload": { + "psr-4": { + "Aternos\\Codex\\Minecraft\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matthias", + "email": "matthias@aternos.org" + } + ], + "description": "PHP library to read, parse, print and analyse Minecraft log files.", + "support": { + "issues": "https://github.com/aternosorg/codex-minecraft/issues", + "source": "https://github.com/aternosorg/codex-minecraft/tree/v5.1.0" + }, + "time": "2026-03-30T18:21:47+00:00" + }, + { + "name": "aternos/sherlock", + "version": "v1.1.3", + "source": { + "type": "git", + "url": "https://github.com/aternosorg/sherlock.git", + "reference": "2bfb6427790b24df860f20905b76f09978a7df3a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aternosorg/sherlock/zipball/2bfb6427790b24df860f20905b76f09978a7df3a", + "reference": "2bfb6427790b24df860f20905b76f09978a7df3a", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-simplexml": "*", + "ext-zlib": "*", + "php": ">=8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Aternos\\Sherlock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Julian Vennen", + "email": "julian@aternos.org" + } + ], + "description": "PHP library to apply minecraft mappings to log files", + "support": { + "issues": "https://github.com/aternosorg/sherlock/issues", + "source": "https://github.com/aternosorg/sherlock/tree/v1.1.3" + }, + "time": "2026-02-09T10:37:21+00:00" + }, + { + "name": "mongodb/mongodb", + "version": "2.1.2", + "source": { + "type": "git", + "url": "https://github.com/mongodb/mongo-php-library.git", + "reference": "0a2472ba9cbb932f7e43a8770aedb2fc30612a67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/0a2472ba9cbb932f7e43a8770aedb2fc30612a67", + "reference": "0a2472ba9cbb932f7e43a8770aedb2fc30612a67", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2.0", + "ext-mongodb": "^2.1", + "php": "^8.1", + "psr/log": "^1.1.4|^2|^3", + "symfony/polyfill-php85": "^1.32" + }, + "replace": { + "mongodb/builder": "*" + }, + "require-dev": { + "doctrine/coding-standard": "^12.0", + "phpunit/phpunit": "^10.5.35", + "rector/rector": "^2.1.4", + "squizlabs/php_codesniffer": "^3.7", + "vimeo/psalm": "6.5.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "MongoDB\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Andreas Braun", + "email": "andreas.braun@mongodb.com" + }, + { + "name": "Jeremy Mikola", + "email": "jmikola@gmail.com" + }, + { + "name": "Jérôme Tamarelle", + "email": "jerome.tamarelle@mongodb.com" + } + ], + "description": "MongoDB driver library", + "homepage": "https://jira.mongodb.org/browse/PHPLIB", + "keywords": [ + "database", + "driver", + "mongodb", + "persistence" + ], + "support": { + "issues": "https://github.com/mongodb/mongo-php-library/issues", + "source": "https://github.com/mongodb/mongo-php-library/tree/2.1.2" + }, + "time": "2025-10-06T12:12:40+00:00" + }, + { + "name": "psr/log", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "symfony/polyfill-php85", + "version": "v1.33.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php85.git", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "reference": "d4e5fcd4ab3d998ab16c0db48e6cbb9a01993f91", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "type": "library", + "extra": { + "thanks": { + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php85\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php85/tree/v1.33.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2025-06-23T16:12:55+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": {}, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=8.5", + "ext-frankenphp": "*", + "ext-json": "*", + "ext-mbstring": "*", + "ext-mongodb": "*", + "ext-uri": "*", + "ext-zlib": "*" + }, + "platform-dev": {}, + "plugin-api-version": "2.9.0" +} diff --git a/dev/compose.yaml b/dev/compose.yaml new file mode 100644 index 0000000..c20e830 --- /dev/null +++ b/dev/compose.yaml @@ -0,0 +1,32 @@ +name: "mclogs" +services: + web: + build: + context: .. + dockerfile: ./Dockerfile + environment: + - MCLOGS_WORKER_REQUESTS=1 + - FRANKENPHP_WORKERS=4 + ports: + - "80:80" + volumes: + - ../:/app + - ./dev.ini:/usr/local/etc/php/conf.d/dev.ini + user: root + depends_on: + mongo: + condition: service_healthy + + mongo: + image: mongo + volumes: + - mongo:/data/db + healthcheck: + test: [ "CMD", "mongosh", "--eval", "db.adminCommand('ping')" ] + interval: 5s + timeout: 5s + retries: 5 + start_period: 10s + +volumes: + mongo: diff --git a/dev/dev.ini b/dev/dev.ini new file mode 100644 index 0000000..5770ec2 --- /dev/null +++ b/dev/dev.ini @@ -0,0 +1,7 @@ +opcache.enable=1 +opcache.enable_cli=1 + +opcache.validate_timestamps=1 +opcache.revalidate_freq=0 + +opcache.jit=off \ No newline at end of file diff --git a/docker/Caddyfile b/docker/Caddyfile new file mode 100644 index 0000000..680d0b9 --- /dev/null +++ b/docker/Caddyfile @@ -0,0 +1,28 @@ +{ + servers { + trusted_proxies static {$TRUSTED_PROXIES:private_ranges} + trusted_proxies_strict + } + + frankenphp { + worker /app/worker.php { + num {$FRANKENPHP_WORKERS:16} + } + } +} + +{$SERVER_NAME::80} { + root * /app/web/public + encode zstd br gzip + + @static file + handle @static { + file_server + } + + handle { + root * /app + rewrite * /worker.php + php_server + } +} \ No newline at end of file diff --git a/docker/compose.production.yaml b/docker/compose.production.yaml new file mode 100644 index 0000000..5f15434 --- /dev/null +++ b/docker/compose.production.yaml @@ -0,0 +1,46 @@ +services: + web: + image: ghcr.io/aternosorg/mclogs:2 + restart: always + ports: + # Expose HTTP (80) and HTTPS (443) + # Port 443/udp is required for HTTP/3 (QUIC) + - "80:80" + - "443:443" + - "443:443/udp" + environment: + # Set this to your domain (e.g., mclogs.example.com) to enable Auto-SSL. + # If running behind a proxy (Cloudflare/Nginx), set to ":80" to disable Auto-SSL. + SERVER_NAME: :80 + + MCLOGS_MONGODB_URL: mongodb://mongo:27017 + MCLOGS_MONGODB_DATABASE: mclogs + + # Optional MCLOGS configuration + # See README.md for full list of available options + # MCLOGS_FRONTEND_NAME: "mclogs" + + volumes: + # For caddy cache (SSL certificates) + - web-data:/data + + depends_on: + mongo: + condition: service_healthy + + mongo: + image: mongo + restart: always + volumes: + - mongo-data:/data/db + + healthcheck: + test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet + interval: 10s + timeout: 5s + retries: 5 + start_period: 5s + +volumes: + web-data: + mongo-data: \ No newline at end of file diff --git a/docker/mclogs.ini b/docker/mclogs.ini new file mode 100644 index 0000000..5296784 --- /dev/null +++ b/docker/mclogs.ini @@ -0,0 +1,7 @@ +post_max_size = 50M + +error_reporting = E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED +display_errors = Off +display_startup_errors = Off +log_errors = On +error_log = /dev/stderr \ No newline at end of file diff --git a/example.config.json b/example.config.json new file mode 100644 index 0000000..0d8add0 --- /dev/null +++ b/example.config.json @@ -0,0 +1,36 @@ +{ + "storage": { + "ttl": 7776000, + "limit": { + "bytes": 10485760, + "lines": 25000 + } + }, + "mongodb": { + "url": "mongodb://127.0.0.1:27017", + "database": "mclogs" + }, + "id": { + "length": 7 + }, + "legal": { + "abuse": "abuse@aternos.org", + "imprint": "https://aternos.gmbh/imprint/", + "privacy": "https://aternos.gmbh/en/mclogs/privacy" + }, + "frontend": { + "name": "mclo.gs", + "assets": { + "integrity": true + }, + "color": { + "background": "#1a1a1a", + "text": "#e8e8e8", + "accent": "#5cb85c", + "error": "#f62451" + } + }, + "worker": { + "requests": 500 + } +} \ No newline at end of file diff --git a/src/Api/Action/AnalyseLogAction.php b/src/Api/Action/AnalyseLogAction.php new file mode 100644 index 0000000..f5a22bc --- /dev/null +++ b/src/Api/Action/AnalyseLogAction.php @@ -0,0 +1,26 @@ +getContent(); + + if ($data instanceof ApiError) { + return $data; + } + + $content = $data['content']; + $log = new Log()->setContent($content); + + return new CodexLogResponse($log->getCodexLog()); + } +} diff --git a/src/Api/Action/ApiAction.php b/src/Api/Action/ApiAction.php new file mode 100644 index 0000000..9da24fb --- /dev/null +++ b/src/Api/Action/ApiAction.php @@ -0,0 +1,37 @@ +getAllowedOrigin()); + header('Access-Control-Allow-Headers: *'); + if ($this->shouldAllowCredentials()) { + header('Access-Control-Allow-Credentials: true'); + } + header("Accept-Encoding: " . implode(",", ContentParser::getSupportedEncodings())); + + $response = $this->runApi(); + $response->output(); + + return true; + } +} \ No newline at end of file diff --git a/src/Api/Action/BulkDeleteLogsAction.php b/src/Api/Action/BulkDeleteLogsAction.php new file mode 100644 index 0000000..725c41c --- /dev/null +++ b/src/Api/Action/BulkDeleteLogsAction.php @@ -0,0 +1,77 @@ +getContent(); + if ($data instanceof ApiError) { + return $data; + } + + if (count($data) === 0) { + return new ApiError(400, "No logs provided."); + } + if (count($data) > static::MAX_IDS) { + return new ApiError(400, "Too many logs. Maximum is " . static::MAX_IDS . "."); + } + + $ids = []; + foreach ($data as $log) { + if (!is_array($log)) { + return new ApiError(400, "Each entry must be an object with 'id' and 'token' fields."); + } + if (!isset($log["id"]) || !is_string($log["id"]) || + !preg_match("/^" . Id::PATTERN . "$/", $log["id"])) { + return new ApiError(400, "Each log must have a valid 'id' field."); + } + if (!isset($log["token"]) || !is_string($log["token"])) { + return new ApiError(400, "Each log must have a valid 'token' field."); + } + $ids[] = $log["id"]; + } + + $logs = Log::findAll($ids, false); + + $deleteIds = []; + $response = new MultiResponse(); + foreach ($data as $log) { + $id = $log["id"]; + $token = $log["token"]; + + $log = $logs[$id] ?? null; + if (!$log) { + $response->addResponse($id, new ApiError(404, "Log not found.")); + continue; + } + + $logToken = $log->getToken(); + if (!$logToken || !$logToken->matches($token)) { + $response->addResponse($id, new ApiError(403, "Invalid token.")); + continue; + } + + $deleteIds[] = $id; + $response->addResponse($id, new ApiResponse()); + } + + MongoDBClient::getInstance()->deleteLogs($deleteIds); + + return $response; + } +} diff --git a/src/Api/Action/CreateLogAction.php b/src/Api/Action/CreateLogAction.php new file mode 100644 index 0000000..6200f33 --- /dev/null +++ b/src/Api/Action/CreateLogAction.php @@ -0,0 +1,43 @@ +getContent(); + + if ($data instanceof ApiError) { + return $data; + } + + $content = $data['content']; + $metadata = []; + if (isset($data['metadata']) && is_array($data['metadata'])) { + $metadata = MetadataEntry::allFromArray($data['metadata']); + } + $source = null; + if (isset($data['source']) && is_string($data['source'])) { + $source = $data['source']; + } + + $log = Log::create($content, $metadata, $source); + + if ($this->includeCookie) { + $log->setTokenCookie(); + } + + return new LogResponse($log, $this->includeToken); + } +} diff --git a/src/Api/Action/DeleteLogAction.php b/src/Api/Action/DeleteLogAction.php new file mode 100644 index 0000000..dc0a6ad --- /dev/null +++ b/src/Api/Action/DeleteLogAction.php @@ -0,0 +1,60 @@ +getRequestToken(); + + if (!$requestToken) { + return new ApiError(400, "Missing token."); + } + + $id = new Id(URL::getLastPathPart()); + $log = Log::find($id); + + if (!$log) { + return new ApiError(404, "Log not found."); + } + + $token = $log->getToken(); + if (!$token || !$token->matches($requestToken)) { + return new ApiError(403, "Invalid token."); + } + + $deleted = $log->delete(); + if (!$deleted) { + return new ApiError(500, "Failed to delete log."); + } + + $this->handleDeletedLog($log); + + return new ApiResponse(); + } + + protected function handleDeletedLog(Log $log): void + { + + } +} diff --git a/src/Api/Action/EmptyAction.php b/src/Api/Action/EmptyAction.php new file mode 100644 index 0000000..412689f --- /dev/null +++ b/src/Api/Action/EmptyAction.php @@ -0,0 +1,13 @@ +getCodexLog(); + $codexLog->setIncludeEntries(false); + + return new CodexLogResponse($codexLog); + } +} \ No newline at end of file diff --git a/src/Api/Action/RateLimitErrorAction.php b/src/Api/Action/RateLimitErrorAction.php new file mode 100644 index 0000000..1adac3c --- /dev/null +++ b/src/Api/Action/RateLimitErrorAction.php @@ -0,0 +1,17 @@ +register(Method::GET, "#^/$#", new Frontend\Action\ApiDocsAction()) + ->register(Method::OPTIONS, "#^/.*$#", new Action\EmptyAction()) + ->register(Method::POST, "#^/1/log/?$#", new Action\CreateLogAction()) + ->register(Method::GET, "#^/1/log/" . Id::PATTERN . "$#", new Action\LogInfoAction()) + ->register(Method::DELETE, "#^/1/log/" . Id::PATTERN . "$#", new Action\DeleteLogAction()) + ->register(Method::POST, "#^/1/bulk/log/delete/?$#", new Action\BulkDeleteLogsAction()) + ->register(Method::GET, "#^/1/insights/" . Id::PATTERN . "$#", new Action\LogInsightsAction()) + ->register(Method::GET, "#^/1/raw/" . Id::PATTERN . "$#", new Action\RawLogAction()) + ->register(Method::POST, "#^/1/analyse/?$#", new Action\AnalyseLogAction()) + ->register(Method::GET, "#^/1/errors/rate$#", new Action\RateLimitErrorAction()) + ->register(Method::GET, "#^/1/limits$#", new Action\GetLimitsAction()) + ->register(Method::GET, "#^/1/filters#", new Action\GetFiltersAction()) + ->setDefaultAction(new Action\EndpointNotFoundAction()); + } +} diff --git a/src/Api/ContentParser.php b/src/Api/ContentParser.php new file mode 100644 index 0000000..cb3c600 --- /dev/null +++ b/src/Api/ContentParser.php @@ -0,0 +1,85 @@ +get(ConfigKey::STORAGE_LIMIT_BYTES) * 2; + $body = file_get_contents('php://input', length: $limit + 1); + if ($body === false) { + return new ApiError(500, "Failed to read request body."); + } + if (strlen($body) > $limit) { + return new ApiError(413, "Request body exceeds maximum allowed size."); + } + + $encodingHeader = $_SERVER['HTTP_CONTENT_ENCODING'] ?? ''; + if ($encodingHeader) { + $encodingSteps = explode(',', $encodingHeader); + if (count($encodingSteps) > static::MAX_ENCODING_STEPS) { + return new ApiError(400, "Too many Content-Encoding steps."); + } + foreach (array_reverse($encodingSteps) as $step) { + switch (trim(strtolower($step))) { + case "deflate": + $body = @gzinflate($body, $limit); + break; + case "x-gzip": + case "gzip": + $body = @gzdecode($body, $limit); + break; + default: + return new ApiError(415, "Unsupported Content-Encoding: " . htmlspecialchars($step)); + } + if ($body === false) { + return new ApiError(400, "Failed to decode request body with encoding: " . htmlspecialchars($step)); + } + } + } + + $contentTypeHeader = $_SERVER['CONTENT_TYPE'] ?? ''; + if ($pos = strpos($contentTypeHeader, ';')) { + $contentTypeHeader = substr($contentTypeHeader, 0, $pos); + } + switch ($contentTypeHeader) { + case "application/x-www-form-urlencoded": + parse_str($body, $data); + break; + case "application/json": + $data = @json_decode($body, true); + if (!is_array($data)) { + return new ApiError(400, "Failed to parse JSON body."); + } + break; + default: + return new ApiError(415, "Unsupported Content-Type: " . htmlspecialchars($contentTypeHeader)); + } + + return $data; + } +} diff --git a/src/Api/LogContentParser.php b/src/Api/LogContentParser.php new file mode 100644 index 0000000..c07a867 --- /dev/null +++ b/src/Api/LogContentParser.php @@ -0,0 +1,33 @@ +setHttpCode($httpCode); + } + + public function jsonSerialize(): array + { + $data = parent::jsonSerialize(); + $data['error'] = $this->message; + return $data; + } +} diff --git a/src/Api/Response/ApiResponse.php b/src/Api/Response/ApiResponse.php new file mode 100644 index 0000000..95ca74e --- /dev/null +++ b/src/Api/Response/ApiResponse.php @@ -0,0 +1,63 @@ + $this->success, + ]; + } + + /** + * @param int $httpCode + * @return $this + */ + public function setHttpCode(int $httpCode): static + { + $this->httpCode = $httpCode; + return $this; + } + + /** + * @return int + */ + public function getHttpCode(): int + { + return $this->httpCode; + } + + /** + * @param bool $success + * @return $this + */ + public function setSuccess(bool $success): static + { + $this->success = $success; + return $this; + } + + /** + * @return bool + */ + public function isSuccess(): bool + { + return $this->success; + } + + /** + * @return $this + */ + public function output(): static + { + header('Content-Type: application/json'); + http_response_code($this->httpCode); + echo json_encode($this, JSON_UNESCAPED_SLASHES); + return $this; + } +} diff --git a/src/Api/Response/CodexLogResponse.php b/src/Api/Response/CodexLogResponse.php new file mode 100644 index 0000000..f7835dd --- /dev/null +++ b/src/Api/Response/CodexLogResponse.php @@ -0,0 +1,17 @@ +codexLog->jsonSerialize()); + } +} \ No newline at end of file diff --git a/src/Api/Response/FiltersResponse.php b/src/Api/Response/FiltersResponse.php new file mode 100644 index 0000000..a2d137e --- /dev/null +++ b/src/Api/Response/FiltersResponse.php @@ -0,0 +1,13 @@ +get(ConfigKey::STORAGE_TTL); + $data['maxLength'] = $config->get(ConfigKey::STORAGE_LIMIT_BYTES); + $data['maxLines'] = $config->get(ConfigKey::STORAGE_LIMIT_LINES); + return $data; + } +} \ No newline at end of file diff --git a/src/Api/Response/LogResponse.php b/src/Api/Response/LogResponse.php new file mode 100644 index 0000000..2a48d85 --- /dev/null +++ b/src/Api/Response/LogResponse.php @@ -0,0 +1,64 @@ +loadFromGet(); + } + + public function loadFromGet(): static + { + $url = URL::getCurrent(); + $query = $url->getQuery(); + if (empty($query)) { + return $this; + } + parse_str($url->getQuery(), $get); + $this->withInsights = isset($get['insights']); + $this->withRaw = isset($get['raw']); + $this->withParsed = isset($get['parsed']); + return $this; + } + + public function jsonSerialize(): array + { + $data = parent::jsonSerialize(); + $data['id'] = $this->log->getId(); + $data['source'] = $this->log->getSource(); + $data['created'] = $this->log->getCreated()?->toDateTime()->getTimestamp(); + $data['expires'] = $this->log->getExpires()?->toDateTime()->getTimestamp(); + $data['size'] = $this->log->getSize(); + $data['lines'] = $this->log->getLinesCount(); + $data['errors'] = $this->log->getErrorsCount(); + $data['url'] = $this->log->getUrl()->toString(); + $data['raw'] = $this->log->getRawURL()->toString(); + if ($this->withToken) { + $data['token'] = $this->log->getToken(); + } + $data['metadata'] = $this->log->getMetadata(); + if ($this->withInsights || $this->withRaw || $this->withParsed) { + $data['content'] = []; + } + if ($this->withInsights) { + $data['content']['insights'] = $this->log->getCodexLog()->setIncludeEntries(false); + } + if ($this->withRaw) { + $data['content']['raw'] = $this->log->getContent(); + } + if ($this->withParsed) { + $data['content']['parsed'] = $this->log->getCodexLog()->getEntries(); + } + return $data; + } +} \ No newline at end of file diff --git a/src/Api/Response/MultiResponse.php b/src/Api/Response/MultiResponse.php new file mode 100644 index 0000000..cfb1ba4 --- /dev/null +++ b/src/Api/Response/MultiResponse.php @@ -0,0 +1,38 @@ +responses[$id] = $response; + return $this; + } + + public function jsonSerialize(): array + { + $response = parent::jsonSerialize(); + $results = []; + foreach ($this->responses as $id => $apiResponse) { + $result = $apiResponse->jsonSerialize(); + $result["id"] = $id; + $result["status"] = $apiResponse->getHttpCode(); + $results[] = $result; + } + $response["results"] = $results; + return $response; + } +} diff --git a/src/Api/Response/RawLogResponse.php b/src/Api/Response/RawLogResponse.php new file mode 100644 index 0000000..9e77a57 --- /dev/null +++ b/src/Api/Response/RawLogResponse.php @@ -0,0 +1,22 @@ +log->getContent(); + + return $this; + } + +} \ No newline at end of file diff --git a/src/Cache/CacheEntry.php b/src/Cache/CacheEntry.php new file mode 100644 index 0000000..685256b --- /dev/null +++ b/src/Cache/CacheEntry.php @@ -0,0 +1,43 @@ +getCacheCollection()->findOne([ + "_id" => $this->key + ]); + return $result?->data; + } + + /** + * @param string $data + * @param int $ttl + * @return $this + */ + public function set(string $data, int $ttl = 24 * 60 * 60): static + { + MongoDBClient::getInstance()->getCacheCollection()->updateOne( + ["_id" => $this->key], + ['$set' => [ + 'data' => $data, + 'expires' => new UTCDateTime((time() + $ttl) * 1000) + ]], + ['upsert' => true] + ); + return $this; + } + +} \ No newline at end of file diff --git a/src/Config/Config.php b/src/Config/Config.php new file mode 100644 index 0000000..ca5a155 --- /dev/null +++ b/src/Config/Config.php @@ -0,0 +1,88 @@ +jsonData = $data; + } + } + } + + /** + * Get config value by checking environment variable, then config file, then default value + * + * @param ConfigKey $key + * @return mixed + */ + public function get(ConfigKey $key): mixed + { + $env = getenv($key->getEnvironmentVariable()); + if ($env !== false) { + if ($env === "true") { + return true; + } else if ($env === "false") { + return false; + } + return $env; + } + + $json = $this->getJsonValue($key->getJSONPath()); + if ($json !== null) { + return $json; + } + + return $key->getDefaultValue(); + } + + /** + * @return string + */ + public function getName(): string + { + return $this->get(ConfigKey::FRONTEND_NAME) ?? URL::getBase()->getHost(); + } + + /** + * Recursively get a value from the json data by path + * + * @param array $path + * @param array|null $data + * @return mixed + */ + protected function getJsonValue(array $path, ?array $data = null): mixed + { + if ($data === null) { + $data = $this->jsonData; + } + + $nextKey = array_shift($path); + + if (!isset($data[$nextKey])) { + return null; + } + + $nextData = $data[$nextKey]; + if (count($path) === 0) { + return $nextData; + } + if (!is_array($nextData)) { + return null; + } + return $this->getJsonValue($path, $nextData); + } +} \ No newline at end of file diff --git a/src/Config/ConfigKey.php b/src/Config/ConfigKey.php new file mode 100644 index 0000000..260fc83 --- /dev/null +++ b/src/Config/ConfigKey.php @@ -0,0 +1,80 @@ + 90 * 24 * 60 * 60, + ConfigKey::STORAGE_LIMIT_BYTES => 10 * 1024 * 1024, + ConfigKey::STORAGE_LIMIT_LINES => 25000, + + ConfigKey::MONGODB_URL => 'mongodb://mongo:27017', + ConfigKey::MONGODB_DATABASE => 'mclogs', + + ConfigKey::ID_LENGTH => 7, + + ConfigKey::FRONTEND_ANALYTICS => false, + + ConfigKey::FRONTEND_ASSETS_INTEGRITY => true, + + ConfigKey::FRONTEND_COLOR_BACKGROUND => "#1a1a1a", + ConfigKey::FRONTEND_COLOR_TEXT => "#e8e8e8", + ConfigKey::FRONTEND_COLOR_ACCENT => "#5cb85c", + ConfigKey::FRONTEND_COLOR_ERROR => "#f62451", + + ConfigKey::WORKER_REQUESTS => 500, + + default => null + }; + } + + /** + * Get environment variable name + * + * @return string + */ + public function getEnvironmentVariable(): string + { + return "MCLOGS_" . $this->name; + } + + /** + * @return array + */ + public function getJSONPath(): array + { + $parts = explode("_", $this->name); + return array_map(fn($part) => strtolower($part), $parts); + } +} diff --git a/src/Data/Deobfuscator.php b/src/Data/Deobfuscator.php new file mode 100644 index 0000000..3952a82 --- /dev/null +++ b/src/Data/Deobfuscator.php @@ -0,0 +1,138 @@ +codexLog instanceof AnalysableLog) { + return null; + } + if (!$this->codexLog instanceof VanillaLog) { + return null; + } + $analysis = $this->codexLog->analyse(); + + /** + * @var ?Information $version + */ + $version = $analysis->getFilteredInsights(VanillaVersionInformation::class)[0] ?? null; + if (!$version) { + return null; + } + $version = $version->getValue(); + + try { + $map = $this->getObfuscationMap($version); + } catch (Exception) { + $map = null; + } + + if ($map === null) { + return null; + } + + $obfuscatedContent = new ObfuscatedString($this->codexLog->getLogFile()->getContent(), $map); + if ($content = $obfuscatedContent->getMappedContent()) { + return $content; + } + return null; + } + + /** + * Get the obfuscation map matching this log + * + * @param $version + * @return ObfuscationMap|null + * @throws Exception + */ + protected function getObfuscationMap($version): ?ObfuscationMap + { + if (in_array(get_class($this->codexLog), [ + VanillaServerLog::class, + VanillaClientLog::class, + VanillaCrashReportLog::class, + VanillaNetworkProtocolErrorReportLog::class + ])) { + $urlCache = new CacheEntry("sherlock:vanilla:$version:client"); + + $mapURL = $urlCache->get(); + if (!$mapURL) { + $mapURL = new LauncherMetaMapLocator($version, "client")->findMappingURL(); + + if (!$mapURL) { + return null; + } + + $urlCache->set($mapURL, 30 * 24 * 60 * 60); + } + + try { + $mapCache = new CacheEntry("sherlock:$mapURL"); + if ($mapContent = $mapCache->get()) { + $map = new VanillaObfuscationMap($mapContent); + } else { + $map = new URLVanillaObfuscationMap($mapURL); + $mapCache->set($map->getContent()); + } + } catch (Exception) { + } + return $map ?? null; + } + + if ($this->codexLog instanceof FabricLog) { + $urlCache = new CacheEntry("sherlock:yarn:$version:server"); + + $mapURL = $urlCache->get(); + if (!$mapURL) { + $mapURL = new FabricMavenMapLocator($version)->findMappingURL(); + + if (!$mapURL) { + return null; + } + + $urlCache->set($mapURL, 24 * 60 * 60); + } + + try { + $mapCache = new CacheEntry("sherlock:$mapURL"); + if ($mapContent = $mapCache->get()) { + $map = new YarnMap($mapContent); + } else { + $map = new GZURLYarnMap($mapURL); + $mapCache->set($map->getContent()); + } + } catch (Exception) { + } + return $map ?? null; + } + + return null; + } +} \ No newline at end of file diff --git a/src/Data/MetadataEntry.php b/src/Data/MetadataEntry.php new file mode 100644 index 0000000..04667c3 --- /dev/null +++ b/src/Data/MetadataEntry.php @@ -0,0 +1,198 @@ += static::MAX_ENTRIES) { + break; + } + } + return $entries; + } + + /** + * @param array $data + * @return MetadataEntry|null + */ + public static function fromArray(array $data): ?MetadataEntry + { + $entry = new MetadataEntry()->setFromArray($data); + if (!$entry->isValid()) { + return null; + } + return $entry; + } + + /** + * @param object $data + * @return MetadataEntry|null + */ + public static function fromObject(object $data): ?MetadataEntry + { + if ($data instanceof BSONDocument) { + $arrayData = $data->getArrayCopy(); + } else { + $arrayData = get_object_vars($data); + } + return static::fromArray($arrayData); + } + + public function jsonSerialize(): array + { + return [ + "key" => $this->key, + "value" => $this->value, + "label" => $this->label, + "visible" => $this->visible, + ]; + } + + public function bsonSerialize(): array + { + return $this->jsonSerialize(); + } + + public function getKey(): ?string + { + return $this->key; + } + + public function setKey(?string $key): static + { + if (is_string($key) && strlen($key) > static::MAX_KEY_LENGTH) { + $key = substr($key, 0, static::MAX_KEY_LENGTH); + } + $this->key = $key; + return $this; + } + + public function getValue(): mixed + { + return $this->value; + } + + /** + * @param mixed $value + * @return $this + */ + public function setValue(mixed $value): static + { + if (is_string($value)) { + if (strlen($value) > static::MAX_VALUE_LENGTH) { + $value = substr($value, 0, static::MAX_VALUE_LENGTH); + } + $this->value = $value; + return $this; + } + if (is_int($value) || is_float($value) || is_bool($value) || is_null($value)) { + $this->value = $value; + return $this; + } + $encodedValue = @json_encode($value); + if ($encodedValue === false) { + $this->value = null; + return $this; + } + if (strlen($encodedValue) > static::MAX_VALUE_LENGTH) { + $encodedValue = substr($encodedValue, 0, static::MAX_VALUE_LENGTH); + } + $this->value = $encodedValue; + return $this; + } + + public function getLabel(): ?string + { + return $this->label; + } + + public function getDisplayLabel(): ?string + { + return $this->label ?? $this->key; + } + + public function getDisplayValue(): string + { + return $this->value; + } + + public function setLabel(?string $label): static + { + if (is_string($label) && strlen($label) > static::MAX_LABEL_LENGTH) { + $label = substr($label, 0, static::MAX_LABEL_LENGTH); + } + $this->label = $label; + return $this; + } + + public function isVisible(): bool + { + return $this->visible; + } + + public function setVisible(bool $visible): static + { + $this->visible = $visible; + return $this; + } + + public function isValid(): bool + { + return $this->key !== null && $this->value !== null; + } + + /** + * @param array $data + * @return $this + */ + public function setFromArray(array $data): static + { + if (isset($data['key']) && is_string($data['key'])) { + $this->setKey($data['key']); + } + if (isset($data['value'])) { + $this->setValue($data['value']); + } + if (isset($data['label']) && is_string($data['label'])) { + $this->setLabel($data['label']); + } + if (isset($data['visible']) && is_bool($data['visible'])) { + $this->setVisible($data['visible']); + } + return $this; + } +} diff --git a/src/Data/Token.php b/src/Data/Token.php new file mode 100644 index 0000000..920e96f --- /dev/null +++ b/src/Data/Token.php @@ -0,0 +1,42 @@ +value === null) { + $this->generate(); + } + } + + /** + * @param string $token + * @return bool + */ + public function matches(string $token): bool + { + return hash_equals($this->value, $token); + } + + public function jsonSerialize(): string + { + return $this->value; + } + + /** + * @throws RandomException + */ + protected function generate(): void + { + $this->value = bin2hex(random_bytes(32)); + } + + public function get(): ?string + { + return $this->value; + } +} \ No newline at end of file diff --git a/src/Detective.php b/src/Detective.php new file mode 100644 index 0000000..ab6efdc --- /dev/null +++ b/src/Detective.php @@ -0,0 +1,16 @@ +addDetective(new \Aternos\Codex\Minecraft\Detective\Detective()) + ->addDetective(new \Aternos\Codex\Hytale\Detective\Detective()); + } +} \ No newline at end of file diff --git a/src/Filter/AccessTokenFilter.php b/src/Filter/AccessTokenFilter.php new file mode 100644 index 0000000..1481b77 --- /dev/null +++ b/src/Filter/AccessTokenFilter.php @@ -0,0 +1,21 @@ +filter($data); + } + return $data; + } + + /** + * @return FilterType + */ + abstract public function getType(): FilterType; + + /** + * @return array + */ + abstract public function getData(): mixed; + + /** + * @return array + */ + public function jsonSerialize(): array + { + return [ + "type" => $this->getType()->value, + "data" => $this->getData(), + ]; + } + + /** + * Filter the $data string and return it + * + * @param string $data + * @return string + */ + abstract public function filter(string $data): string; +} \ No newline at end of file diff --git a/src/Filter/FilterType.php b/src/Filter/FilterType.php new file mode 100644 index 0000000..e1d30e1 --- /dev/null +++ b/src/Filter/FilterType.php @@ -0,0 +1,11 @@ +get(ConfigKey::STORAGE_LIMIT_BYTES); + return mb_strcut($data, 0, $lengthLimit); + } + + /** + * @return FilterType + */ + public function getType(): FilterType + { + return FilterType::LIMIT_BYTES; + } + + /** + * @return array + */ + public function getData(): array + { + return [ + "limit" => Config::getInstance()->get(ConfigKey::STORAGE_LIMIT_BYTES) + ]; + } +} \ No newline at end of file diff --git a/src/Filter/LimitLinesFilter.php b/src/Filter/LimitLinesFilter.php new file mode 100644 index 0000000..e6db1cc --- /dev/null +++ b/src/Filter/LimitLinesFilter.php @@ -0,0 +1,41 @@ +get(ConfigKey::STORAGE_LIMIT_LINES); + return implode("\n", array_slice(explode("\n", $data), 0, $linesLimit)); + } + + /** + * @return FilterType + */ + public function getType(): FilterType + { + return FilterType::LIMIT_LINES; + } + + /** + * @return array + */ + public function getData(): array + { + return [ + "limit" => Config::getInstance()->get(ConfigKey::STORAGE_LIMIT_LINES) + ]; + } +} \ No newline at end of file diff --git a/src/Filter/Pattern/Modifier.php b/src/Filter/Pattern/Modifier.php new file mode 100644 index 0000000..cd4c7af --- /dev/null +++ b/src/Filter/Pattern/Modifier.php @@ -0,0 +1,16 @@ +value; + } +} \ No newline at end of file diff --git a/src/Filter/Pattern/Pattern.php b/src/Filter/Pattern/Pattern.php new file mode 100644 index 0000000..a1508c9 --- /dev/null +++ b/src/Filter/Pattern/Pattern.php @@ -0,0 +1,51 @@ +modifiers as $modifier) { + $modifiersString .= $modifier->value; + } + return static::DELIMITER . $this->pattern . static::DELIMITER . $modifiersString; + } + + public function getPattern(): string + { + return $this->pattern; + } + + public function getModifiers(): array + { + return $this->modifiers; + } + + public function jsonSerialize(): array + { + return [ + 'pattern' => $this->getPattern(), + 'modifiers' => $this->getModifiers() + ]; + } +} \ No newline at end of file diff --git a/src/Filter/Pattern/PatternWithReplacement.php b/src/Filter/Pattern/PatternWithReplacement.php new file mode 100644 index 0000000..885fc13 --- /dev/null +++ b/src/Filter/Pattern/PatternWithReplacement.php @@ -0,0 +1,26 @@ +replacement; + } + + public function jsonSerialize(): array + { + return array_merge( + parent::jsonSerialize(), + [ + 'replacement' => $this->getReplacement() + ] + ); + } +} \ No newline at end of file diff --git a/src/Filter/RegexFilter.php b/src/Filter/RegexFilter.php new file mode 100644 index 0000000..b92dc8c --- /dev/null +++ b/src/Filter/RegexFilter.php @@ -0,0 +1,59 @@ + $this->getPatterns(), + "exemptions" => $this->getExemptions(), + ]; + } + + /** + * @inheritDoc + */ + public function filter(string $data): string + { + foreach ($this->getPatterns() as $pattern) { + $data = preg_replace_callback($pattern->get(), function ($matches) use ($pattern) { + foreach ($this->getExemptions() as $exemptionPattern) { + if (preg_match($exemptionPattern->get(), $matches[0])) { + return $matches[0]; + } + } + return $pattern->getReplacement(); + }, $data); + } + return $data; + } +} \ No newline at end of file diff --git a/src/Filter/TrimFilter.php b/src/Filter/TrimFilter.php new file mode 100644 index 0000000..235129c --- /dev/null +++ b/src/Filter/TrimFilter.php @@ -0,0 +1,29 @@ +toString(); + } + + protected function shouldAllowCredentials(): bool + { + return true; + } +} \ No newline at end of file diff --git a/src/Frontend/Action/DeleteLogAction.php b/src/Frontend/Action/DeleteLogAction.php new file mode 100644 index 0000000..11be73d --- /dev/null +++ b/src/Frontend/Action/DeleteLogAction.php @@ -0,0 +1,30 @@ +toString(); + } + + protected function shouldAllowCredentials(): bool + { + return true; + } + + protected function getRequestToken(): ?string + { + return new TokenCookie()->getValue(); + } + + protected function handleDeletedLog(Log $log): void + { + new TokenCookie()->setLog($log)->delete(); + } +} \ No newline at end of file diff --git a/src/Frontend/Action/FaviconAction.php b/src/Frontend/Action/FaviconAction.php new file mode 100644 index 0000000..1c20e9a --- /dev/null +++ b/src/Frontend/Action/FaviconAction.php @@ -0,0 +1,15 @@ +renew(); + + require __DIR__ . "/../../../web/frontend/log.php"; + return true; + } +} \ No newline at end of file diff --git a/src/Frontend/Assets/Asset.php b/src/Frontend/Assets/Asset.php new file mode 100644 index 0000000..7bac960 --- /dev/null +++ b/src/Frontend/Assets/Asset.php @@ -0,0 +1,105 @@ +type) || !isset($data->path) || !isset($data->hash)) { + return null; + } + + $type = AssetType::tryFrom($data->type); + if ($type === null) { + return null; + } + + return new static($type, $data->path, $data->hash); + } + + public function __construct( + protected AssetType $type, + protected string $path, + protected ?string $hash = null) + { + $this->path = ltrim($this->path, '/'); + } + + public function getPath(): string + { + return $this->path; + } + + public function getPathWithVersion(): string + { + return $this->path . '?v=' . rawurlencode(substr($this->getHash(), 0, 16)); + } + + protected function getAbsoluteBasePath(): string + { + return __DIR__ . "/../../../web/public/"; + } + + protected function getAbsolutePath(): string + { + return $this->getAbsoluteBasePath() . $this->path; + } + + protected function buildHash(): string + { + return hash_file(static::HASH_ALGORITHM, $this->getAbsolutePath()); + } + + protected function getHash(): string + { + if ($this->hash === null) { + return $this->buildHash(); + } + return $this->hash; + } + + protected function getBase64Hash(): string + { + return base64_encode(hex2bin($this->getHash())); + } + + public function jsonSerialize(): array + { + return [ + 'type' => $this->getType()->value, + 'path' => $this->getPath(), + 'hash' => $this->getHash(), + ]; + } + + public function getType(): AssetType + { + return $this->type; + } + + public function getHTML(): string + { + return match ($this->type) { + AssetType::CSS => 'getIntegrityAttribute() . ' />', + AssetType::JS => '' + }; + } + + protected function getIntegrityAttribute(): string + { + if (!Config::getInstance()->get(ConfigKey::FRONTEND_ASSETS_INTEGRITY)) { + return ''; + } + return ' integrity="' . static::HASH_ALGORITHM . '-' . $this->getBase64Hash() . '"'; + } +} \ No newline at end of file diff --git a/src/Frontend/Assets/AssetLoader.php b/src/Frontend/Assets/AssetLoader.php new file mode 100644 index 0000000..ea8ddad --- /dev/null +++ b/src/Frontend/Assets/AssetLoader.php @@ -0,0 +1,101 @@ +loadCache(); + } + + /** + * @param AssetType $assetType + * @param string $path + * @return string + */ + public function getHTML(AssetType $assetType, string $path): string + { + return $this->getAsset($assetType, $path)->getHTML(); + } + + /** + * @param AssetType $assetType + * @param string $path + * @return Asset + */ + protected function getAsset(AssetType $assetType, string $path): Asset + { + $cachedAsset = $this->findCachedAsset($assetType, $path); + if ($cachedAsset !== null) { + return $cachedAsset; + } + return new Asset($assetType, $path); + } + + /** + * @param AssetType $assetType + * @param string $path + * @return Asset|null + */ + protected function findCachedAsset(AssetType $assetType, string $path): ?Asset + { + foreach ($this->cachedAssets as $asset) { + if ($asset->getPath() === $path && $asset->getType() === $assetType) { + return $asset; + } + } + return null; + } + + protected function loadCache(): void + { + if (!file_exists(self::CACHE_PATH)) { + return; + } + + $content = file_get_contents(self::CACHE_PATH); + if ($content === false) { + return; + } + + $data = json_decode($content); + if (!is_array($data)) { + return; + } + + foreach ($data as $assetData) { + if (!is_object($assetData)) { + continue; + } + $asset = Asset::fromObject($assetData); + if ($asset === null) { + continue; + } + $this->cachedAssets[] = $asset; + } + } + + public function writeCache(): void + { + $assets = [ + new Asset(AssetType::CSS, "css/mclogs.css"), + new Asset(AssetType::JS, "js/start.js"), + new Asset(AssetType::JS, "js/log.js"), + new Asset(AssetType::CSS, "vendor/fontawesome/css/fontawesome.min.css") + ]; + + file_put_contents(static::CACHE_PATH, json_encode($assets)); + } +} \ No newline at end of file diff --git a/src/Frontend/Assets/AssetType.php b/src/Frontend/Assets/AssetType.php new file mode 100644 index 0000000..0493e28 --- /dev/null +++ b/src/Frontend/Assets/AssetType.php @@ -0,0 +1,9 @@ +getScheme() === "https"; + } + + /** + * @return bool + */ + protected function isHttpOnly(): bool + { + return true; + } + + /** + * @return string + */ + protected function getSameSite(): string + { + return "Lax"; + } + + public function __construct() + { + $this->value = $_COOKIE[$this->getKey()] ?? null; + } + + /** + * @param string $value + * @return bool + */ + public function set(string $value): bool + { + $options = [ + 'expires' => $this->getMaxAge() !== null ? time() + $this->getMaxAge() : 0, + 'path' => $this->getPath(), + 'domain' => $this->getDomain(), + 'secure' => $this->isSecure(), + 'httponly' => $this->isHttpOnly(), + 'samesite' => $this->getSameSite() + ]; + + $result = setcookie( + $this->getKey(), + $value, + $options + ); + + if ($result) { + $this->value = $value; + } + + return $result; + } + + /** + * @return bool + */ + public function delete(): bool + { + $options = [ + 'expires' => time() - 3600, + 'path' => $this->getPath(), + 'domain' => $this->getDomain(), + 'secure' => $this->isSecure(), + 'httponly' => $this->isHttpOnly(), + 'samesite' => $this->getSameSite() + ]; + + $result = setcookie( + $this->getKey(), + '', + $options + ); + + if ($result) { + $this->value = null; + } + + return $result; + } + + /** + * @return string|null + */ + public function getValue(): ?string + { + return $this->value; + } + + /** + * @return bool + */ + public function exists(): bool + { + return $this->getValue() !== null; + } +} \ No newline at end of file diff --git a/src/Frontend/Cookie/SettingsCookie.php b/src/Frontend/Cookie/SettingsCookie.php new file mode 100644 index 0000000..0e0522f --- /dev/null +++ b/src/Frontend/Cookie/SettingsCookie.php @@ -0,0 +1,14 @@ +log = $log; + return $this; + } + + /** + * @inheritDoc + */ + protected function getKey(): string + { + return "MCLOGS_LOG_TOKEN"; + } + + /** + * @param Log|null $log + */ + public function __construct(protected ?Log $log = null) + { + parent::__construct(); + } + + /** + * @return string + */ + protected function getPath(): string + { + if (!$this->log) { + return "/"; + } + return "/" . $this->log->getId()->get(); + } + + protected function getMaxAge(): ?int + { + return Config::getInstance()->get(ConfigKey::STORAGE_TTL); + } +} \ No newline at end of file diff --git a/src/Frontend/FrontendRouter.php b/src/Frontend/FrontendRouter.php new file mode 100644 index 0000000..42bc91f --- /dev/null +++ b/src/Frontend/FrontendRouter.php @@ -0,0 +1,21 @@ +register(Method::GET, "#^/$#", new Action\StartAction()) + ->register(Method::GET, "#^/" . Id::PATTERN . "$#", new Action\ViewLogAction()) + ->register(Method::POST, "#^/new$#", new Action\CreateLogAction()) + ->register(Method::DELETE, "#^/" . Id::PATTERN . "$#", new Action\DeleteLogAction()) + ->register(Method::GET, "#^/favicon\.svg$#", new Action\FaviconAction()) + ->setDefaultAction(new Action\NotFoundAction()); + } +} \ No newline at end of file diff --git a/src/Frontend/Settings/Setting.php b/src/Frontend/Settings/Setting.php new file mode 100644 index 0000000..2a59093 --- /dev/null +++ b/src/Frontend/Settings/Setting.php @@ -0,0 +1,39 @@ + "Full Width", + Setting::NO_WRAP => "No Wrap", + Setting::FLOATING_SCROLLBAR => "Floating Scrollbar", + Setting::OVERFLOW => "Overflow" + }; + } + + /** + * @return string|null + */ + function getBodyClass(): ?string + { + return match ($this) { + Setting::FULL_WIDTH => "setting-full-width", + Setting::NO_WRAP => "setting-no-wrap", + Setting::FLOATING_SCROLLBAR => "setting-floating-scrollbar", + Setting::OVERFLOW => "setting-overflow", + default => null + }; + } +} diff --git a/src/Frontend/Settings/Settings.php b/src/Frontend/Settings/Settings.php new file mode 100644 index 0000000..50c12f9 --- /dev/null +++ b/src/Frontend/Settings/Settings.php @@ -0,0 +1,66 @@ + + */ + protected array $data = []; + + public function __construct() + { + $rawData = new SettingsCookie()->getValue(); + if ($rawData) { + $parsedData = json_decode($rawData, true); + if (is_array($parsedData)) { + $this->data = $parsedData; + } + } + } + + /** + * @param Setting $key + * @return bool + */ + public function get(Setting $key): bool + { + $value = $this->data[$key->value] ?? false; + if (is_bool($value)) { + return $value; + } + return false; + } + + /** + * @return string[] + */ + public function getBodyClasses(): array + { + $classes = []; + foreach (Setting::cases() as $setting) { + if ($this->get($setting)) { + $bodyClass = $setting->getBodyClass(); + if ($bodyClass) { + $classes[] = $bodyClass; + } + } + } + return $classes; + } + + /** + * @return string + */ + public function getBodyClassesString(): string + { + $classes = $this->getBodyClasses(); + if (empty($classes)) { + return ""; + } + return " " . implode(" ", $this->getBodyClasses()); + } +} \ No newline at end of file diff --git a/src/Id.php b/src/Id.php new file mode 100644 index 0000000..a2f25d1 --- /dev/null +++ b/src/Id.php @@ -0,0 +1,60 @@ +id === null) { + $this->generate(); + } + } + + /** + * Generates a new id + * + * @return string + */ + protected function generate(): string + { + $config = \Aternos\Mclogs\Config\Config::getInstance(); + $idLength = $config->get(ConfigKey::ID_LENGTH); + + $newId = ""; + for ($i = 0; $i < $idLength; $i++) { + $newId .= static::CHARACTERS[rand(0, strlen(static::CHARACTERS) - 1)]; + } + + return $this->id = $newId; + } + + /** + * @return string + */ + public function get(): string + { + return $this->id; + } + + /** + * @return string + */ + public function __toString(): string + { + return $this->id; + } + + public function jsonSerialize(): string + { + return $this->id; + } +} \ No newline at end of file diff --git a/src/Log.php b/src/Log.php new file mode 100644 index 0000000..c5881b8 --- /dev/null +++ b/src/Log.php @@ -0,0 +1,516 @@ +findLog($id, $includeContent); + if ($data === null) { + return null; + } + + return static::fromObject($id, $data); + } + + /** + * @param (string|Id)[] $ids + * @param bool $includeContent + * @return array + */ + public static function findAll(array $ids, bool $includeContent = true): array + { + $ids = array_map(fn($id) => (string)$id, $ids); + $objects = MongoDBClient::getInstance()->findLogs($ids, $includeContent); + $logs = []; + foreach ($objects as $data) { + $id = new Id($data->_id); + $logs[$id->get()] = static::fromObject($id, $data); + } + return $logs; + } + + /** + * @param Id $id + * @param object $data + * @return static + */ + protected static function fromObject(Id $id, object $data): static + { + return new static($id) + ->setContent($data->data ?? "") + ->setToken(isset($data->token) ? new Token($data->token) : null) + ->setMetadata(MetadataEntry::allFromArray($data->metadata ?? [])) + ->setSource($data->source ?? null) + ->setCreated($data->created ?? null) + ->setExpires($data->expires ?? null); + } + + /** + * Create and save a new log + * + * @param string $content + * @param MetadataEntry[] $metadata + * @param string|null $source + * @return static + */ + public static function create(string $content, array $metadata = [], ?string $source = null): static + { + return new static() + ->setMetadata($metadata) + ->setSource($source) + ->setToken(new Token()) + ->save($content); + } + + /** + * @param Id|null $id + */ + public function __construct(protected ?Id $id = null) + { + } + + /** + * @param Token|null $token + * @return $this + */ + public function setToken(?Token $token): static + { + $this->token = $token; + return $this; + } + + /** + * @param MetadataEntry[] $metadata + * @return $this + */ + public function setMetadata(array $metadata): static + { + $this->metadata = $metadata; + return $this; + } + + /** + * @param MetadataEntry $metadataEntry + * @return $this + */ + public function addMetadata(MetadataEntry $metadataEntry): static + { + $this->metadata[] = $metadataEntry; + return $this; + } + + /** + * @param string|null $source + * @return $this + */ + public function setSource(?string $source): static + { + if (is_string($source) && strlen($source) > static::SOURCE_MAX_LENGTH) { + $source = substr($source, 0, static::SOURCE_MAX_LENGTH); + } + $this->source = $source; + return $this; + } + + /** + * @return string|null + */ + public function getSource(): ?string + { + return $this->source; + } + + /** + * @param UTCDateTime|null $created + * @return $this + */ + public function setCreated(?UTCDateTime $created): static + { + $this->created = $created; + return $this; + } + + /** + * @param UTCDateTime|null $expires + * @return $this + */ + public function setExpires(?UTCDateTime $expires): static + { + $this->expires = $expires; + return $this; + } + + /** + * @return UTCDateTime|null + */ + public function getCreated(): ?UTCDateTime + { + return $this->created; + } + + /** + * @return UTCDateTime|null + */ + public function getExpires(): ?UTCDateTime + { + return $this->expires; + } + + /** + * @param string $content + * @return $this + */ + public function setContent(string $content): static + { + $this->processAndDeobfuscate($content); + return $this; + } + + public function getContent(): string + { + return $this->log->getLogFile()->getContent(); + } + + protected function processAndDeobfuscate(string $data): void + { + $this->process($data); + $deobfuscator = new Deobfuscator($this->getCodexLog()); + if ($deobfuscatedData = $deobfuscator->deobfuscate()) { + $this->process($deobfuscatedData); + } + } + + protected function process($data): void + { + $this->log = new Detective()->setLogFile(new StringLogFile($data))->detect(); + $this->log->parse(); + if ($this->log instanceof AnalysableLogInterface) { + $this->log->analyse(); + } + } + + /** + * Get the codex log object + * + * @return LogInterface + */ + public function getCodexLog(): LogInterface + { + return $this->log; + } + + /** + * Get the log analysis + * + * @return Analysis|null + */ + public function getAnalysis(): ?Analysis + { + $log = $this->getCodexLog(); + if ($log instanceof AnalysableLogInterface) { + return $log->analyse(); + } + return null; + } + + /** + * @return Printer + */ + public function getPrinter(): Printer + { + if ($this->printer === null) { + $this->printer = new Printer()->setLog($this->log)->setId($this->id); + } + return $this->printer; + } + + /** + * Get the amount of lines in this log + * + * @return int + */ + public function getLinesCount(): int + { + $codexLog = $this->getCodexLog(); + $lines = 0; + foreach ($codexLog as $entry) { + $lines += count($entry); + } + return $lines; + } + + /** + * @return string + */ + public function getLinesString(): string + { + $lineCount = $this->getLinesCount(); + return $lineCount . ($lineCount === 1 ? " line" : " lines"); + } + + /** + * @return int + */ + public function getSize(): int + { + return strlen($this->getContent()); + } + + /** + * Get the amount of error entries in the log + * + * @return int + */ + public function getErrorsCount(): int + { + $errorCount = 0; + + foreach ($this->log as $entry) { + if ($entry->getLevel()->asInt() <= Level::ERROR->asInt()) { + $errorCount++; + } + } + + return $errorCount; + } + + /** + * @return bool + */ + public function hasErrors(): bool + { + return $this->getErrorsCount() > 0; + } + + /** + * @return string + */ + public function getErrorsString(): string + { + $errorCount = $this->getErrorsCount(); + return $errorCount . ($errorCount === 1 ? " error" : " errors"); + } + + protected function generateId(): Id + { + do { + $this->id = new Id(); + } while (MongoDBClient::getInstance()->hasLog($this->id)); + return $this->id; + } + + /** + * Save the log to the database + * + * @return $this + */ + public function save(string $content): static + { + if ($this->id === null) { + $this->generateId(); + } + + $content = Filter::filterAll($content); + + MongoDBClient::getInstance()->getLogsCollection()->insertOne([ + "_id" => $this->id->get(), + "data" => $content, + "token" => $this->token?->get(), + "source" => $this->source, + "metadata" => $this->metadata, + "expires" => $this->expires = $this->getExpiryTimestamp(), + "created" => $this->created = new UTCDateTime() + ]); + + return $this->setContent($content); + } + + /** + * @return UTCDateTime + */ + protected function getExpiryTimestamp(): UTCDateTime + { + $ttl = \Aternos\Mclogs\Config\Config::getInstance()->get(ConfigKey::STORAGE_TTL); + $expires = time() + $ttl; + return new UTCDateTime($expires * 1000); + } + + /** + * Renew the expiry timestamp to expand the ttl + * + * @return bool + */ + public function renew(): bool + { + $expires = $this->getExpiryTimestamp(); + $result = MongoDBClient::getInstance()->setLogExpires($this->id, $expires); + if ($result) { + $this->expires = $expires; + } + return $result; + } + + /** + * @return Uri + */ + public function getURL(): Uri + { + return URL::getBase()->withPath("/" . $this->id->get()); + } + + /** + * + * @return string + */ + public function getDisplayURL(): string + { + $url = $this->getURL(); + return $url->getHost() . $url->getPath(); + } + + /** + * @return Uri + */ + public function getRawURL(): Uri + { + return URL::getApi()->withPath("/1/raw/" . $this->id->get()); + } + + /** + * @return Id|null + */ + public function getId(): ?Id + { + return $this->id; + } + + /** + * @return Token|null + */ + public function getToken(): ?Token + { + return $this->token; + } + + /** + * @return bool + */ + public function delete(): bool + { + return MongoDBClient::getInstance()->deleteLog($this->id->get()); + } + + /** + * @return MetadataEntry[] + */ + public function getMetadata(): array + { + return $this->metadata; + } + + /** + * @return MetadataEntry[] + */ + public function getVisibleMetadata(): array + { + return array_filter($this->metadata, function (MetadataEntry $entry) { + return $entry->isVisible(); + }); + } + + /** + * @return bool + */ + public function setTokenCookie(): bool + { + if (!$this->getToken()) { + return false; + } + return new TokenCookie($this)->set($this->getToken()->get()); + } + + /** + * @return bool + */ + public function hasValidTokenCookie(): bool + { + $tokenCookie = new TokenCookie(); + $cookieValue = $tokenCookie->getValue(); + if ($cookieValue === null || !$this->getToken()) { + return false; + } + return $this->getToken()->matches($cookieValue); + } + + /** + * @return string + */ + public function getPageTitle(): string + { + return $this->getCodexLog()?->getTitle() . " [#" . $this->getId()?->get() . "]"; + } + + /** + * @return string + */ + public function getPageDescription(): string + { + $description = $this->getLinesString(); + if ($this->hasErrors()) { + $description .= " | " . $this->getErrorsString(); + } + + $problems = $this->getAnalysis()->getProblems(); + + if (count($problems) > 0) { + $problemString = "problems"; + if (count($problems) === 1) { + $problemString = "problem"; + } + $description .= " | " . count($problems) . " " . $problemString . " automatically detected"; + } + + return $description; + } +} diff --git a/src/Printer/FormatModification.php b/src/Printer/FormatModification.php new file mode 100644 index 0000000..a4f425c --- /dev/null +++ b/src/Printer/FormatModification.php @@ -0,0 +1,20 @@ +addModification(new FormatModification()); + } + + /** + * @var Id + */ + protected Id $id; + + /** + * @param Id $id + * @return Printer + */ + public function setId(Id $id): static + { + $this->id = $id; + return $this; + } + + /** + * @return string + */ + protected function printLog(): string + { + return '
' . parent::printLog() . '
'; + } + + /** + * @param EntryInterface|null $entry + * @return string + * @throws \Exception + */ + protected function printEntry(?EntryInterface $entry = null): string + { + $entry = $entry ?? $this->entry; + /** @var Entry $entry */ + $return = ''; + $first = true; + foreach ($entry as $line) { + $entryClass = "entry-no-error"; + if ($entry->getLevel()->asInt() <= Level::ERROR->asInt()) { + $entryClass = "entry-error"; + } + $return .= '
'; + $return .= ''; + $return .= '
'; + $lineString = $this->printLine($line); + if ($entry->getPrefix() !== null) { + $prefix = htmlentities($entry->getPrefix()); + $lineString = str_replace($prefix, '' . $prefix . '', $lineString); + } + $return .= $lineString; + $return .= '
'; + $return .= '
'; + $first = false; + } + + return $return; + } + + /** + * @param LineInterface $line + * @return string + */ + protected function printLine(LineInterface $line): string + { + return $this->runModifications(htmlentities($line->getText())) . PHP_EOL; + } +} diff --git a/src/Router/Action.php b/src/Router/Action.php new file mode 100644 index 0000000..0accfc3 --- /dev/null +++ b/src/Router/Action.php @@ -0,0 +1,8 @@ +getMethod() !== $method) { + return false; + } + return preg_match($this->getPattern(), $path) === 1; + } + + /** + * @return Method + */ + public function getMethod(): Method + { + return $this->method; + } + + /** + * @return string + */ + public function getPattern(): string + { + return $this->pattern; + } + + /** + * @return Action + */ + public function getAction(): Action + { + return $this->action; + } +} \ No newline at end of file diff --git a/src/Router/Router.php b/src/Router/Router.php new file mode 100644 index 0000000..2126f68 --- /dev/null +++ b/src/Router/Router.php @@ -0,0 +1,73 @@ +routes[] = new Route($method, $pattern, $action); + return $this; + } + + /** + * @param Action $defaultAction + * @return $this + */ + public function setDefaultAction(Action $defaultAction): static + { + $this->defaultAction = $defaultAction; + return $this; + } + + /** + * @return $this + */ + public function run(): static + { + $route = $this->findRoute(); + if (!$route) { + $this->defaultAction?->run(); + return $this; + } + $result = $route->getAction()->run(); + if (!$result) { + $this->defaultAction?->run(); + } + return $this; + } + + /** + * @return Route|null + */ + protected function findRoute(): ?Route + { + $path = URL::getCurrent()->getPath(); + $method = Method::getCurrent(); + + foreach ($this->routes as $route) { + if ($route->matches($method, $path)) { + return $route; + } + } + return null; + } +} diff --git a/src/Storage/MongoDBClient.php b/src/Storage/MongoDBClient.php new file mode 100644 index 0000000..43e3079 --- /dev/null +++ b/src/Storage/MongoDBClient.php @@ -0,0 +1,234 @@ +get(ConfigKey::MONGODB_URL); + $url = new Uri($configUrl); + $query = $url->getQuery(); + $queryParams = []; + if ($query !== null) { + parse_str($query, $queryParams); + } + if (!isset($queryParams['serverSelectionTimeoutMS'])) { + $queryParams['serverSelectionTimeoutMS'] = 5_000; + } + if (!isset($queryParams['socketTimeoutMS'])) { + $queryParams['socketTimeoutMS'] = 60_000; + } + $newQuery = http_build_query($queryParams); + $newUrl = $url->withQuery($newQuery); + return $newUrl->toString(); + } + + /** + * Connect to MongoDB + */ + protected function connect(): void + { + if ($this->connection === null) { + $config = Config::getInstance(); + $this->connection = new Client($this->getConnectionURL()); + $this->database = $this->connection->getDatabase($config->get(ConfigKey::MONGODB_DATABASE)); + } + } + + /** + * Ensure indexes exist + * + * @return void + */ + public function ensureIndexes(): void + { + $logs = $this->getLogsCollection(); + $logs->createIndex(['expires' => 1], ['expireAfterSeconds' => 0]); + + $cache = $this->getCacheCollection(); + $cache->createIndex(['expires' => 1], ['expireAfterSeconds' => 0]); + } + + /** + * @return void + */ + public function reset(): void + { + $this->connection = null; + $this->logs = null; + $this->cache = null; + } + + /** + * Get the collection for logs + * + * @return Collection + */ + public function getLogsCollection(): Collection + { + if ($this->logs === null) { + $this->connect(); + $this->logs = $this->database->getCollection('logs'); + } + return $this->logs; + } + + /** + * @param string $id + * @param bool $includeContent + * @return object|null + */ + public function findLog(string $id, bool $includeContent = true): ?object + { + $options = []; + if (!$includeContent) { + $options['projection'] = ['data' => 0]; + } + + $collection = $this->getLogsCollection(); + $result = $collection->findOne(['_id' => $id], $options); + if ($result === null) { + // Check for legacy ID without the first character + return $collection->findOne(['_id' => substr($id, 1)], $options); + } + return $result; + } + + /** + * @param string[] $ids + * @param bool $includeContent + * @return object[] + */ + public function findLogs(array $ids, bool $includeContent = true): array + { + $options = []; + if (!$includeContent) { + $options['projection'] = ['data' => 0]; + } + + $collection = $this->getLogsCollection(); + $results = $collection->find(['_id' => ['$in' => $ids]], $options)->toArray(); + $foundIds = []; + foreach ($results as $result) { + $foundIds[] = (string)$result->_id; + } + + $missingIds = array_diff($ids, $foundIds); + if (!empty($missingIds)) { + $legacyIds = []; + foreach ($missingIds as $id) { + $legacyIds[substr($id, 1)] = $id; + } + + // Check for legacy IDs without the first character + $legacyResults = $collection->find(['_id' => ['$in' => array_keys($legacyIds)]], $options)->toArray(); + foreach ($legacyResults as $result) { + // Map the legacy ID back to the original ID + $originalId = $legacyIds[(string)$result->_id]; + $result->_id = $originalId; + + // Add the found legacy results to the main results array + $results[] = $result; + } + } + return $results; + } + + /** + * @param string $id + * @return bool + */ + public function deleteLog(string $id): bool + { + $collection = $this->getLogsCollection(); + $result = $collection->deleteOne(['_id' => $id]); + if ($result->getDeletedCount() === 0) { + // Check for legacy ID without the first character + $result = $collection->deleteOne(['_id' => substr($id, 1)]); + return $result->getDeletedCount() === 1; + } + return true; + } + + /** + * @param array $ids + * @return int Number of logs deleted + */ + public function deleteLogs(array $ids): int + { + $collection = $this->getLogsCollection(); + $result = $collection->deleteMany(['_id' => ['$in' => $ids]]); + $deletedCount = $result->getDeletedCount(); + + if ($deletedCount === count($ids)) { + return $deletedCount; + } + + // Check for legacy IDs without the first character + $legacyIds = []; + foreach ($ids as $id) { + $legacyIds[] = substr($id, 1); + } + $legacyResult = $collection->deleteMany(['_id' => ['$in' => $legacyIds]]); + return $deletedCount + $legacyResult->getDeletedCount(); + } + + /** + * @param string $id + * @return bool + */ + public function hasLog(string $id): bool + { + return $this->findLog($id) !== null; + } + + /** + * @param string $id + * @param UTCDateTime $expires + * @return bool + */ + public function setLogExpires(string $id, UTCDateTime $expires): bool + { + $collection = $this->getLogsCollection(); + $result = $collection->updateOne( + ['_id' => $id], + ['$set' => ['expires' => $expires]] + ); + return $result->getModifiedCount() === 1; + } + + /** + * Get the collection for caching + * + * @return Collection + */ + public function getCacheCollection(): Collection + { + if ($this->cache === null) { + $this->connect(); + $this->cache = $this->database->getCollection('cache'); + } + return $this->cache; + } +} diff --git a/src/Util/Singleton.php b/src/Util/Singleton.php new file mode 100644 index 0000000..26d1bbd --- /dev/null +++ b/src/Util/Singleton.php @@ -0,0 +1,37 @@ + 365 * 24 * 60 * 60, + "month" => 30 * 24 * 60 * 60, + "week" => 7 * 24 * 60 * 60, + "day" => 24 * 60 * 60, + "hour" => 60 * 60, + "minute" => 60, + "second" => 1, + ]; + + /** + * @param int $value + * @param string $unit + * @return string + */ + protected function formatUnit(int $value, string $unit): string + { + if ($value === 1) { + return $value . " " . $unit; + } else { + return $value . " " . $unit . "s"; + } + } + + /** + * @param int $duration + * @param string $separator + * @return string + */ + public function format(int $duration, string $separator = ", "): string + { + $parts = []; + while ($duration > 0) { + foreach (self::UNITS as $unit => $seconds) { + if ($duration >= $seconds) { + $value = intdiv($duration, $seconds); + $duration -= $value * $seconds; + $parts[] = $this->formatUnit($value, $unit); + break; + } + } + } + return implode($separator, $parts); + } +} diff --git a/src/Util/URL.php b/src/Util/URL.php new file mode 100644 index 0000000..d47ee72 --- /dev/null +++ b/src/Util/URL.php @@ -0,0 +1,128 @@ +withHost(static::API_SUBDOMAIN . $base->getHost()); + } + + /** + * @return Uri + */ + public static function getCurrent(): Uri + { + if (static::$current) { + return static::$current; + } + $scheme = $_SERVER['REQUEST_SCHEME']; + $host = $_SERVER['HTTP_HOST']; + $requestUri = $_SERVER['REQUEST_URI']; + return static::$current = new Uri("$scheme://$host$requestUri"); + } + + /** + * @return bool + */ + public static function isApi(): bool + { + $currentHost = static::getCurrent()->getHost(); + $apiHost = static::getApi()->getHost(); + return $currentHost === $apiHost; + } + + /** + * @return string + */ + public static function getLastPathPart(): string + { + $path = static::getCurrent()->getPath(); + $parts = explode("/", $path); + do { + $part = trim(array_pop($parts)); + } while ($part === "" && count($parts) > 0); + return $part; + } +} \ No newline at end of file diff --git a/web/frontend/404.php b/web/frontend/404.php new file mode 100644 index 0000000..e1b1d57 --- /dev/null +++ b/web/frontend/404.php @@ -0,0 +1,22 @@ + + + + + 404 - Page not found + + + +
+
+
404
+
Page not found
+

The log you're looking for doesn't exist or has expired.

+ + + Back to Home + +
+
+ + + diff --git a/web/frontend/api-docs.php b/web/frontend/api-docs.php new file mode 100644 index 0000000..562541d --- /dev/null +++ b/web/frontend/api-docs.php @@ -0,0 +1,639 @@ + + + + + + API Documentation - <?= htmlspecialchars($config->getName()); ?> + + + + +
+
+
+

API Documentation

+

Integrate getName()); ?> directly into your server panel, your hosting software or anything else. This platform was built for high performance automation and can easily be integrated into any existing software via our HTTP API.

+
+
+ +
+

Create a log

+ +
+ POST withPath("/1/log")->toString()); ?> application/json +
+
+ Posting content with the content type application/x-www-form-urlencoded is still supported for backwards compatibility, but does not support setting metadata. +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldRequiredTypeDescription
contentstring + The raw log file content as string. + Limited to get(ConfigKey::STORAGE_LIMIT_BYTES) / 1024 / 1024, 2); ?> MiB and get(ConfigKey::STORAGE_LIMIT_LINES)); ?> lines. + Will be truncated if possible and necessary, but truncating on the client side is recommended. +
sourcestringThe name of the source, e.g. a domain or software name.
metadataarrayAn array of metadata entries.
+ +

Example body application/json

+
{
+    "content": "[log file content...]",
+    "source": "example.org"
+}
+ +

Metadata

+

+ You can send metadata alongside the log content to be displayed on the log page and/or be read by other applications through this API. + This is entirely optional, but can help to provide additional context, e.g. internal server IDs, software versions etc. +

+

+ A metadata entry is an object with the following fields: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldRequiredTypeDescription
keystringThe metadata key. Can be used to identify the entry in your code later.
valuestring|int|float|bool|nullThe metadata value.
labelstringThe display label. If not provided, the key will be used as label.
visibleboolWhether this metadata should be visible on the log page or is only available through the API. Default is true.
+ +

Example body with metadata application/json

+
{
+    "content": "[log file content...]",
+    "source": "example.org",
+    "metadata": [
+        {
+            "key": "server_id",
+            "value": 12345,
+            "visible": false
+        },
+        {
+            "key": "software_version",
+            "value": "1.2.3",
+            "label": "Software Version",
+            "visible": true
+        }
+    ]
+}
+ +

Responses

+

Success application/json

+
+ The token provided in this response can be used to delete this log later. Store or discard it securely, it will not be shown again. +
+
{
+    "success":true,
+    "id":"WnMMikq",
+    "source":null,
+    "created":1769597979,
+    "expires":1777373979,
+    "size":157369,
+    "lines":1201,
+    "errors":8,
+    "url": "withPath("/WnMMikq")->toString()); ?>",
+    "raw": "withPath("/1/raw/WnMMikq")->toString()); ?>",
+    "token":"78351fafe495398163fff847f9a26dda440435dcf7b5f92e8e36308f3683d771",
+    "metadata": [
+        {
+            "key": "server_id",
+            "value": 12345,
+            "visible": false
+        },
+        {
+            "key": "software_version",
+            "value": "1.2.3",
+            "label": "Software Version",
+            "visible": true
+        }
+    ]
+}
+

Error application/json

+
+{
+    "success": false,
+    "error": "Required field 'content' not found."
+}
+
+ +
+

Get log info and content

+
+ GET toString()); ?>/1/log/[id] +
+

+ This endpoint only returns the log info and metadata by default (same response as creating a log), you can also get the content in the same request by enabling it in different + formats using GET parameters. You can combine multiple parameters to get multiple content formats in one request, but keep in mind that this will + increase the response size. +

+ + + + + + + + + + + + + + + + + + + + + +
GET ParameterResponse fieldDescription
rawcontent.rawIncludes the raw log content as string in the response.
parsedcontent.parsedIncludes the parsed log content as array/objects in the response.
insightscontent.insightsIncludes the automatically detected insights in the response.
+

Responses

+

Success application/json

+
+ All content fields are only included if the corresponding GET parameter is provided. + If no content parameter is provided, the entire content object is omitted from the response. +
+
{
+    "success":true,
+    "id":"WnMMikq",
+    "source":null,
+    "created":1769597979,
+    "expires":1777373979,
+    "size":157369,
+    "lines":1201,
+    "errors":8,
+    "url": "withPath("/WnMMikq")->toString()); ?>",
+    "raw": "withPath("/1/raw/WnMMikq")->toString()); ?>",
+    "metadata": [
+        {
+            "key": "server_id",
+            "value": 12345,
+            "visible": false
+        },
+        {
+            "key": "software_version",
+            "value": "1.2.3",
+            "label": "Software Version",
+            "visible": true
+        }
+    ],
+    "content": {
+        "raw": "[log file content...]",
+        "parsed": [ /* parsed log entries */ ],
+        "insights": { "problems": [ /* detected problems */ ], "information": [ /* detected information */ ] }
+    }
+}
+

Error application/json

+
+{
+    "success": false,
+    "error": "Log not found."
+}
+
+
+

Delete a log

+
+ Deleting a log requires the token that was provided when creating the log. +
+ +
+ DELETE toString()); ?>/1/log/[id] +
+ +

Headers

+ + + + + + + + + + + +
HeaderExampleDescription
AuthorizationAuthorization: Bearer 78351fafe495398163f...The type (always "Bearer") and the log token received when creating the log.
+ +

Responses

+

Success application/json

+
{
+    "success": true
+}
+

Error application/json

+
+{
+    "success": false,
+    "error": "Invalid token."
+}
+
+
+

Bulk delete multiple logs

+
+ This method allows deleting up to at once. + Deleting logs requires the tokens that were provided when the logs were created. +
+ +
+ POST toString()); ?>/1/bulk/log/delete +
+ +

Example body application/json

+
 "6wexMDE",
+                                        "token" => "78351fafe495398163fff847f9a26dda440435dcf7b5f92e8e36308f3683d771"
+                                ],
+                                [
+                                        "id" => "OahzhMG",
+                                        "token" => "6520dd42ec3d5fd0e83f28220974fb83d3bdc0746853f5022373f8e5b062651b"
+                                ],
+                        ], JSON_PRETTY_PRINT); ?>
+ +

Responses

+

Success application/json

+
+ The bulk delete request will return a successful result and status code 207, + indicating that the request was processed. + Results for the individual operations are included in the response body. +
+
addResponse("6wexMDE", new ApiResponse())
+                                ->addResponse("OahzhMG", new ApiResponse()), JSON_PRETTY_PRINT); ?>
+

Partial success application/json

+
+ If a bulk delete request is valid, but not all logs can be deleted (e.g. due to invalid tokens or non-existing logs), + it will still overall be considered successful, but the response body will include error results for the logs that could not be deleted. +
+
addResponse("6wexMDE", new ApiResponse())
+                                ->addResponse("OahzhMG", new ApiError(404, "Log not found.")), JSON_PRETTY_PRINT); ?>
+

Error application/json

+
+ If a bulk delete request is malformed or invalid, the entire request will be + rejected with an error response and no logs will be deleted. +
+
+{
+    "success": false,
+    "error": "No logs provided."
+}
+
+
+

Get the raw log file content

+
+ Only use this endpoint if you really only need the raw log content. For most use cases, getting the log info and content together from the log endpoint is recommended. +
+
+ GET toString()); ?>/1/raw/[id] +
+ + + + + + + + + + + +
FieldTypeDescription
[id]stringThe log file id, received from the paste endpoint or from a URL (toString()); ?>/[id]).
+ +

Success text/plain

+
+[18:25:33] [Server thread/INFO]: Starting minecraft server version 1.16.2
+[18:25:33] [Server thread/INFO]: Loading properties
+[18:25:34] [Server thread/INFO]: Default game type: SURVIVAL
+...
+
+

Error application/json

+
+{
+    "success": false,
+    "error": "Log not found."
+}
+
+
+

Get insights

+
+ This endpoint is mainly kept for backwards compatibility. For new applications, getting the insights together with the log info from the log endpoint is recommended. +
+
+ GET toString()); ?>/1/insights/[id] +
+ + + + + + + + + + + +
FieldTypeDescription
[id]stringThe log file id, received from the paste endpoint or from a URL (toString()); ?>/[id]).
+ +

Success application/json

+
+{
+  "id": "name/type",
+  "name": "Software name, e.g. Vanilla",
+  "type": "Type name, e.g. Server Log",
+  "version": "Version, e.g. 1.12.2",
+  "title": "Combined title, e.g. Vanilla 1.12.2 Server Log",
+  "analysis": {
+    "problems": [
+      {
+        "message": "A message explaining the problem.",
+        "counter": 1,
+        "entry": {
+          "level": 6,
+          "time": null,
+          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
+          "lines": [
+            {
+              "number": 1,
+              "content": "The full content of the line."
+            }
+          ]
+        },
+        "solutions": [
+          {
+            "message": "A message explaining a possible solution."
+          }
+        ]
+      }
+    ],
+    "information": [
+      {
+        "message": "Label: value",
+        "counter": 1,
+        "label": "The label of this information, e.g. Minecraft version",
+        "value": "The value of this information, e.g. 1.12.2",
+        "entry": {
+          "level": 6,
+          "time": null,
+          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
+          "lines": [
+            {
+              "number": 6,
+              "content": "The full content of the line."
+            }
+          ]
+        }
+      }
+    ]
+  }
+}
+

Error application/json

+
+{
+    "success": false,
+    "error": "Log not found."
+}
+
+
+

Analyse a log without saving it

+

+ If you only want to use the analysis features of this service without saving the log, you can use this endpoint. + Please do not save logs that you only want to analyse, as this wastes storage space and resources. +

+ +
+ POST withPath("/1/analyse")->toString()); ?> application/x-www-form-urlencoded application/json +
+ + + + + + + + + + + +
FieldTypeDescription
contentstringThe raw log file content as string. Maximum length is 10MiB and 25k lines, will be shortened if necessary.
+ +

Success application/json

+
+{
+  "id": "name/type",
+  "name": "Software name, e.g. Vanilla",
+  "type": "Type name, e.g. Server Log",
+  "version": "Version, e.g. 1.12.2",
+  "title": "Combined title, e.g. Vanilla 1.12.2 Server Log",
+  "analysis": {
+    "problems": [
+      {
+        "message": "A message explaining the problem.",
+        "counter": 1,
+        "entry": {
+          "level": 6,
+          "time": null,
+          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
+          "lines": [
+            {
+              "number": 1,
+              "content": "The full content of the line."
+            }
+          ]
+        },
+        "solutions": [
+          {
+            "message": "A message explaining a possible solution."
+          }
+        ]
+      }
+    ],
+    "information": [
+      {
+        "message": "Label: value",
+        "counter": 1,
+        "label": "The label of this information, e.g. Minecraft version",
+        "value": "The value of this information, e.g. 1.12.2",
+        "entry": {
+          "level": 6,
+          "time": null,
+          "prefix": "The prefix of this entry, usually the part containing time and loglevel.",
+          "lines": [
+            {
+              "number": 6,
+              "content": "The full content of the line."
+            }
+          ]
+        }
+      }
+    ]
+  }
+}
+

Error application/json

+
+{
+    "success": false,
+    "error": "Required field 'content' is empty."
+}
+
+
+

Check storage limits

+ +
+ GET withPath("/1/limits")->toString()); ?> +
+

Success application/json

+
+{
+  "storageTime": 7776000,
+  "maxLength": 10485760,
+  "maxLines": 25000
+}
+ + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
storageTimeintegerThe duration in seconds that a log is stored for after the last view.
maxLengthintegerMaximum file length in bytes. Logs over this limit will be truncated to this length.
maxLinesintegerMaximum number of lines. Additional lines will be removed.
+
+
+

Get filters

+

+ Filters modify the log content before storing it. They are applied automatically when creating a new log on the server side. + You can get a list of active filters from this endpoint if you want to apply the same filters on the client side before uploading a log. +

+
+ GET withPath("/1/filters")->toString()); ?> +
+

Success application/json

+
+
+

Filter types

+ + + + + + + + + + + + + + + + + + + + + +
TypeDescription
trim + Trim any whitespace characters from the beginning and end of the log content. +
limit-bytes + Limit the log content to a maximum number of bytes (data.limit). Content exceeding this limit will be truncated. +
limit-lines + Limit the log content to a maximum number of lines (data.limit). Additional lines will be removed. +
regex + Apply regular expression replacements to the log content. Each pattern in data.patterns will be applied in order and replaced with the provided replacement, unless the matched string matches one of the exemption patterns in data.exemptions. +
+
+ Make sure to handle any filter error, e.g. unknown filter types gracefully, as new filter types may be added in the future. +
+
+
+
+

Notes

+

The API has currently a rate limit of 60 requests per minute per IP address. This is set to ensure the operability of this service. If you have any use case that requires a higher limit, feel free to contact us.

+ +
+
+
+ + + diff --git a/web/frontend/log.php b/web/frontend/log.php new file mode 100644 index 0000000..97c5fb1 --- /dev/null +++ b/web/frontend/log.php @@ -0,0 +1,230 @@ + + + + + <?=htmlspecialchars($log->getPageTitle()); ?> + + + + +
+
+
+
+
+

+ + getCodexLog()->getTitle()); ?> +

+ +
+
+
+
+
+ hasErrors()): ?> +
+ + getErrorsString()); ?> +
+ +
+ + getLinesString()); ?> +
+ + + Raw + +
+
+
+
+ getAnalysis()->getInformation(); ?> + getVisibleMetadata()) > 0 || count($information) > 0): ?> +
+ getVisibleMetadata()) > 0): ?> +
+
+
+ + Metadata +
+ getVisibleMetadata() as $metadata): ?> + + getDisplayLabel()); ?>: + getDisplayValue()); ?> + + +
+
+ + 0): ?> +
+
+
+ + Detected +
+ + + getLabel()); ?>: + getValue()); ?> + + +
+
+ +
+ + getAnalysis()?->getProblems(); ?> + 0): ?> +
+
+
+ + detected +
+
+ + getEntry()[0]->getNumber(); ?> +
+ " class="problem-entry" onclick="updateLineNumber('#L');"> + + + Problem + + getMessage()); ?> + Line + + getSolutions()) > 0): ?> +
+ getSolutions()) === 1 ? 'Solution:' : 'Solutions:'; ?> + getSolutions() as $solution): ?> +
+ + $1'", htmlspecialchars($solution->getMessage())); ?> +
+ +
+ +
+ +
+
+
+ +
+
+
+
+ getPrinter()->print(); + ?> +
+
+ + +
+
+
+
+
+
+ getHTML(AssetType::JS, "js/log.js"); ?> + + diff --git a/web/frontend/parts/favicon.php b/web/frontend/parts/favicon.php new file mode 100644 index 0000000..0447ee8 --- /dev/null +++ b/web/frontend/parts/favicon.php @@ -0,0 +1,7 @@ + + + + + + + diff --git a/web/frontend/parts/footer.php b/web/frontend/parts/footer.php new file mode 100644 index 0000000..242c061 --- /dev/null +++ b/web/frontend/parts/footer.php @@ -0,0 +1,28 @@ +get(ConfigKey::LEGAL_IMPRINT); +$privacyUrl = Config::getInstance()->get(ConfigKey::LEGAL_PRIVACY); +?> + diff --git a/web/frontend/parts/head.php b/web/frontend/parts/head.php new file mode 100644 index 0000000..bf35fbf --- /dev/null +++ b/web/frontend/parts/head.php @@ -0,0 +1,44 @@ + + + + + getHTML(AssetType::CSS, "vendor/fontawesome/css/fontawesome.min.css"); ?> + getHTML(AssetType::CSS, "css/mclogs.css"); ?> + + + + + toString()); ?>" type="image/svg+xml"> + + +get(ConfigKey::FRONTEND_ANALYTICS)): ?> + + diff --git a/web/frontend/parts/header.php b/web/frontend/parts/header.php new file mode 100644 index 0000000..4386391 --- /dev/null +++ b/web/frontend/parts/header.php @@ -0,0 +1,49 @@ +
+ +
+

Paste your logs.

+
Built for Minecraft & Hytale
+
+ +
diff --git a/web/frontend/start.php b/web/frontend/start.php new file mode 100644 index 0000000..2c13e74 --- /dev/null +++ b/web/frontend/start.php @@ -0,0 +1,37 @@ + + + + + <?= htmlspecialchars(Config::getInstance()->getName()); ?> - Paste, share & analyse your logs + + + + +
+
+
+ +

Paste or drop your log here

+
+ + + Drop +
+
+ + +
+
+
+ + + getHTML(AssetType::JS, "js/start.js"); ?> + + diff --git a/web/public/css/mclogs.css b/web/public/css/mclogs.css new file mode 100644 index 0000000..46a4398 --- /dev/null +++ b/web/public/css/mclogs.css @@ -0,0 +1,2006 @@ +/* plus-jakarta-sans-regular - latin */ +@font-face { + font-display: swap; + font-family: 'Plus Jakarta Sans'; + font-style: normal; + font-weight: 400; + src: url('../vendor/fonts/plus-jakarta-sans-v12-latin-regular.woff2') format('woff2'); +} +/* plus-jakarta-sans-500 - latin */ +@font-face { + font-display: swap; + font-family: 'Plus Jakarta Sans'; + font-style: normal; + font-weight: 500; + src: url('../vendor/fonts/plus-jakarta-sans-v12-latin-500.woff2') format('woff2'); +} +/* plus-jakarta-sans-600 - latin */ +@font-face { + font-display: swap; + font-family: 'Plus Jakarta Sans'; + font-style: normal; + font-weight: 600; + src: url('../vendor/fonts/plus-jakarta-sans-v12-latin-600.woff2') format('woff2'); +} +/* jetbrains-mono-regular - cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese */ +@font-face { + font-display: swap; + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 400; + src: url('../vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-regular.woff2') format('woff2'); +} +/* jetbrains-mono-italic - cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese */ +@font-face { + font-display: swap; + font-family: 'JetBrains Mono'; + font-style: italic; + font-weight: 400; + src: url('../vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-italic.woff2') format('woff2'); +} +/* jetbrains-mono-700 - cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese */ +@font-face { + font-display: swap; + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 700; + src: url('../vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-700.woff2') format('woff2'); +} +/* jetbrains-mono-700italic - cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese */ +@font-face { + font-display: swap; + font-family: 'JetBrains Mono'; + font-style: italic; + font-weight: 700; + src: url('../vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-700italic.woff2') format('woff2'); +} + +:root { + --bg-surface: color-mix(in srgb, var(--bg) 92%, var(--text) 8%); + --bg-elevated: color-mix(in srgb, var(--bg) 95%, var(--text) 5%); + --bg-inset: var(--bg-surface); + --text-muted: color-mix(in srgb, var(--text) 55%, var(--bg) 45%); + --accent-hover: color-mix(in srgb, var(--accent) 78%, var(--bg) 22%); + --accent-bg: color-mix(in srgb, var(--accent) 12%, transparent); + --accent-border: var(--accent); + --error-bg: color-mix(in srgb, var(--error) 10%, transparent); + --error-border: color-mix(in srgb, var(--error) 40%, transparent); + --border: rgba(255, 255, 255, 0.08); + --surface: rgba(255, 255, 255, 0.04); + --font-sans: 'Plus Jakarta Sans', system-ui, sans-serif; + --font-mono: 'JetBrains Mono', 'Fira Code', monospace; + --max-width: 1400px; + --page-padding: clamp(1rem, 2.5vw, 1.25rem); + --max-width-content: min(100%, calc(var(--max-width)) - var(--page-padding) * 2); + --radius: 12px; + --scrollbar-height: 8px; + --browser: unset; + scroll-behavior: smooth; +} + +@view-transition { + navigation: auto; +} + +/* Global scrollbar styling */ +*::-webkit-scrollbar { + width: 8px; + height: var(--scrollbar-height); +} + +*::-webkit-scrollbar-track { + background: transparent; +} + +*::-webkit-scrollbar-thumb { + background-color: var(--accent); + border-radius: 4px; +} + +*::-webkit-scrollbar-thumb:hover { + background-color: var(--accent-hover); +} + +::selection { + background-color: var(--accent); + color: var(--text); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; + scrollbar-color: var(--accent) transparent; +} + +html { + height: 100%; + text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; +} + +body { + font-family: var(--font-sans), system-ui, sans-serif; + background-color: var(--bg); + color: var(--text); + line-height: 1.5; + min-height: 100%; + display: flex; + flex-direction: column; + position: relative; + font-weight: 400; +} + +/* Log Settings */ +body.setting-full-width { + --max-width: 100%; + --max-width-content: calc(100% - var(--page-padding) * 2); +} + +body.setting-overflow .log-container { + max-width: unset; + min-width: 100%; +} + +body.setting-no-wrap .log-inner { + white-space: pre; +} + +body.setting-no-wrap .log-inner .line-content { + word-break: normal; + overflow-wrap: normal; +} + +body.setting-no-wrap .log-inner .level { + white-space: pre; +} + +body.setting-no-wrap .log-inner .collapsed-lines-count { + justify-content: flex-start; +} + +a { + color: inherit; + text-decoration: none; + transition: color 0.15s ease; +} + +a:hover:not(.btn) { + color: var(--accent); +} + +body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: + linear-gradient(color-mix(in srgb, var(--text-muted) 5%, var(--bg) 95%) 1px, transparent 1px), + linear-gradient(90deg, color-mix(in srgb, var(--text-muted) 5%, var(--bg) 95%) 1px, transparent 1px); + background-size: 40px 40px; + pointer-events: none; + z-index: 0; +} + +/** Buttons **/ + +.btn { + background-color: var(--accent); + color: var(--bg); + font-family: inherit; + font-size: clamp(0.85rem, 2vw, 0.9rem); + font-weight: 600; + cursor: pointer; + display: flex; + align-items: center; + border: 2px solid transparent; + padding: clamp(0.6rem, 2vw, 0.7rem) clamp(1.2rem, 3vw, 1.5rem); + border-radius: 8px; + gap: .4rem; + line-height: 1; + transition: color .15s ease, background-color .15s ease, border-color .15s ease; +} + +.btn:hover:not(:disabled) { + background-image: linear-gradient(#00000014,#00000014); +} + +.btn:disabled, +.btn.disabled { + opacity: 0.5; + cursor: not-allowed; +} + +.btn-small { + font-size: clamp(0.75rem, 1.8vw, 0.8rem); + padding: clamp(0.35rem, 1.5vw, 0.4rem) clamp(0.85rem, 2.5vw, 1rem); +} + +.btn-transparent { + background-color: transparent; + color: var(--accent); + border: 0 none; +} + +.btn-transparent:hover { + color: var(--accent); +} + +.btn-danger { + background-color: var(--error); + color: var(--text); +} + +#error-toggle { + cursor: pointer; + transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; +} + +#error-toggle.toggled { + background-color: var(--error-bg); + color: var(--text); + border-color: var(--error); +} + +#error-toggle.toggled:hover { + background-color: var(--error-bg); +} + +.btn-white { + background-color: #fff; + color: var(--bg); +} + +.btn-dark { + background-color: var(--surface); + color: var(--text); + border-color: var(--border); +} + +/** Header **/ + +header { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + width: 100%; + max-width: var(--max-width); + margin: 0 auto; + padding: clamp(1rem, 3vw, 2rem) var(--page-padding); + position: relative; + z-index: 1; + transition: max-width .25s ease; +} + +.logo { + view-transition-name: logo; + display: flex; + align-items: center; + gap: .9rem; + text-decoration: none; + transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); + transform-origin: center; +} + +.logo:active { + transform: scale(.9); +} + +.logo-icon { + height: clamp(1.5rem, 3vw, 2rem); + width: auto; + margin-top: 3px; + color: var(--accent); +} + +.logo-text { + font-size: clamp(1.75rem, 3vw, 2rem); + font-weight: 600; + color: var(--text); + margin-top: -3px; +} + +.tagline { + display: flex; + flex-direction: column; + gap: 0.25rem; + text-align: right; +} + +.tagline-main { + font-size: clamp(1rem, 3vw, 1.5rem); + color: var(--text); + font-weight: 400; +} + +.tagline-sub { + font-size: clamp(0.75rem, 2vw, 1rem); + color: var(--text-muted); +} + +.title-verb { + font-weight: 600; + color: var(--accent); +} + +/** Footer **/ + +footer { + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; + color: var(--text-muted); + font-size: clamp(0.75rem, 2vw, 0.9rem); + max-width: var(--max-width); + width: 100%; + margin: 0 auto; + padding: clamp(1rem, 3vw, 2rem) clamp(1rem, 2.5vw, 1.25rem); + position: relative; + z-index: 1; + transition: max-width .25s ease; +} + +.legal { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.footer-nav { + display: flex; + gap: 1.5rem; +} + +.footer-nav a { + color: var(--text-muted); + display: flex; + align-items: center; + gap: 0.5rem; +} + +.footer-nav a:hover { + color: var(--accent); +} + +.footer-nav a i { + font-size: clamp(0.9rem, 2vw, 1rem); +} + +.footer-text a { + color: var(--text-muted); +} + +.footer-text a:hover { + color: var(--accent); +} + +/** Main **/ + +main { + max-width: var(--max-width-content); + width: 100%; + margin: 0 auto; + flex: 1; + display: flex; + flex-direction: column; + background-color: var(--bg-surface); + border-radius: var(--radius); + position: relative; + overflow: hidden; + z-index: 1; + transition: max-width .25s ease; +} + +.paste-area { + flex: 1; + width: 100%; + display: flex; + flex-direction: column; + border-radius: var(--radius); + position: relative; + transition: background-color 0.25s ease, border-color 0.25s ease; + border: 2px dashed transparent; +} + +.paste-area::after { + content: ''; + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 120px; + background: linear-gradient(to bottom, + transparent 0%, + color-mix(in srgb, var(--bg-surface) 40%, transparent) 40%, + color-mix(in srgb, var(--bg-surface) 80%, transparent) 70%, + var(--bg-surface) 100%); + pointer-events: none; + z-index: 5; + border-radius: 0 0 var(--radius) var(--radius); +} + +.paste-area.dragover, +.paste-area.window-dragover { + background-color: color-mix(in srgb, var(--bg-surface) 90%, var(--accent) 10%); + border-color: var(--accent); +} + +.paste-area.dragover .paste-placeholder i.fa-cloud-arrow-up, +.paste-area.window-dragover .paste-placeholder i.fa-cloud-arrow-up { + color: var(--accent); + transform: scale(1.1) translateY(-4px); +} + +.paste-area.dragover .paste-placeholder p, +.paste-area.window-dragover .paste-placeholder p { + color: var(--accent); +} + +.paste-placeholder { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; + z-index: 2; + font-size: clamp(1rem, 3vw, 1.5rem); +} + +.paste-placeholder i.fa-cloud-arrow-up { + font-size: clamp(2rem, 8vw, 3.5rem); + color: var(--text-muted); + margin-bottom: clamp(0.5rem, 2vw, 1.5rem); + transition: color 0.25s ease, transform 0.25s ease; +} + +.paste-placeholder p { + color: var(--text); + margin-bottom: clamp(1.2rem, 2vw, 1.5rem); + transition: color 0.25s ease; + font-weight: 600; +} + +.paste-hints { + display: flex; + gap: clamp(1rem, 3vw, 1.5rem); + justify-content: center; + color: var(--text-muted); + font-size: clamp(0.75rem, 1.8vw, 0.8rem); +} + +.paste-hints span, +.paste-hints button { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: clamp(0.75rem, 1.8vw, 0.8rem); +} + +.paste-hints button { + background: none; + border: none; + padding: 0; + color: var(--text-muted); + font-weight: 400; +} + +.paste-hints button.btn:hover { + background-image: none; +} + +.paste-hints i { + font-size: clamp(0.85rem, 2vw, 0.9rem); +} + +.paste-area .btn-save { + position: absolute; + bottom: 1.5rem; + left: 50%; + transform: translateX(-50%); + width: fit-content; + z-index: 10; + font-size: clamp(1rem, 2.5vw, 1.1rem); + padding: 0.85rem 2rem; +} + +.paste-area .btn-save:not(:disabled) { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + animation: btn-save-pulse 1.5s ease-in-out infinite; +} + +@keyframes btn-save-pulse { + 0% { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 0 0 color-mix(in srgb, var(--accent) 80%, transparent); + } + 70% { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 0 12px color-mix(in srgb, var(--accent) 0%, transparent); + } + 100% { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent); + } +} + +.paste-area textarea { + view-transition-name: log; + flex: 1; + width: 100%; + background: transparent; + border: none; + outline: none; + resize: none; + padding: clamp(.5rem, 3vw, 1.2rem); + font-family: var(--font-mono), monospace; + font-size: clamp(0.75rem, 2vw, 0.9rem); + color: var(--text); + position: relative; +} + +.paste-error { + display: none; + position: absolute; + top: clamp(1rem, 2.5vw, 1.5rem); + right: clamp(1rem, 2.5vw, 1.5rem); + color: var(--error); + font-weight: 600; + font-size: clamp(0.85rem, 2vw, 0.9rem); + padding: clamp(0.7rem, 2vw, 0.8rem) clamp(1rem, 2.5vw, 1.25rem); + background-color: var(--error-bg); + border: 1px solid var(--error-border); + border-radius: 8px; + z-index: 1000; + animation: error-slide-in 0.3s ease-out; +} + +.paste-error.show { + display: block; +} + +@keyframes error-slide-in { + from { + transform: translateX(100%); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } +} + +/** Log Page Layout **/ + +.log-body main { + flex: 0 0 auto; + border-radius: var(--radius) var(--radius) 0 0; +} + +.log-container { + max-width: var(--max-width-content); + min-width: var(--max-width-content); + margin: 0 auto; + background-color: var(--bg-surface); + position: relative; + z-index: 1; + transition: max-width .25s ease, min-width .25s ease; +} + +.log-footer { + max-width: var(--max-width-content); + width: 100%; + margin: 0 auto; + padding: 0 var(--page-padding); + background-color: var(--bg-surface); + border-radius: 0 0 var(--radius) var(--radius); + position: relative; + z-index: 1; + transition: max-width .25s ease; +} + +/** Log Header **/ + +.log-header { + padding: clamp(1rem, 3vw, 1.5rem) var(--page-padding); + border-bottom: 1px solid var(--border); +} + +.log-header-inner { + display: flex; + justify-content: space-between; + align-items: flex-start; + flex-wrap: wrap; + gap: 1rem; +} + +.log-header .left { + flex: 1 1 300px; + min-width: 0; +} + +.log-header .right { + flex-shrink: 0; +} + +.log-header .log-title h1 { + font-size: clamp(1.1rem, 3vw, 1.25rem); + font-weight: 600; + color: var(--text); + display: flex; + align-items: center; + gap: 0.5rem; + line-height: 1.3; + flex-wrap: wrap; +} + +.log-header .log-title h1 i { + color: var(--accent); +} + +.log-header .log-title { + display: flex; + align-items: center; + gap: 0.75rem; + flex-wrap: wrap; +} + +.log-header .log-title-actions { + display: flex; + align-items: center; + gap: 0.5rem; +} + +.log-header .log-url-btn { + display: inline-flex; + align-items: center; + gap: 0.4rem; + padding: clamp(0.2rem, 1vw, 0.25rem) clamp(0.4rem, 1.5vw, 0.5rem); + background-color: var(--surface); + border: 1px solid var(--border); + border-radius: 6px; + font-size: clamp(0.7rem, 1.8vw, 0.75rem); + color: var(--text-muted); + font-family: var(--font-mono), monospace; + line-height: 1; + transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease; + vertical-align: middle; + cursor: pointer; +} + +.log-header .log-url-btn:hover { + border-color: var(--accent-border); + background-color: var(--accent-bg); + color: var(--text); +} + +.log-header .log-url-btn i { + font-size: 0.85em; + opacity: 0.5; + color: var(--accent); +} + +.log-info-rows { + display: flex; + flex-direction: column; + gap: 0.5rem; + margin-top: 1rem; +} + +.log-info-row { + padding: clamp(0.4rem, 1.5vw, 0.5rem) clamp(0.6rem, 2vw, 0.75rem); + background-color: var(--surface); + border-radius: 6px; +} + +.info-row-header { + display: flex; + align-items: center; + gap: 0.4rem; + font-size: clamp(0.7rem, 1.8vw, 0.75rem); + font-weight: 600; + color: var(--text-muted); + letter-spacing: 0.03em; + padding-right: clamp(0.6rem, 2vw, 0.75rem); + border-right: 1px solid var(--border); +} + +.info-row-header i { + font-size: 0.7rem; + opacity: 0.8; +} + +.info-row-items { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 0.75rem; +} + +.info-item { + display: inline-flex; + align-items: center; + gap: 0.4rem; + font-size: clamp(0.75rem, 1.8vw, 0.8rem); + color: var(--text-muted); +} + +.info-label { + font-weight: 500; +} + +.info-value { + color: var(--text); + font-weight: 500; + font-family: var(--font-mono), monospace; +} + +.log-header .details { + display: flex; + align-items: center; +} + +.log-header .log-info-actions { + display: flex; + gap: 0.5rem; + flex-wrap: wrap; + align-items: center; +} + +/** Problems Panel **/ + +.problems-panel-container { + border-top: 1px solid var(--border); + padding-top: clamp(0.75rem, 2vw, 1rem); + margin-top: clamp(0.75rem, 2vw, 1rem); +} + +.problems-panel { + overflow: hidden; + border: 1px solid var(--border); + background-color: var(--surface); + border-radius: 8px; +} + +.problems-header { + display: flex; + align-items: center; + gap: clamp(0.5rem, 1.5vw, 0.6rem); + padding: clamp(0.6rem, 2vw, 0.75rem) clamp(0.85rem, 2.5vw, 1rem); + background-color: var(--surface); + border-bottom: 1px solid var(--border); +} + +.problems-count { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: clamp(1.25rem, 2.5vw, 1.4rem); + height: clamp(1.25rem, 2.5vw, 1.4rem); + background-color: var(--accent); + color: var(--bg); + font-size: clamp(0.75rem, 1.8vw, 0.8rem); + font-weight: 600; + border-radius: 4px; +} + +.problems-title { + font-size: clamp(0.9rem, 2vw, 1rem); + font-weight: 600; + color: var(--text); +} + +.problems-list { + display: flex; + flex-direction: column; +} + +.problem-item { + display: flex; + flex-direction: column; + gap: clamp(0.4rem, 1vw, 0.5rem); + padding: clamp(0.75rem, 2vw, 1rem) clamp(0.85rem, 2.5vw, 1rem); + border-bottom: 1px solid var(--border); +} + +.problem-item:last-child { + border-bottom: none; +} + +.problem-entry { + display: flex; + border-radius: 5px; + overflow: hidden; + font-size: clamp(0.85rem, 2vw, 0.9rem); + background: var(--error-bg); + border: 1px solid var(--error-border); + text-decoration: none; + transition: border-color 0.15s ease; +} + +.problem-entry:hover { + border-color: var(--error); +} + +.problem-label { + display: flex; + align-items: center; + gap: 0.4rem; + padding: clamp(0.3rem, 1vw, 0.4rem) clamp(0.55rem, 1.5vw, 0.65rem); + font-weight: 600; + font-size: clamp(0.75rem, 1.8vw, 0.8rem); + white-space: nowrap; + background-color: var(--error); + color: #fff; +} + +.problem-text { + display: flex; + align-items: center; + padding: clamp(0.3rem, 1vw, 0.4rem) clamp(0.55rem, 1.5vw, 0.65rem); + color: var(--text); + font-weight: 500; + flex: 1; + word-break: break-word; +} + +.problem-line { + display: inline-flex; + align-items: center; + margin: clamp(0.25rem, 0.8vw, 0.35rem) clamp(0.55rem, 1.5vw, 0.65rem); + padding: 0.2em 0.5em; + font-family: var(--font-mono), monospace; + font-size: clamp(0.7rem, 1.6vw, 0.75rem); + font-weight: 500; + color: var(--text-muted); + background-color: var(--surface); + border: 1px solid var(--border); + border-radius: 4px; + white-space: nowrap; +} + +.problem-solutions { + display: flex; + flex-direction: column; + gap: clamp(0.25rem, 0.5vw, 0.3rem); + padding: clamp(0.4rem, 1vw, 0.5rem) clamp(0.55rem, 1.5vw, 0.65rem); + background-color: var(--surface); + border-radius: 5px; +} + +.problem-solutions-label { + font-size: clamp(0.75rem, 1.8vw, 0.8rem); + font-weight: 600; + color: var(--text-muted); +} + +.problem-solution { + display: flex; + align-items: baseline; + gap: clamp(0.4rem, 1vw, 0.5rem); + font-size: clamp(0.8rem, 1.8vw, 0.85rem); +} + +.problem-solution i { + color: var(--accent); + font-size: 0.85em; +} + +.problem-solution span { + color: var(--text); +} + +/** Log Viewer **/ + +.log { + view-transition-name: log; + padding: 0; + border-bottom: 1px solid var(--border); + background-color: var(--bg-elevated); + position: relative; + flex: 1; +} + +.setting-floating-scrollbar .floating-scrollbar-container { + display: flex; +} + +.floating-scrollbar-container { + --floating-scrollbar-width: 0; + --floating-scrollbar-content-width: 0; + + position: fixed; + display: none; + justify-content: center; + bottom: 0; + width: 100%; + z-index: 10; +} + +.floating-scrollbar { + overflow-x: scroll; + width: var(--floating-scrollbar-width); +} + +.floating-scrollbar-content { + width: var(--floating-scrollbar-content-width); + height: var(--scrollbar-height); +} + +.log-inner { + overflow-y: hidden; + font-family: var(--font-mono), monospace; + font-size: clamp(0.75rem, 2vw, 0.9rem); + line-height: 1.6; + overflow-x: auto; + position: relative; + padding: 0.5rem 0 0; + display: grid; + grid-template-columns: auto 1fr; + contain: layout style paint; + will-change: scroll-position; +} + +.log-inner .entry { + display: contents; + width: 100%; +} + +.log-inner .entry.entry-error .line-content, +.log-inner .entry.entry-error .line-number-container{ + background-color: var(--error-bg); +} + +.log-inner .line-number-container { + min-width: 2.75rem; + padding: 0 0.4rem; + border-right: 1px solid var(--border); + text-align: right; + user-select: none; +} + + +.log-inner .line-number { + padding: clamp(0.08rem, 1vw, 0.1rem) clamp(0.2rem, 1.5vw, 0.25rem); + color: var(--text-muted); + font-weight: 500; + font-size: clamp(0.65rem, 1.8vw, 0.8rem); + border-radius: 4px; +} + +.log-inner .entry.line-active .line-number { + background-color: var(--accent); + color: var(--bg); + font-weight: 600; +} + + +.log-inner .entry.line-active .line-number-container, +.log-inner .entry.line-active .line-content { + background-color: color-mix(in srgb, var(--accent) 15%, var(--bg) 85%); +} + +.log-inner .entry.entry-error.line-active .line-number { + background-color: var(--error); + color: #fff; +} + +.log-inner .entry.entry-error.line-active .line-number-container, +.log-inner .entry.entry-error.line-active .line-content { + background-color: color-mix(in srgb, var(--error) 25%, var(--bg) 75%); +} + +.log-inner .line-content { + padding-left: clamp(0.4rem, 1vw, 0.9rem); + padding-right: clamp(0.4rem, 2vw, 0.6rem); + word-break: break-word; + overflow-wrap: anywhere; + color: var(--text); +} + +/* Firefox fallback: use table layout instead of grid */ +@supports (-moz-appearance: none) { + :root { + --browser: 'firefox'; + } + .log-inner { + display: table; + table-layout: fixed; + width: 100%; + } + + .log-inner .entry, + .log-inner .collapsed-lines { + display: table-row; + } + + .log-inner .line-number-container, + .log-inner .collapsed-lines > div:first-child { + display: table-cell; + width: 3.6rem; + } + + @media (max-width: 600px) { + .log-inner .line-number-container { + width: 2.7rem; + } + } + + .log-inner .line-content, + .log-inner .collapsed-lines-count { + display: table-cell; + } + + .log-inner .collapsed-lines-count { + text-align: center; + vertical-align: middle; + } + + body.setting-no-wrap .log { + overflow-x: auto; + } + + body.setting-no-wrap .log-inner { + table-layout: auto; + } +} + +.collapsed-lines { + display: contents; + cursor: pointer; +} + +.collapsed-lines > div:first-child { + background-color: var(--surface); + border-right: 1px solid var(--border); +} + +.collapsed-lines-count { + display: flex; + align-items: center; + justify-content: center; + gap: 0.75rem; + padding: 0.6rem 1.25rem; + background-color: var(--surface); + color: var(--text); + font-size: clamp(0.85rem, 2vw, 0.9rem); + font-family: var(--font-mono), monospace; + font-weight: 500; + transition: background-color 0.15s ease, color 0.15s ease; +} + +.collapsed-lines:hover .collapsed-lines-count { + background-color: var(--accent-bg); + color: var(--accent); +} + +.collapsed-lines-count i { + font-size: 0.75rem; + color: var(--text-muted); + transition: color 0.15s ease; +} + +.collapsed-lines:hover .collapsed-lines-count i { + color: var(--accent); +} + +.log-inner .level { + display: block; + white-space: pre-wrap; + tab-size: 4; + width: 100%; +} + +.log-inner .level-prefix { + font-weight: 500; + opacity: 0.9; +} + +/** Log Level Styles **/ + +.level { + white-space: pre-wrap; + tab-size: 4; + word-break: normal; +} + +.level-prefix { + font-weight: bold; +} + +.level-info { + color: var(--text); +} + +.level-title { + font-weight: bold; + color: var(--bg); + background-color: var(--accent); + padding: 0 8px; + border-radius: 2px; +} + +.level-info .level-prefix, +.level-notice .level-prefix, +.level-debug .level-prefix { + color: var(--accent); +} + +.level-warning { + color: #FF6625; +} + +.level-error, +.level-critical, +.level-emergency, +.level-stacktrace { + color: var(--error); +} + +.level-comment { + color: #A4A4A4; +} + +/** Minecraft Format Colors **/ + +.format-black { + color: #000; +} + +.format-darkblue { + color: #0000AA; +} + +.format-darkgreen { + color: #00AA00; +} + +.format-darkaqua { + color: #00AAAA; +} + +.format-darkred { + color: #AA0000; +} + +.format-darkpurple { + color: #AA00AA; +} + +.format-gold { + color: #FFAA00; +} + +.format-gray { + color: #AAAAAA; +} + +.format-darkgray { + color: #555555; +} + +.format-blue { + color: #5555FF; +} + +.format-green { + color: #55FF55; +} + +.format-aqua { + color: #55FFFF; +} + +.format-red { + color: #FF5555; +} + +.format-lightpurple { + color: #FF55FF; +} + +.format-yellow { + color: #FFFF55; +} + +.format-white { + color: #FFFFFF; +} + +.format-reset { + color: #FFFFFF; + font-weight: normal; + text-decoration: none; + font-style: normal; + display: inline-block; +} + +.format-bold { + font-weight: bold; +} + +.format-underline { + text-decoration: underline; +} + +.format-italic { + font-style: italic; +} + +.format-strike { + text-decoration: line-through; +} + +/** Log Content Styles **/ + +.multiline { + padding-left: 64px; +} + +.highlight-error { + background: var(--error); + color: #fff; + padding: 0 3px; + border-radius: 2px; + font-weight: bold; + display: inline-block; +} + +.highlight-warning { + background: #FF6625; + color: var(--text); + padding: 0 3px; + border-radius: 2px; + font-weight: bold; + display: inline-block; +} + +.entry { + overflow-wrap: anywhere; +} + +@media (max-width: 800px) { + .multiline { + padding-left: 0; + } + + .problem-line { + display: none; + } +} + +/** Log bottom **/ + +.log-bottom { + display: flex; + justify-content: space-between; + align-items: center; + padding: clamp(0.75rem, 2vw, 1rem) 0; + border-bottom: 1px solid var(--border); +} + +.log-bottom .actions { + display: flex; + flex-wrap: wrap; + gap: 10px; +} + +/** Generic Popover **/ + +.popover-wrapper { + position: relative; +} + +.popover-trigger { + cursor: pointer; +} + +.popover-trigger i { + transition: transform 0.2s ease; +} + +.popover-content { + position: fixed; + inset: unset; + margin-bottom: 0.5rem; + background-color: var(--bg-surface); + border: 1px solid var(--border); + border-radius: 8px; + padding: 0.5rem; + min-width: 200px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); + overflow: hidden; +} + +.popover-content:popover-open { + display: flex; + flex-direction: column; + gap: 0.25rem; +} + +.popover-content::after { + content: ''; + position: absolute; + bottom: -6px; + right: 1rem; + width: 10px; + height: 10px; + background-color: var(--bg-surface); + border-right: 1px solid var(--border); + border-bottom: 1px solid var(--border); + transform: rotate(45deg); +} + +.popover-content::backdrop { + background: transparent; +} + +/* Popover danger variant */ +.popover-content.popover-danger { + background-color: var(--bg-surface); + border-color: var(--error); + text-align: center; +} + +.popover-content.popover-danger::after { + background-color: var(--bg-surface); + border-color: var(--error); +} + +.popover-error { + display: none; + font-weight: 600; + font-size: clamp(0.85rem, 2vw, 0.9rem); + padding: clamp(0.2rem, 2vw, 0.2rem); + color: var(--text); + background-color: var(--error-bg); + border: 1px solid var(--error-border); + border-radius: 8px; + margin-bottom: 0.5rem; +} + +/** Settings Popover **/ + +.settings-trigger { + anchor-name: --settings-trigger; +} + +.settings-overlay { + position-anchor: --settings-trigger; + bottom: anchor(top); + right: anchor(right); +} + +/** Delete Popover **/ + +.delete-trigger { + anchor-name: --delete-trigger; +} + +.delete-trigger:hover { + opacity: 1; +} + +.delete-overlay { + position-anchor: --delete-trigger; + bottom: anchor(top); + right: anchor(right); + min-width: 250px; + padding: 1rem; + gap: 0.75rem; +} + +.delete-message { + font-size: 0.9rem; + color: var(--text); + font-weight: 500; + margin-bottom: 10px; +} + +.delete-actions { + display: flex; + gap: 0.5rem; +} + +.delete-actions .btn { + flex: 1; + justify-content: center; +} + +.setting { + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; + padding: 0.5rem 0.75rem; + border-radius: 6px; + cursor: pointer; + transition: background-color 0.1s ease; +} + +.setting:hover { + background-color: var(--surface); +} + +.setting-label { + font-size: 0.9rem; + color: var(--text); +} + +.setting-checkbox { + appearance: none; + width: 2.5rem; + height: 1.4rem; + background-color: var(--surface); + border-radius: 1rem; + position: relative; + cursor: pointer; + transition: background-color 0.15s ease; + flex-shrink: 0; +} + +.setting-checkbox::before { + content: ''; + position: absolute; + top: 0.2rem; + left: 0.2rem; + width: 1rem; + height: 1rem; + background-color: var(--text-muted); + border-radius: 50%; + transition: left 0.15s ease, background-color 0.15s ease; +} + +.setting-checkbox:checked { + background-color: var(--accent); +} + +.setting-checkbox:checked::before { + left: 1.3rem; + background-color: var(--bg); +} + +.log-details { + display: grid; + grid-template-columns: 1fr 1fr; + align-items: center; + gap: clamp(0.75rem, 2vw, 1.25rem); + padding: clamp(0.75rem, 2vw, 1rem) 0; + border-top: 1px solid var(--border); + font-size: clamp(0.85rem, 2vw, 0.9rem); + color: var(--text-muted); +} + +.log-details:has(:nth-child(3)) { + grid-template-columns: 1fr 1fr 1fr; +} + +.log-details .meta-data { + display: flex; + align-items: center; + gap: 0.7rem; + flex-wrap: wrap; +} + +.log-details i { + margin-right: 0.25rem; +} + +.log-details *:nth-child(2) { + text-align: center; +} + +.log-details *:last-child { + text-align: right; +} + +@media (max-width: 640px) { + .log-details { + grid-template-columns: 1fr; + gap: 0.5rem; + justify-content: center; + } + + .log-details:has(:nth-child(3)) { + grid-template-columns: 1fr; + } + + .log-details .meta-data { + justify-content: center; + } + + .log-details *:nth-child(2), + .log-details *:last-child { + text-align: center; + } +} + +/** Error Page **/ + +.error-page { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + padding: clamp(2rem, 5vw, 3rem) clamp(1rem, 3vw, 1.5rem); +} + +.error-code { + font-size: clamp(4rem, 15vw, 8rem); + font-weight: 600; + color: var(--text); + line-height: 1; + opacity: 0.15; +} + +.error-message { + font-size: clamp(1.25rem, 4vw, 1.8rem); + font-weight: 700; + color: var(--text); + margin-top: -0.5rem; +} + +.error-description { + font-size: clamp(0.9rem, 2vw, 1rem); + color: var(--text-muted); + margin-top: 0.75rem; + margin-bottom: clamp(1.5rem, 4vw, 2rem); +} + +/** API Documentation **/ + +.api-docs-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: clamp(1rem, 3vw, 2rem); + padding: clamp(1.25rem, 3vw, 2rem) clamp(1rem, 3vw, 1.5rem); + border-bottom: 1px solid var(--border); + background-color: var(--bg-elevated); +} + +.api-docs-header-content { + flex: 1; +} + +.api-docs-header h1 { + font-size: clamp(1.5rem, 4vw, 2rem); + font-weight: 600; + color: var(--text); + margin-bottom: 0.75rem; +} + +.api-docs-header p { + font-size: clamp(0.9rem, 2vw, 1rem); + color: var(--text-muted); + line-height: 1.6; +} + +.api-docs-header p strong { + color: var(--text); + font-weight: 600; +} + +.api-docs-toc { + padding: clamp(1rem, 2.5vw, 1.25rem) clamp(1rem, 3vw, 1.5rem); + margin-bottom: 0; + background-color: var(--bg-elevated); + border-bottom: 1px solid var(--border); + display: flex; + align-items: center; + gap: clamp(0.75rem, 2vw, 1rem); + flex-wrap: wrap; +} + +.api-docs-toc h3 { + font-size: clamp(0.85rem, 2vw, 0.95rem); + font-weight: 500; + color: var(--text-muted); + margin: 0; + white-space: nowrap; + opacity: 0.6; + pointer-events: none; + user-select: none; +} + +.api-docs-toc h3::after { + content: ':'; + margin-left: 0.25rem; + opacity: 0.4; +} + +.api-docs-toc-nav { + display: flex; + flex-wrap: wrap; + gap: 0.5rem; + align-items: center; + justify-content: flex-start; +} + +.api-docs-toc-nav a { + display: inline-flex; + align-items: center; + padding: 0.4rem 0.85rem; + color: var(--text-muted); + font-size: clamp(0.8rem, 2vw, 0.85rem); + border-radius: 6px; + transition: background-color 0.15s ease, color 0.15s ease; + text-decoration: none; + font-weight: 500; + white-space: nowrap; + cursor: pointer; +} + +.api-docs-toc-nav a:hover { + background-color: rgba(255, 255, 255, 0.04); + color: var(--text); +} + +.api-docs-toc-nav a:active { + background-color: rgba(255, 255, 255, 0.06); +} + +.api-docs-section { + padding: clamp(1.25rem, 3vw, 2rem) clamp(1rem, 3vw, 1.5rem); + border-bottom: 1px solid var(--border); + scroll-margin-top: 1rem; +} + +.api-docs-section:last-of-type { + border-bottom: none; +} + +.api-docs-section h2 { + font-size: clamp(1.25rem, 3vw, 1.5rem); + font-weight: 600; + color: var(--text); + margin-top: 0; + margin-bottom: 1rem; +} + +.api-docs-section p { + font-size: clamp(0.9rem, 2vw, 1rem); + color: var(--text); + line-height: 1.6; + margin-top: 0; + margin-bottom: 1.5rem; +} + +.api-docs-section p + p { + margin-top: -0.75rem; +} + +.api-docs-section p + .api-endpoint, +.api-docs-section p + .api-table, +.api-docs-section p + h3, +.api-docs-section p + h4 { + margin-top: 0; +} + +.api-docs-section h3 { + font-size: clamp(1rem, 2.5vw, 1.1rem); + font-weight: 600; + color: var(--text); + margin-top: 2rem; + margin-bottom: 1rem; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.api-docs-section h2 + h3, +.api-docs-section .api-endpoint + h3, +.api-docs-section .api-table + h3, +.api-docs-section .api-note + h3 { + margin-top: 1.5rem; +} + +.api-docs-section h4 { + font-size: clamp(0.95rem, 2vw, 1rem); + font-weight: 600; + color: var(--text); + margin-top: 1.5rem; + margin-bottom: 0.75rem; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.api-docs-section h3 + h4 { + margin-top: 1rem; +} + +.api-endpoint { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: clamp(0.5rem, 1.5vw, 0.75rem); + padding: clamp(0.75rem, 2vw, 1rem) clamp(1rem, 2.5vw, 1.25rem); + background-color: var(--bg-inset); + border: 1px solid var(--border); + border-radius: 8px; + margin-top: 0; + margin-bottom: 1.5rem; + font-family: var(--font-mono), monospace; + font-size: clamp(0.85rem, 2vw, 0.9rem); +} + +.api-endpoint + .api-note, +.api-endpoint + .api-table, +.api-endpoint + h3, +.api-endpoint + h4 { + margin-top: 0; +} + +.api-method { + display: inline-flex; + align-items: center; + padding: clamp(0.2rem, 1vw, 0.25rem) clamp(0.6rem, 1.5vw, 0.75rem); + background-color: var(--accent); + color: var(--bg); + font-weight: 600; + border-radius: 4px; + font-size: clamp(0.75rem, 1.8vw, 0.8rem); + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.api-url { + color: var(--text); + font-weight: 500; + word-break: break-all; +} + +.content-type { + display: inline-flex; + align-items: center; + padding: clamp(0.2rem, 1vw, 0.25rem) clamp(0.6rem, 1.5vw, 0.75rem); + background-color: var(--surface); + color: var(--text-muted); + border: 1px solid var(--border); + border-radius: 4px; + font-size: clamp(0.7rem, 1.8vw, 0.75rem); + font-weight: 500; + font-family: var(--font-mono), monospace; +} + +.api-table { + width: 100%; + border-collapse: collapse; + margin-top: 0; + margin-bottom: 1.5rem; + background-color: var(--bg-inset); + border: 1px solid var(--border); + border-radius: 8px; + overflow: hidden; +} + +.api-table + .api-note, +.api-table + h3, +.api-table + h4, +.api-table + .api-code { + margin-top: 0; +} + +.api-table th { + background-color: var(--surface); + padding: clamp(0.6rem, 2vw, 0.75rem) clamp(0.85rem, 2.5vw, 1rem); + text-align: left; + font-weight: 600; + font-size: clamp(0.8rem, 2vw, 0.85rem); + color: var(--text); + border-bottom: 1px solid var(--border); +} + +.api-table td { + padding: clamp(0.6rem, 2vw, 0.75rem) clamp(0.85rem, 2.5vw, 1rem); + border-bottom: 1px solid var(--border); + font-size: clamp(0.85rem, 2vw, 0.9rem); +} + +.api-table tr:last-child td { + border-bottom: none; +} + +.api-table tr:hover { + background-color: var(--surface); +} + +.api-field { + white-space: nowrap; + font-family: var(--font-mono), monospace; + color: var(--accent); + font-weight: 500; +} + +.api-type { + font-family: var(--font-mono), monospace; + color: var(--text-muted); + font-weight: 500; +} + +.api-description { + color: var(--text); + line-height: 1.5; +} + +.api-required { + text-align: center; + font-size: 1rem; +} + +.api-required i { + color: var(--text-muted); + opacity: 0.5; +} + +.api-required.required i { + color: var(--accent); + opacity: 1; +} + +.api-code { + background-color: var(--bg-elevated); + border: 1px solid var(--border); + border-radius: 8px; + padding: clamp(1rem, 2.5vw, 1.25rem); + overflow-x: auto; + font-family: var(--font-mono), monospace; + font-size: clamp(0.8rem, 2vw, 0.85rem); + line-height: 1.6; + color: var(--text); + margin-top: 0; + margin-bottom: 1.5rem; + white-space: pre; + tab-size: 2; + font-variant-ligatures: none; +} + +.api-code + h3, +.api-code + h4, +.api-code + .api-note { + margin-top: 1.5rem; +} + +.api-note { + margin-top: 0; + margin-bottom: 1.5rem; + padding: clamp(0.75rem, 2vw, 0.85rem) clamp(0.85rem, 2.5vw, 1rem); + border-radius: 8px; + border: 1px solid var(--accent-border); + background-color: var(--accent-bg); + font-size: clamp(0.85rem, 1.8vw, 0.9rem); + color: var(--text); + line-height: 1.6; +} + +.api-note .content-type { + margin: 0 10px; + white-space: normal; + word-break: break-word; + display: inline; + vertical-align: baseline; +} + +.api-docs-notes { + display: flex; + align-items: center; + justify-content: space-between; + gap: clamp(1rem, 3vw, 2rem); + padding: clamp(1.25rem, 3vw, 2rem) clamp(1rem, 3vw, 1.5rem); + background-color: var(--bg-elevated); + border: 1px solid var(--border); +} + +.api-docs-notes-content { + flex: 1; +} + +.api-docs-notes-content h2 { + font-size: clamp(1.25rem, 3vw, 1.5rem); + font-weight: 600; + color: var(--text); + margin-bottom: 0.75rem; +} + +.api-docs-notes-content p { + font-size: clamp(0.9rem, 2vw, 1rem); + color: var(--text-muted); + line-height: 1.6; + margin-bottom: 1rem; +} + +.api-docs-notes-actions { + display: flex; + gap: 0.75rem; + flex-wrap: wrap; +} + +@media (max-width: 1024px) { + body.setting-full-width { + --max-width-content: min(100%, calc(var(--max-width))); + } + + main { + padding: 0; + border-radius: 0; + } + + .log-body main { + border-radius: 0; + } + + .log-container, + .log-footer { + border-radius: 0; + } +} + +@media (max-width: 640px) { + .log-inner .line-number-container { + min-width: unset; + padding: 0; + } + + footer { + justify-content: center; + } + + .legal, + .footer-text { + order: 2; + } + + .footer-nav { + width: 100%; + order: 1; + justify-content: center; + } + + .problem-entry { + align-items: stretch; + } + + .problem-line { + display: none; + } + + .api-docs-header { + flex-direction: column; + align-items: flex-start; + gap: 1.5rem; + } + + .api-docs-section { + padding: 1.5rem 1rem; + } + + .api-docs-notes { + flex-direction: column; + align-items: flex-start; + gap: 1.5rem; + } + + .api-endpoint { + flex-direction: column; + align-items: flex-start; + } + + .api-docs-toc { + padding: 1rem; + } + + .api-docs-toc-nav { + gap: 0.25rem; + } + + .api-docs-toc-nav a { + padding: 0.35rem 0.7rem; + } +} diff --git a/web/public/img/favicon.ico b/web/public/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bbdb0ee77e7a40ae85c4e82d3fbec64f10a9024c GIT binary patch literal 230398 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 literal 0 HcmV?d00001 diff --git a/web/public/img/logo-icon.svg b/web/public/img/logo-icon.svg new file mode 100644 index 0000000..d422c82 --- /dev/null +++ b/web/public/img/logo-icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/web/public/img/logo.svg b/web/public/img/logo.svg new file mode 100644 index 0000000..f423eb2 --- /dev/null +++ b/web/public/img/logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + diff --git a/web/public/js/log.js b/web/public/js/log.js new file mode 100644 index 0000000..3eacc48 --- /dev/null +++ b/web/public/js/log.js @@ -0,0 +1,309 @@ +/* line numbers */ +updateLineNumber(location.hash); + +for (let line of document.querySelectorAll('.line-number')) { + line.addEventListener("click", () => + updateLineNumber(line.attributes.getNamedItem("id").value)); +} + +function updateLineNumber(id) { + if (id && id.startsWith('#')) { + id = id.substring(1); + } + + if (!id) { + return; + } + + let element = document.getElementById(id); + if (element.classList.contains("line-number")) { + for (const line of document.querySelectorAll(".line-active")) { + line.classList.remove("line-active"); + } + element.closest('.entry').classList.add('line-active'); + } +} + +/* Scroll to top/bottom buttons */ +const downButton = document.getElementById("down-button"); +if (downButton) { + downButton.addEventListener("click", () => scrollToHeight(document.body.scrollHeight)); +} + +const upButton = document.getElementById("up-button"); +if (upButton) { + upButton.addEventListener("click", () => scrollToHeight(0)); +} + +/** + * Scroll to a specific height + * Disable smooth scrolling for large pages + * @param {number} top height to scroll to + * @param {number} [smoothScrollLimit] only use smooth scrolling if the distance is less than this value + */ +function scrollToHeight(top, smoothScrollLimit = 10000) { + const distance = Math.abs(document.documentElement.scrollTop - top); + const behavior = (distance < smoothScrollLimit) ? "smooth" : "instant"; + window.scrollTo({left: 0, top, behavior}); +} + +/* error collapse toggle */ +const toggleErrorsButton = document.getElementById("error-toggle"); +if (toggleErrorsButton) { + toggleErrorsButton.addEventListener("click", toggleErrors); +} + +function toggleErrors() { + if (toggleErrorsButton.classList.contains("toggled")) { + toggleErrorsButton.classList.remove("toggled"); + uncollapseAllErrors(); + } else { + toggleErrorsButton.classList.add("toggled"); + collapseAllErrors(); + } +} + +function collapseAllErrors() { + let firstNoErrorLine = false; + let lines = document.querySelectorAll('.log-inner > .entry'); + let totalLines = lines.length; + for (const [i, line] of lines.entries()) { + let lineNumber = line.querySelector(".line-number").innerHTML; + if (line.classList.contains("entry-no-error")) { + line.style.display = "none"; + + if (firstNoErrorLine === false) { + firstNoErrorLine = lineNumber; + } + + if (i + 1 === totalLines && firstNoErrorLine) { + line.insertAdjacentElement("afterend", generateCollapsedLines(firstNoErrorLine, lineNumber)); + } + } else { + if (firstNoErrorLine) { + line.insertAdjacentElement("beforebegin", generateCollapsedLines(firstNoErrorLine, lineNumber - 1)); + firstNoErrorLine = false; + } + } + } +} + +function uncollapseAllErrors() { + document.querySelectorAll('.entry-no-error').forEach(line => line.style.removeProperty("display")); + document.querySelectorAll('.collapsed-lines').forEach(collapsed => collapsed.remove()); +} + +function handleCollapsedClick(e) { + let collapsed = e.currentTarget; + let positionElement = document.getElementById(`L${parseInt(collapsed.dataset.end) + 1}`); + let position; + if (positionElement) { + position = positionElement.getBoundingClientRect().top - window.scrollY; + } + for (let i = parseInt(collapsed.dataset.start); i <= parseInt(collapsed.dataset.end); i++) { + document.getElementById(`L${i}`).parentElement.parentElement.style.removeProperty("display"); + } + if (positionElement) { + window.scrollTo({ + left: 0, + top: positionElement.getBoundingClientRect().top - position - collapsed.offsetHeight, + behavior: "instant" + }); + } + collapsed.remove(); +} + +function generateCollapsedLines(start, end) { + let count = end - start + 1; + let string = count === 1 ? "line" : "lines"; + + let collapsedRow = document.createElement("div"); + collapsedRow.classList.add("collapsed-lines"); + collapsedRow.dataset.start = start; + collapsedRow.dataset.end = end; + collapsedRow.appendChild(document.createElement("div")); + collapsedRow.addEventListener("click", handleCollapsedClick); + + let collapsedLinesCount = document.createElement("div"); + collapsedLinesCount.classList.add("collapsed-lines-count"); + let icon = document.createElement("i"); + icon.classList.add("fa-solid", "fa-angle-up"); + collapsedLinesCount.appendChild(icon); + collapsedLinesCount.append(` ${count} ${string} `); + collapsedLinesCount.append(icon.cloneNode()); + collapsedRow.appendChild(collapsedLinesCount); + + return collapsedRow; +} + +/* convert timestamps */ +let timeElements = document.querySelectorAll('[data-time]'); +for (const element of timeElements) { + const timestamp = parseInt(element.dataset.time); + if (isNaN(timestamp)) { + continue; + } + const date = new Date(timestamp * 1000); + element.innerHTML = date.toLocaleString(); +} + +/* settings */ +const settingCheckboxes = document.querySelectorAll(".setting-checkbox"); +settingCheckboxes.forEach(checkbox => checkbox.addEventListener("change", handleSettingChange)); + +let settingsChannel = null; +if (typeof BroadcastChannel !== "undefined") { + settingsChannel = new BroadcastChannel("mc-logs-settings"); + settingsChannel.onmessage = (e) => { + if (e.data.type === "settings-updated") { + for (const checkbox of settingCheckboxes) { + checkbox.checked = !!e.data.settings[checkbox.dataset.key]; + applySetting(checkbox); + } + } + }; +} + +function handleSettingChange(e) { + let checkbox = e.target; + applySetting(checkbox); + saveSettings(); + if (settingsChannel) { + settingsChannel.postMessage({ + type: "settings-updated", + settings: getCurrentSettings() + }); + } +} + +function applySetting(checkbox) { + let bodyClass = checkbox.dataset.bodyClass; + if (checkbox.checked) { + document.body.classList.add(bodyClass); + } else { + document.body.classList.remove(bodyClass); + } + switch (checkbox.dataset.key) { + case "floatingScrollbar": + initFloatingScrollbar(); + break; + } +} + +function getCurrentSettings() { + const data = {}; + for (const checkbox of settingCheckboxes) { + data[checkbox.dataset.key] = checkbox.checked; + } + return data; +} + +function saveSettings() { + const data = {}; + for (const checkbox of settingCheckboxes) { + data[checkbox.dataset.key] = checkbox.checked; + } + document.cookie = "MCLOGS_SETTINGS=" + encodeURIComponent(JSON.stringify(data)) + ";path=/;expires=" + new Date(new Date().getTime() + 100 * 365 * 24 * 60 * 60 * 1000).toUTCString(); +} + +/* copy to clipboard */ +const copyButtons = document.querySelectorAll("[data-clipboard]"); +copyButtons.forEach(button => button.addEventListener("click", handleCopyButtonClick)); +const doneClassName = "fa-solid fa-check"; + +async function handleCopyButtonClick(e) { + const button = e.currentTarget; + const data = button.dataset.clipboard; + await navigator.clipboard.writeText(data); + + const iconElement = button.querySelector("i"); + if (!iconElement) { + return; + } + const originalClassName = iconElement.className; + if (originalClassName === doneClassName) { + return; + } + iconElement.className = doneClassName; + setTimeout(() => { + iconElement.className = originalClassName; + }, 2000); +} + +/* delete button */ +const deleteButton = document.querySelector(".delete-log-button"); +const deleteErrorElement = document.querySelector(".delete-overlay .popover-error"); +if (deleteButton) { + deleteButton.addEventListener("click", handleDeleteButtonClick); +} + +async function handleDeleteButtonClick() { + deleteErrorElement.style.display = "none"; + const response = await fetch(window.location.href, { + method: "DELETE", + credentials: "include" + }); + if (!response.ok) { + deleteErrorElement.style.display = "block"; + deleteErrorElement.textContent = `${response.status} (${response.statusText})`; + return; + } + window.location.href = "/"; +} + +/* floating scroll bar */ +const browser = getComputedStyle(document.body) + .getPropertyValue("--browser") + .replaceAll(/['"]/g, '') + .trim() + .toLowerCase(); +const floatingScrollbar = document.querySelector(".floating-scrollbar"); +let logContainer = null; +if (browser === "firefox") { + logContainer = document.querySelector(".log"); +} else { + logContainer = document.querySelector(".log-inner"); +} + +if (floatingScrollbar && logContainer) { + updateFloatingScrollbarWidths(); + + floatingScrollbar.addEventListener("scroll", () => { + syncScroll(floatingScrollbar, logContainer); + }); + + logContainer.addEventListener("scroll", () => { + syncScroll(logContainer, floatingScrollbar); + }); + + const observer = new ResizeObserver(() => { + updateFloatingScrollbarWidths(); + }); + observer.observe(logContainer); +} + +function syncScroll(source, target) { + if (Math.abs(source.scrollLeft - target.scrollLeft) > 1) { + target.scrollLeft = source.scrollLeft; + } +} + +function initFloatingScrollbar() { + if (!floatingScrollbar || !logContainer) { + return; + } + updateFloatingScrollbarWidths(); + syncScroll(logContainer, floatingScrollbar); +} + +function updateFloatingScrollbarWidths() { + floatingScrollbar.style.setProperty( + "--floating-scrollbar-width", + `${logContainer.clientWidth}px` + ); + + floatingScrollbar.style.setProperty( + "--floating-scrollbar-content-width", + `${logContainer.scrollWidth}px` + ); +} diff --git a/web/public/js/start.js b/web/public/js/start.js new file mode 100644 index 0000000..3af6f87 --- /dev/null +++ b/web/public/js/start.js @@ -0,0 +1,365 @@ +/* Paste area */ +const source = document.body.dataset.name || location.host; +const pasteArea = document.getElementById('paste-text'); +const pastePlaceholder = document.querySelector('.paste-placeholder'); +const pasteSaveButtons = document.querySelectorAll('.paste-save'); +const fileSelectButton = document.getElementById('paste-select-file'); +const pasteClipboardButton = document.getElementById('paste-clipboard'); +const pasteError = document.getElementById('paste-error'); + +pasteArea.focus(); +pasteArea.addEventListener('input', reevaluateContentStatus); +pasteArea.addEventListener('paste', handlePasteEvent); +pasteSaveButtons.forEach(button => button.addEventListener('click', sendLog)); +fileSelectButton.addEventListener('click', selectLogFile); +pasteClipboardButton.addEventListener('click', pasteFromClipboard); + +reevaluateContentStatus(); + +document.addEventListener('keydown', event => { + if (event.key.toLowerCase() === 's' && (event.ctrlKey || event.metaKey)) { + void sendLog(); + event.preventDefault(); + return false; + } + + return true; +}); + +/** + * Save the log to the API + * @returns {Promise} + */ +async function sendLog() { + if (pasteArea.value === "") { + return; + } + + clearError(); + pasteSaveButtons.forEach(button => button.classList.add("btn-working")); + + try { + let log = pasteArea.value; + log = applyFilters(log); + + const bodyData = { + "content": log, + "source": source, + "metadata": Array.isArray(self.METADATA) ? self.METADATA : [] + }; + + let headers = { + "Content-Type": "application/json" + } + + let body = JSON.stringify(bodyData); + if (isGzSupported()) { + headers["Content-Encoding"] = "gzip"; + body = await packGz(body); + } + + const response = await fetch(`/new`, { + method: "POST", + credentials: "include", + headers: { + "Content-Type": "application/json", + "Content-Encoding": "gzip" + }, + body + }); + + if (!response.ok) { + showError(`${response.status} (${response.statusText})`); + return; + } + + let data = null; + try { + data = await response.json(); + } catch (e) { + console.error("Failed to parse JSON returned by API", e); + showError("API returned invalid JSON"); + return; + } + + if (typeof data === 'object' && !data.success && data.error) { + console.error(new Error("API returned an error"), data.error); + showError(data.error); + return; + } + + if (typeof data !== 'object' || !data.success || !data.id) { + console.error(new Error("API returned an invalid response"), data); + showError("API returned an invalid response"); + return; + } + + location.href = data.url; + } catch (e) { + showError("Network error"); + } +} + +/* filters */ +function applyFilters(text) { + if (typeof FILTERS === "undefined" || !Array.isArray(FILTERS)) { + return text; + } + for (let filter of FILTERS) { + text = applyFilter(text, filter); + } + return text; +} + +function applyFilter(text, filter) { + switch (filter.type) { + case 'trim': + return text.trim(); + case 'limit-bytes': + return text.substring(0, filter.data.limit); + case 'limit-lines': + return text.split('\n').slice(0, filter.data.limit).join('\n'); + case 'regex': + try { + for (const pattern of filter.data.patterns) { + const regex = new RegExp(pattern.pattern, 'g' + pattern.modifiers.join()); + text = text.replace(regex, (match) => { + for (const exemption of filter.data.exemptions) { + if (new RegExp(exemption.pattern, exemption.modifiers.join()).test(match)) { + return match; + } + } + return pattern.replacement; + }); + } + } catch (e) { + console.error('Error applying regex filter', e); + } + return text; + default: + console.error('Unknown filter type', filter.type); + return text; + } +} + +async function pasteFromClipboard() { + try { + let content = await navigator.clipboard.readText(); + if (!content || content.trim().length === 0) { + showError("Clipboard is empty."); + return; + } + pasteArea.value = content; + reevaluateContentStatus(); + } catch (err) { + showError("Clipboard is empty or not accessible."); + } +} + +function reevaluateContentStatus() { + clearError(); + if (pasteArea.value.length > 0) { + pastePlaceholder.style.display = 'none'; + pasteSaveButtons.forEach(button => button.removeAttribute("disabled")); + } else { + pastePlaceholder.style.display = 'flex'; + pasteSaveButtons.forEach(button => button.setAttribute("disabled", "disabled")); + } +} + +function showError(message) { + pasteSaveButtons.forEach(button => button.classList.remove("btn-working")); + pasteError.innerText = message; + pasteError.style.display = 'block'; +} + +function clearError() { + pasteSaveButtons.forEach(button => button.classList.remove("btn-working")); + pasteError.innerText = ''; + pasteError.style.display = 'none'; +} + +/* File handling */ +async function handlePasteEvent(e) { + if (e.clipboardData?.files?.length > 0) { + e.preventDefault(); + await loadFileContents(e.clipboardData.files[0]); + } +} + +/** + * @param {Blob} file + * @return {Promise} + */ +function readFile(file) { + return new Promise((resolve, reject) => { + let reader = new FileReader(); + // noinspection JSCheckFunctionSignatures + reader.onload = () => resolve(new Uint8Array(reader.result)); + reader.onerror = e => reject(e); + reader.readAsArrayBuffer(file); + }); +} + +async function loadFileContents(file) { + if (file.size > 1024 * 1024 * 100) { + showError(`File is too large.`); + return; + } + let content = await readFile(file); + if (file.name.endsWith('.gz')) { + if (!isGzSupported()) { + showError(`Gzip files are not supported in this browser.`); + return; + } + content = await unpackGz(content); + } + + if (content.includes(0)) { + showError(`This file is not supported.`); + return; + } + + pasteArea.value = new TextDecoder().decode(content); + reevaluateContentStatus(); +} + +function selectLogFile() { + let input = document.createElement('input'); + input.type = 'file'; + input.style.display = 'none'; + document.body.appendChild(input); + input.onchange = async () => { + if (input.files.length) { + await loadFileContents(input.files[0]); + } + } + input.click(); + document.body.removeChild(input); +} + +/* Gzip compression */ +function isGzSupported() { + return (typeof CompressionStream !== 'undefined') && (typeof DecompressionStream !== 'undefined'); +} + +/** + * @param {string} raw + * @returns {Promise} + */ +async function packGz(raw) { + let data = new TextEncoder().encode(raw); + let inputStream = new ReadableStream({ + start: (controller) => { + controller.enqueue(data); + controller.close(); + } + }); + const cs = new CompressionStream('gzip'); + const compressedStream = inputStream.pipeThrough(cs); + return new Uint8Array(await new Response(compressedStream).arrayBuffer()); +} + +/** + * @param {Uint8Array} data + * @return {Promise} + */ +async function unpackGz(data) { + let inputStream = new ReadableStream({ + start: (controller) => { + controller.enqueue(data); + controller.close(); + } + }); + const ds = new DecompressionStream('gzip'); + const decompressedStream = inputStream.pipeThrough(ds); + return new Uint8Array(await new Response(decompressedStream).arrayBuffer()); +} + +function isDragEventValid(e) { + if (!e.dataTransfer) { + return false; + } + let types = Array.from(e.dataTransfer.types); + if (types.includes('text/uri-list')) { + return false; + } + return types.includes('Files') || types.includes('text/plain'); +} + +/* Drag and drop */ +const dropZone = document.getElementById('dropzone'); +let windowDragCount = 0; +let dropZoneDragCount = 0; + +window.addEventListener('dragover', e => e.preventDefault()); +window.addEventListener('dragenter', e => { + e.preventDefault(); + if (isDragEventValid(e)) { + updateWindowDragCount(1); + } +}); +window.addEventListener('dragleave', e => { + e.preventDefault(); + if (isDragEventValid(e)) { + updateWindowDragCount(-1); + } +}); +window.addEventListener('drop', e => { + e.preventDefault(); + if (isDragEventValid(e)) { + updateWindowDragCount(-1); + } +}); + +dropZone.addEventListener('dragenter', e => { + e.preventDefault(); + if (isDragEventValid(e)) { + updateDropZoneDragCount(1); + } +}); +dropZone.addEventListener('dragleave', e => { + e.preventDefault(); + if (isDragEventValid(e)) { + updateDropZoneDragCount(-1); + } +}); +dropZone.addEventListener('drop', async e => { + e.preventDefault(); + if (isDragEventValid(e)) { + updateDropZoneDragCount(-1); + } + await handleDropEvent(e); +}); + +function updateWindowDragCount(amount) { + windowDragCount = Math.max(0, windowDragCount + amount); + if (windowDragCount > 0) { + dropZone.classList.add('window-dragover'); + } else { + dropZone.classList.remove('window-dragover'); + } +} + +function updateDropZoneDragCount(amount) { + dropZoneDragCount = Math.max(0, dropZoneDragCount + amount); + if (dropZoneDragCount > 0) { + dropZone.classList.add('dragover'); + } else { + dropZone.classList.remove('dragover'); + } +} + +async function handleDropEvent(e) { + console.log(e.dataTransfer?.types); + let files = e.dataTransfer.files; + if (files.length !== 1) { + if (Array.from(e.dataTransfer.types).includes('text/plain')) { + pasteArea.value = e.dataTransfer.getData('text/plain'); + reevaluateContentStatus(); + } + return; + } + + await loadFileContents(files[0]); +} diff --git a/web/public/vendor/fontawesome/css/fontawesome.min.css b/web/public/vendor/fontawesome/css/fontawesome.min.css new file mode 100644 index 0000000..29fc203 --- /dev/null +++ b/web/public/vendor/fontawesome/css/fontawesome.min.css @@ -0,0 +1,12 @@ +/*! + * Font Awesome Free 7.1.0 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 2025 Fonticons, Inc. + */ + +.fa,.fa-brands,.fa-classic,.fa-regular,.fa-solid,.fab,.far,.fas{--_fa-family:var(--fa-family,var(--fa-style-family,"Font Awesome 7 Free"));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:var(--fa-display,inline-block);font-family:var(--_fa-family);font-feature-settings:normal;font-style:normal;font-synthesis:none;font-variant:normal;font-weight:var(--fa-style,900);line-height:1;text-align:center;text-rendering:auto;width:var(--fa-width,1.25em)}:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)/""}@supports not (content:""/""){:is(.fas,.far,.fab,.fa-solid,.fa-regular,.fa-brands,.fa-classic,.fa):before{content:var(--fa)}}.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-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{list-style-type:none;margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0}.fa-ul>li{position:relative}.fa-li{inset-inline-start: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,.0625em) var(--fa-border-style,solid) var(--fa-border-color,#eee);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-end,.fa-pull-right{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{animation-name:fa-beat-fade;animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{animation-name:fa-spin;animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);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{animation:none!important;transition:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1) translateY(0)}to{transform:scale(1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0deg)}}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{--fa-width:100%;inset:0;position:absolute;text-align:center;width:var(--fa-width);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{--fa:"\30 "}.fa-1{--fa:"\31 "}.fa-2{--fa:"\32 "}.fa-3{--fa:"\33 "}.fa-4{--fa:"\34 "}.fa-5{--fa:"\35 "}.fa-6{--fa:"\36 "}.fa-7{--fa:"\37 "}.fa-8{--fa:"\38 "}.fa-9{--fa:"\39 "}.fa-exclamation{--fa:"\!"}.fa-hashtag{--fa:"\#"}.fa-dollar,.fa-dollar-sign,.fa-usd{--fa:"\$"}.fa-percent,.fa-percentage{--fa:"\%"}.fa-asterisk{--fa:"\*"}.fa-add,.fa-plus{--fa:"\+"}.fa-less-than{--fa:"\<"}.fa-equals{--fa:"\="}.fa-greater-than{--fa:"\>"}.fa-question{--fa:"\?"}.fa-at{--fa:"\@"}.fa-a{--fa:"A"}.fa-b{--fa:"B"}.fa-c{--fa:"C"}.fa-d{--fa:"D"}.fa-e{--fa:"E"}.fa-f{--fa:"F"}.fa-g{--fa:"G"}.fa-h{--fa:"H"}.fa-i{--fa:"I"}.fa-j{--fa:"J"}.fa-k{--fa:"K"}.fa-l{--fa:"L"}.fa-m{--fa:"M"}.fa-n{--fa:"N"}.fa-o{--fa:"O"}.fa-p{--fa:"P"}.fa-q{--fa:"Q"}.fa-r{--fa:"R"}.fa-s{--fa:"S"}.fa-t{--fa:"T"}.fa-u{--fa:"U"}.fa-v{--fa:"V"}.fa-w{--fa:"W"}.fa-x{--fa:"X"}.fa-y{--fa:"Y"}.fa-z{--fa:"Z"}.fa-faucet{--fa:"\e005"}.fa-faucet-drip{--fa:"\e006"}.fa-house-chimney-window{--fa:"\e00d"}.fa-house-signal{--fa:"\e012"}.fa-temperature-arrow-down,.fa-temperature-down{--fa:"\e03f"}.fa-temperature-arrow-up,.fa-temperature-up{--fa:"\e040"}.fa-trailer{--fa:"\e041"}.fa-bacteria{--fa:"\e059"}.fa-bacterium{--fa:"\e05a"}.fa-box-tissue{--fa:"\e05b"}.fa-hand-holding-medical{--fa:"\e05c"}.fa-hand-sparkles{--fa:"\e05d"}.fa-hands-bubbles,.fa-hands-wash{--fa:"\e05e"}.fa-handshake-alt-slash,.fa-handshake-simple-slash,.fa-handshake-slash{--fa:"\e060"}.fa-head-side-cough{--fa:"\e061"}.fa-head-side-cough-slash{--fa:"\e062"}.fa-head-side-mask{--fa:"\e063"}.fa-head-side-virus{--fa:"\e064"}.fa-house-chimney-user{--fa:"\e065"}.fa-house-laptop,.fa-laptop-house{--fa:"\e066"}.fa-lungs-virus{--fa:"\e067"}.fa-people-arrows,.fa-people-arrows-left-right{--fa:"\e068"}.fa-plane-slash{--fa:"\e069"}.fa-pump-medical{--fa:"\e06a"}.fa-pump-soap{--fa:"\e06b"}.fa-shield-virus{--fa:"\e06c"}.fa-sink{--fa:"\e06d"}.fa-soap{--fa:"\e06e"}.fa-stopwatch-20{--fa:"\e06f"}.fa-shop-slash,.fa-store-alt-slash{--fa:"\e070"}.fa-store-slash{--fa:"\e071"}.fa-toilet-paper-slash{--fa:"\e072"}.fa-users-slash{--fa:"\e073"}.fa-virus{--fa:"\e074"}.fa-virus-slash{--fa:"\e075"}.fa-viruses{--fa:"\e076"}.fa-vest{--fa:"\e085"}.fa-vest-patches{--fa:"\e086"}.fa-arrow-trend-down{--fa:"\e097"}.fa-arrow-trend-up{--fa:"\e098"}.fa-arrow-up-from-bracket{--fa:"\e09a"}.fa-austral-sign{--fa:"\e0a9"}.fa-baht-sign{--fa:"\e0ac"}.fa-bitcoin-sign{--fa:"\e0b4"}.fa-bolt-lightning{--fa:"\e0b7"}.fa-book-bookmark{--fa:"\e0bb"}.fa-camera-rotate{--fa:"\e0d8"}.fa-cedi-sign{--fa:"\e0df"}.fa-chart-column{--fa:"\e0e3"}.fa-chart-gantt{--fa:"\e0e4"}.fa-clapperboard{--fa:"\e131"}.fa-clover{--fa:"\e139"}.fa-code-compare{--fa:"\e13a"}.fa-code-fork{--fa:"\e13b"}.fa-code-pull-request{--fa:"\e13c"}.fa-colon-sign{--fa:"\e140"}.fa-cruzeiro-sign{--fa:"\e152"}.fa-display{--fa:"\e163"}.fa-dong-sign{--fa:"\e169"}.fa-elevator{--fa:"\e16d"}.fa-filter-circle-xmark{--fa:"\e17b"}.fa-florin-sign{--fa:"\e184"}.fa-folder-closed{--fa:"\e185"}.fa-franc-sign{--fa:"\e18f"}.fa-guarani-sign{--fa:"\e19a"}.fa-gun{--fa:"\e19b"}.fa-hands-clapping{--fa:"\e1a8"}.fa-home-user,.fa-house-user{--fa:"\e1b0"}.fa-indian-rupee,.fa-indian-rupee-sign,.fa-inr{--fa:"\e1bc"}.fa-kip-sign{--fa:"\e1c4"}.fa-lari-sign{--fa:"\e1c8"}.fa-litecoin-sign{--fa:"\e1d3"}.fa-manat-sign{--fa:"\e1d5"}.fa-mask-face{--fa:"\e1d7"}.fa-mill-sign{--fa:"\e1ed"}.fa-money-bills{--fa:"\e1f3"}.fa-naira-sign{--fa:"\e1f6"}.fa-notdef{--fa:"\e1fe"}.fa-panorama{--fa:"\e209"}.fa-peseta-sign{--fa:"\e221"}.fa-peso-sign{--fa:"\e222"}.fa-plane-up{--fa:"\e22d"}.fa-rupiah-sign{--fa:"\e23d"}.fa-stairs{--fa:"\e289"}.fa-timeline{--fa:"\e29c"}.fa-truck-front{--fa:"\e2b7"}.fa-try,.fa-turkish-lira,.fa-turkish-lira-sign{--fa:"\e2bb"}.fa-vault{--fa:"\e2c5"}.fa-magic-wand-sparkles,.fa-wand-magic-sparkles{--fa:"\e2ca"}.fa-wheat-alt,.fa-wheat-awn{--fa:"\e2cd"}.fa-wheelchair-alt,.fa-wheelchair-move{--fa:"\e2ce"}.fa-bangladeshi-taka-sign{--fa:"\e2e6"}.fa-bowl-rice{--fa:"\e2eb"}.fa-person-pregnant{--fa:"\e31e"}.fa-home-lg,.fa-house-chimney{--fa:"\e3af"}.fa-house-crack{--fa:"\e3b1"}.fa-house-medical{--fa:"\e3b2"}.fa-cent-sign{--fa:"\e3f5"}.fa-plus-minus{--fa:"\e43c"}.fa-sailboat{--fa:"\e445"}.fa-section{--fa:"\e447"}.fa-shrimp{--fa:"\e448"}.fa-brazilian-real-sign{--fa:"\e46c"}.fa-chart-simple{--fa:"\e473"}.fa-diagram-next{--fa:"\e476"}.fa-diagram-predecessor{--fa:"\e477"}.fa-diagram-successor{--fa:"\e47a"}.fa-earth-oceania,.fa-globe-oceania{--fa:"\e47b"}.fa-bug-slash{--fa:"\e490"}.fa-file-circle-plus{--fa:"\e494"}.fa-shop-lock{--fa:"\e4a5"}.fa-virus-covid{--fa:"\e4a8"}.fa-virus-covid-slash{--fa:"\e4a9"}.fa-anchor-circle-check{--fa:"\e4aa"}.fa-anchor-circle-exclamation{--fa:"\e4ab"}.fa-anchor-circle-xmark{--fa:"\e4ac"}.fa-anchor-lock{--fa:"\e4ad"}.fa-arrow-down-up-across-line{--fa:"\e4af"}.fa-arrow-down-up-lock{--fa:"\e4b0"}.fa-arrow-right-to-city{--fa:"\e4b3"}.fa-arrow-up-from-ground-water{--fa:"\e4b5"}.fa-arrow-up-from-water-pump{--fa:"\e4b6"}.fa-arrow-up-right-dots{--fa:"\e4b7"}.fa-arrows-down-to-line{--fa:"\e4b8"}.fa-arrows-down-to-people{--fa:"\e4b9"}.fa-arrows-left-right-to-line{--fa:"\e4ba"}.fa-arrows-spin{--fa:"\e4bb"}.fa-arrows-split-up-and-left{--fa:"\e4bc"}.fa-arrows-to-circle{--fa:"\e4bd"}.fa-arrows-to-dot{--fa:"\e4be"}.fa-arrows-to-eye{--fa:"\e4bf"}.fa-arrows-turn-right{--fa:"\e4c0"}.fa-arrows-turn-to-dots{--fa:"\e4c1"}.fa-arrows-up-to-line{--fa:"\e4c2"}.fa-bore-hole{--fa:"\e4c3"}.fa-bottle-droplet{--fa:"\e4c4"}.fa-bottle-water{--fa:"\e4c5"}.fa-bowl-food{--fa:"\e4c6"}.fa-boxes-packing{--fa:"\e4c7"}.fa-bridge{--fa:"\e4c8"}.fa-bridge-circle-check{--fa:"\e4c9"}.fa-bridge-circle-exclamation{--fa:"\e4ca"}.fa-bridge-circle-xmark{--fa:"\e4cb"}.fa-bridge-lock{--fa:"\e4cc"}.fa-bridge-water{--fa:"\e4ce"}.fa-bucket{--fa:"\e4cf"}.fa-bugs{--fa:"\e4d0"}.fa-building-circle-arrow-right{--fa:"\e4d1"}.fa-building-circle-check{--fa:"\e4d2"}.fa-building-circle-exclamation{--fa:"\e4d3"}.fa-building-circle-xmark{--fa:"\e4d4"}.fa-building-flag{--fa:"\e4d5"}.fa-building-lock{--fa:"\e4d6"}.fa-building-ngo{--fa:"\e4d7"}.fa-building-shield{--fa:"\e4d8"}.fa-building-un{--fa:"\e4d9"}.fa-building-user{--fa:"\e4da"}.fa-building-wheat{--fa:"\e4db"}.fa-burst{--fa:"\e4dc"}.fa-car-on{--fa:"\e4dd"}.fa-car-tunnel{--fa:"\e4de"}.fa-child-combatant,.fa-child-rifle{--fa:"\e4e0"}.fa-children{--fa:"\e4e1"}.fa-circle-nodes{--fa:"\e4e2"}.fa-clipboard-question{--fa:"\e4e3"}.fa-cloud-showers-water{--fa:"\e4e4"}.fa-computer{--fa:"\e4e5"}.fa-cubes-stacked{--fa:"\e4e6"}.fa-envelope-circle-check{--fa:"\e4e8"}.fa-explosion{--fa:"\e4e9"}.fa-ferry{--fa:"\e4ea"}.fa-file-circle-exclamation{--fa:"\e4eb"}.fa-file-circle-minus{--fa:"\e4ed"}.fa-file-circle-question{--fa:"\e4ef"}.fa-file-shield{--fa:"\e4f0"}.fa-fire-burner{--fa:"\e4f1"}.fa-fish-fins{--fa:"\e4f2"}.fa-flask-vial{--fa:"\e4f3"}.fa-glass-water{--fa:"\e4f4"}.fa-glass-water-droplet{--fa:"\e4f5"}.fa-group-arrows-rotate{--fa:"\e4f6"}.fa-hand-holding-hand{--fa:"\e4f7"}.fa-handcuffs{--fa:"\e4f8"}.fa-hands-bound{--fa:"\e4f9"}.fa-hands-holding-child{--fa:"\e4fa"}.fa-hands-holding-circle{--fa:"\e4fb"}.fa-heart-circle-bolt{--fa:"\e4fc"}.fa-heart-circle-check{--fa:"\e4fd"}.fa-heart-circle-exclamation{--fa:"\e4fe"}.fa-heart-circle-minus{--fa:"\e4ff"}.fa-heart-circle-plus{--fa:"\e500"}.fa-heart-circle-xmark{--fa:"\e501"}.fa-helicopter-symbol{--fa:"\e502"}.fa-helmet-un{--fa:"\e503"}.fa-hill-avalanche{--fa:"\e507"}.fa-hill-rockslide{--fa:"\e508"}.fa-house-circle-check{--fa:"\e509"}.fa-house-circle-exclamation{--fa:"\e50a"}.fa-house-circle-xmark{--fa:"\e50b"}.fa-house-fire{--fa:"\e50c"}.fa-house-flag{--fa:"\e50d"}.fa-house-flood-water{--fa:"\e50e"}.fa-house-flood-water-circle-arrow-right{--fa:"\e50f"}.fa-house-lock{--fa:"\e510"}.fa-house-medical-circle-check{--fa:"\e511"}.fa-house-medical-circle-exclamation{--fa:"\e512"}.fa-house-medical-circle-xmark{--fa:"\e513"}.fa-house-medical-flag{--fa:"\e514"}.fa-house-tsunami{--fa:"\e515"}.fa-jar{--fa:"\e516"}.fa-jar-wheat{--fa:"\e517"}.fa-jet-fighter-up{--fa:"\e518"}.fa-jug-detergent{--fa:"\e519"}.fa-kitchen-set{--fa:"\e51a"}.fa-land-mine-on{--fa:"\e51b"}.fa-landmark-flag{--fa:"\e51c"}.fa-laptop-file{--fa:"\e51d"}.fa-lines-leaning{--fa:"\e51e"}.fa-location-pin-lock{--fa:"\e51f"}.fa-locust{--fa:"\e520"}.fa-magnifying-glass-arrow-right{--fa:"\e521"}.fa-magnifying-glass-chart{--fa:"\e522"}.fa-mars-and-venus-burst{--fa:"\e523"}.fa-mask-ventilator{--fa:"\e524"}.fa-mattress-pillow{--fa:"\e525"}.fa-mobile-retro{--fa:"\e527"}.fa-money-bill-transfer{--fa:"\e528"}.fa-money-bill-trend-up{--fa:"\e529"}.fa-money-bill-wheat{--fa:"\e52a"}.fa-mosquito{--fa:"\e52b"}.fa-mosquito-net{--fa:"\e52c"}.fa-mound{--fa:"\e52d"}.fa-mountain-city{--fa:"\e52e"}.fa-mountain-sun{--fa:"\e52f"}.fa-oil-well{--fa:"\e532"}.fa-people-group{--fa:"\e533"}.fa-people-line{--fa:"\e534"}.fa-people-pulling{--fa:"\e535"}.fa-people-robbery{--fa:"\e536"}.fa-people-roof{--fa:"\e537"}.fa-person-arrow-down-to-line{--fa:"\e538"}.fa-person-arrow-up-from-line{--fa:"\e539"}.fa-person-breastfeeding{--fa:"\e53a"}.fa-person-burst{--fa:"\e53b"}.fa-person-cane{--fa:"\e53c"}.fa-person-chalkboard{--fa:"\e53d"}.fa-person-circle-check{--fa:"\e53e"}.fa-person-circle-exclamation{--fa:"\e53f"}.fa-person-circle-minus{--fa:"\e540"}.fa-person-circle-plus{--fa:"\e541"}.fa-person-circle-question{--fa:"\e542"}.fa-person-circle-xmark{--fa:"\e543"}.fa-person-dress-burst{--fa:"\e544"}.fa-person-drowning{--fa:"\e545"}.fa-person-falling{--fa:"\e546"}.fa-person-falling-burst{--fa:"\e547"}.fa-person-half-dress{--fa:"\e548"}.fa-person-harassing{--fa:"\e549"}.fa-person-military-pointing{--fa:"\e54a"}.fa-person-military-rifle{--fa:"\e54b"}.fa-person-military-to-person{--fa:"\e54c"}.fa-person-rays{--fa:"\e54d"}.fa-person-rifle{--fa:"\e54e"}.fa-person-shelter{--fa:"\e54f"}.fa-person-walking-arrow-loop-left{--fa:"\e551"}.fa-person-walking-arrow-right{--fa:"\e552"}.fa-person-walking-dashed-line-arrow-right{--fa:"\e553"}.fa-person-walking-luggage{--fa:"\e554"}.fa-plane-circle-check{--fa:"\e555"}.fa-plane-circle-exclamation{--fa:"\e556"}.fa-plane-circle-xmark{--fa:"\e557"}.fa-plane-lock{--fa:"\e558"}.fa-plate-wheat{--fa:"\e55a"}.fa-plug-circle-bolt{--fa:"\e55b"}.fa-plug-circle-check{--fa:"\e55c"}.fa-plug-circle-exclamation{--fa:"\e55d"}.fa-plug-circle-minus{--fa:"\e55e"}.fa-plug-circle-plus{--fa:"\e55f"}.fa-plug-circle-xmark{--fa:"\e560"}.fa-ranking-star{--fa:"\e561"}.fa-road-barrier{--fa:"\e562"}.fa-road-bridge{--fa:"\e563"}.fa-road-circle-check{--fa:"\e564"}.fa-road-circle-exclamation{--fa:"\e565"}.fa-road-circle-xmark{--fa:"\e566"}.fa-road-lock{--fa:"\e567"}.fa-road-spikes{--fa:"\e568"}.fa-rug{--fa:"\e569"}.fa-sack-xmark{--fa:"\e56a"}.fa-school-circle-check{--fa:"\e56b"}.fa-school-circle-exclamation{--fa:"\e56c"}.fa-school-circle-xmark{--fa:"\e56d"}.fa-school-flag{--fa:"\e56e"}.fa-school-lock{--fa:"\e56f"}.fa-sheet-plastic{--fa:"\e571"}.fa-shield-cat{--fa:"\e572"}.fa-shield-dog{--fa:"\e573"}.fa-shield-heart{--fa:"\e574"}.fa-square-nfi{--fa:"\e576"}.fa-square-person-confined{--fa:"\e577"}.fa-square-virus{--fa:"\e578"}.fa-rod-asclepius,.fa-rod-snake,.fa-staff-aesculapius,.fa-staff-snake{--fa:"\e579"}.fa-sun-plant-wilt{--fa:"\e57a"}.fa-tarp{--fa:"\e57b"}.fa-tarp-droplet{--fa:"\e57c"}.fa-tent{--fa:"\e57d"}.fa-tent-arrow-down-to-line{--fa:"\e57e"}.fa-tent-arrow-left-right{--fa:"\e57f"}.fa-tent-arrow-turn-left{--fa:"\e580"}.fa-tent-arrows-down{--fa:"\e581"}.fa-tents{--fa:"\e582"}.fa-toilet-portable{--fa:"\e583"}.fa-toilets-portable{--fa:"\e584"}.fa-tower-cell{--fa:"\e585"}.fa-tower-observation{--fa:"\e586"}.fa-tree-city{--fa:"\e587"}.fa-trowel{--fa:"\e589"}.fa-trowel-bricks{--fa:"\e58a"}.fa-truck-arrow-right{--fa:"\e58b"}.fa-truck-droplet{--fa:"\e58c"}.fa-truck-field{--fa:"\e58d"}.fa-truck-field-un{--fa:"\e58e"}.fa-truck-plane{--fa:"\e58f"}.fa-users-between-lines{--fa:"\e591"}.fa-users-line{--fa:"\e592"}.fa-users-rays{--fa:"\e593"}.fa-users-rectangle{--fa:"\e594"}.fa-users-viewfinder{--fa:"\e595"}.fa-vial-circle-check{--fa:"\e596"}.fa-vial-virus{--fa:"\e597"}.fa-wheat-awn-circle-exclamation{--fa:"\e598"}.fa-worm{--fa:"\e599"}.fa-xmarks-lines{--fa:"\e59a"}.fa-child-dress{--fa:"\e59c"}.fa-child-reaching{--fa:"\e59d"}.fa-file-circle-check{--fa:"\e5a0"}.fa-file-circle-xmark{--fa:"\e5a1"}.fa-person-through-window{--fa:"\e5a9"}.fa-plant-wilt{--fa:"\e5aa"}.fa-stapler{--fa:"\e5af"}.fa-train-tram{--fa:"\e5b4"}.fa-table-cells-column-lock{--fa:"\e678"}.fa-table-cells-row-lock{--fa:"\e67a"}.fa-web-awesome{--fa:"\e682"}.fa-thumb-tack-slash,.fa-thumbtack-slash{--fa:"\e68f"}.fa-table-cells-row-unlock{--fa:"\e691"}.fa-chart-diagram{--fa:"\e695"}.fa-comment-nodes{--fa:"\e696"}.fa-file-fragment{--fa:"\e697"}.fa-file-half-dashed{--fa:"\e698"}.fa-hexagon-nodes{--fa:"\e699"}.fa-hexagon-nodes-bolt{--fa:"\e69a"}.fa-square-binary{--fa:"\e69b"}.fa-pentagon{--fa:"\e790"}.fa-non-binary{--fa:"\e807"}.fa-spiral{--fa:"\e80a"}.fa-mobile-vibrate{--fa:"\e816"}.fa-single-quote-left{--fa:"\e81b"}.fa-single-quote-right{--fa:"\e81c"}.fa-bus-side{--fa:"\e81d"}.fa-heptagon,.fa-septagon{--fa:"\e820"}.fa-glass-martini,.fa-martini-glass-empty{--fa:"\f000"}.fa-music{--fa:"\f001"}.fa-magnifying-glass,.fa-search{--fa:"\f002"}.fa-heart{--fa:"\f004"}.fa-star{--fa:"\f005"}.fa-user,.fa-user-alt,.fa-user-large{--fa:"\f007"}.fa-film,.fa-film-alt,.fa-film-simple{--fa:"\f008"}.fa-table-cells-large,.fa-th-large{--fa:"\f009"}.fa-table-cells,.fa-th{--fa:"\f00a"}.fa-table-list,.fa-th-list{--fa:"\f00b"}.fa-check{--fa:"\f00c"}.fa-close,.fa-multiply,.fa-remove,.fa-times,.fa-xmark{--fa:"\f00d"}.fa-magnifying-glass-plus,.fa-search-plus{--fa:"\f00e"}.fa-magnifying-glass-minus,.fa-search-minus{--fa:"\f010"}.fa-power-off{--fa:"\f011"}.fa-signal,.fa-signal-5,.fa-signal-perfect{--fa:"\f012"}.fa-cog,.fa-gear{--fa:"\f013"}.fa-home,.fa-home-alt,.fa-home-lg-alt,.fa-house{--fa:"\f015"}.fa-clock,.fa-clock-four{--fa:"\f017"}.fa-road{--fa:"\f018"}.fa-download{--fa:"\f019"}.fa-inbox{--fa:"\f01c"}.fa-arrow-right-rotate,.fa-arrow-rotate-forward,.fa-arrow-rotate-right,.fa-redo{--fa:"\f01e"}.fa-arrows-rotate,.fa-refresh,.fa-sync{--fa:"\f021"}.fa-list-alt,.fa-rectangle-list{--fa:"\f022"}.fa-lock{--fa:"\f023"}.fa-flag{--fa:"\f024"}.fa-headphones,.fa-headphones-alt,.fa-headphones-simple{--fa:"\f025"}.fa-volume-off{--fa:"\f026"}.fa-volume-down,.fa-volume-low{--fa:"\f027"}.fa-volume-high,.fa-volume-up{--fa:"\f028"}.fa-qrcode{--fa:"\f029"}.fa-barcode{--fa:"\f02a"}.fa-tag{--fa:"\f02b"}.fa-tags{--fa:"\f02c"}.fa-book{--fa:"\f02d"}.fa-bookmark{--fa:"\f02e"}.fa-print{--fa:"\f02f"}.fa-camera,.fa-camera-alt{--fa:"\f030"}.fa-font{--fa:"\f031"}.fa-bold{--fa:"\f032"}.fa-italic{--fa:"\f033"}.fa-text-height{--fa:"\f034"}.fa-text-width{--fa:"\f035"}.fa-align-left{--fa:"\f036"}.fa-align-center{--fa:"\f037"}.fa-align-right{--fa:"\f038"}.fa-align-justify{--fa:"\f039"}.fa-list,.fa-list-squares{--fa:"\f03a"}.fa-dedent,.fa-outdent{--fa:"\f03b"}.fa-indent{--fa:"\f03c"}.fa-video,.fa-video-camera{--fa:"\f03d"}.fa-image{--fa:"\f03e"}.fa-location-pin,.fa-map-marker{--fa:"\f041"}.fa-adjust,.fa-circle-half-stroke{--fa:"\f042"}.fa-droplet,.fa-tint{--fa:"\f043"}.fa-edit,.fa-pen-to-square{--fa:"\f044"}.fa-arrows,.fa-arrows-up-down-left-right{--fa:"\f047"}.fa-backward-step,.fa-step-backward{--fa:"\f048"}.fa-backward-fast,.fa-fast-backward{--fa:"\f049"}.fa-backward{--fa:"\f04a"}.fa-play{--fa:"\f04b"}.fa-pause{--fa:"\f04c"}.fa-stop{--fa:"\f04d"}.fa-forward{--fa:"\f04e"}.fa-fast-forward,.fa-forward-fast{--fa:"\f050"}.fa-forward-step,.fa-step-forward{--fa:"\f051"}.fa-eject{--fa:"\f052"}.fa-chevron-left{--fa:"\f053"}.fa-chevron-right{--fa:"\f054"}.fa-circle-plus,.fa-plus-circle{--fa:"\f055"}.fa-circle-minus,.fa-minus-circle{--fa:"\f056"}.fa-circle-xmark,.fa-times-circle,.fa-xmark-circle{--fa:"\f057"}.fa-check-circle,.fa-circle-check{--fa:"\f058"}.fa-circle-question,.fa-question-circle{--fa:"\f059"}.fa-circle-info,.fa-info-circle{--fa:"\f05a"}.fa-crosshairs{--fa:"\f05b"}.fa-ban,.fa-cancel{--fa:"\f05e"}.fa-arrow-left{--fa:"\f060"}.fa-arrow-right{--fa:"\f061"}.fa-arrow-up{--fa:"\f062"}.fa-arrow-down{--fa:"\f063"}.fa-mail-forward,.fa-share{--fa:"\f064"}.fa-expand{--fa:"\f065"}.fa-compress{--fa:"\f066"}.fa-minus,.fa-subtract{--fa:"\f068"}.fa-circle-exclamation,.fa-exclamation-circle{--fa:"\f06a"}.fa-gift{--fa:"\f06b"}.fa-leaf{--fa:"\f06c"}.fa-fire{--fa:"\f06d"}.fa-eye{--fa:"\f06e"}.fa-eye-slash{--fa:"\f070"}.fa-exclamation-triangle,.fa-triangle-exclamation,.fa-warning{--fa:"\f071"}.fa-plane{--fa:"\f072"}.fa-calendar-alt,.fa-calendar-days{--fa:"\f073"}.fa-random,.fa-shuffle{--fa:"\f074"}.fa-comment{--fa:"\f075"}.fa-magnet{--fa:"\f076"}.fa-chevron-up{--fa:"\f077"}.fa-chevron-down{--fa:"\f078"}.fa-retweet{--fa:"\f079"}.fa-cart-shopping,.fa-shopping-cart{--fa:"\f07a"}.fa-folder,.fa-folder-blank{--fa:"\f07b"}.fa-folder-open{--fa:"\f07c"}.fa-arrows-up-down,.fa-arrows-v{--fa:"\f07d"}.fa-arrows-h,.fa-arrows-left-right{--fa:"\f07e"}.fa-bar-chart,.fa-chart-bar{--fa:"\f080"}.fa-camera-retro{--fa:"\f083"}.fa-key{--fa:"\f084"}.fa-cogs,.fa-gears{--fa:"\f085"}.fa-comments{--fa:"\f086"}.fa-star-half{--fa:"\f089"}.fa-arrow-right-from-bracket,.fa-sign-out{--fa:"\f08b"}.fa-thumb-tack,.fa-thumbtack{--fa:"\f08d"}.fa-arrow-up-right-from-square,.fa-external-link{--fa:"\f08e"}.fa-arrow-right-to-bracket,.fa-sign-in{--fa:"\f090"}.fa-trophy{--fa:"\f091"}.fa-upload{--fa:"\f093"}.fa-lemon{--fa:"\f094"}.fa-phone{--fa:"\f095"}.fa-phone-square,.fa-square-phone{--fa:"\f098"}.fa-unlock{--fa:"\f09c"}.fa-credit-card,.fa-credit-card-alt{--fa:"\f09d"}.fa-feed,.fa-rss{--fa:"\f09e"}.fa-hard-drive,.fa-hdd{--fa:"\f0a0"}.fa-bullhorn{--fa:"\f0a1"}.fa-certificate{--fa:"\f0a3"}.fa-hand-point-right{--fa:"\f0a4"}.fa-hand-point-left{--fa:"\f0a5"}.fa-hand-point-up{--fa:"\f0a6"}.fa-hand-point-down{--fa:"\f0a7"}.fa-arrow-circle-left,.fa-circle-arrow-left{--fa:"\f0a8"}.fa-arrow-circle-right,.fa-circle-arrow-right{--fa:"\f0a9"}.fa-arrow-circle-up,.fa-circle-arrow-up{--fa:"\f0aa"}.fa-arrow-circle-down,.fa-circle-arrow-down{--fa:"\f0ab"}.fa-globe{--fa:"\f0ac"}.fa-wrench{--fa:"\f0ad"}.fa-list-check,.fa-tasks{--fa:"\f0ae"}.fa-filter{--fa:"\f0b0"}.fa-briefcase{--fa:"\f0b1"}.fa-arrows-alt,.fa-up-down-left-right{--fa:"\f0b2"}.fa-users{--fa:"\f0c0"}.fa-chain,.fa-link{--fa:"\f0c1"}.fa-cloud{--fa:"\f0c2"}.fa-flask{--fa:"\f0c3"}.fa-cut,.fa-scissors{--fa:"\f0c4"}.fa-copy{--fa:"\f0c5"}.fa-paperclip{--fa:"\f0c6"}.fa-floppy-disk,.fa-save{--fa:"\f0c7"}.fa-square{--fa:"\f0c8"}.fa-bars,.fa-navicon{--fa:"\f0c9"}.fa-list-dots,.fa-list-ul{--fa:"\f0ca"}.fa-list-1-2,.fa-list-numeric,.fa-list-ol{--fa:"\f0cb"}.fa-strikethrough{--fa:"\f0cc"}.fa-underline{--fa:"\f0cd"}.fa-table{--fa:"\f0ce"}.fa-magic,.fa-wand-magic{--fa:"\f0d0"}.fa-truck{--fa:"\f0d1"}.fa-money-bill{--fa:"\f0d6"}.fa-caret-down{--fa:"\f0d7"}.fa-caret-up{--fa:"\f0d8"}.fa-caret-left{--fa:"\f0d9"}.fa-caret-right{--fa:"\f0da"}.fa-columns,.fa-table-columns{--fa:"\f0db"}.fa-sort,.fa-unsorted{--fa:"\f0dc"}.fa-sort-desc,.fa-sort-down{--fa:"\f0dd"}.fa-sort-asc,.fa-sort-up{--fa:"\f0de"}.fa-envelope{--fa:"\f0e0"}.fa-arrow-left-rotate,.fa-arrow-rotate-back,.fa-arrow-rotate-backward,.fa-arrow-rotate-left,.fa-undo{--fa:"\f0e2"}.fa-gavel,.fa-legal{--fa:"\f0e3"}.fa-bolt,.fa-zap{--fa:"\f0e7"}.fa-sitemap{--fa:"\f0e8"}.fa-umbrella{--fa:"\f0e9"}.fa-file-clipboard,.fa-paste{--fa:"\f0ea"}.fa-lightbulb{--fa:"\f0eb"}.fa-arrow-right-arrow-left,.fa-exchange{--fa:"\f0ec"}.fa-cloud-arrow-down,.fa-cloud-download,.fa-cloud-download-alt{--fa:"\f0ed"}.fa-cloud-arrow-up,.fa-cloud-upload,.fa-cloud-upload-alt{--fa:"\f0ee"}.fa-user-doctor,.fa-user-md{--fa:"\f0f0"}.fa-stethoscope{--fa:"\f0f1"}.fa-suitcase{--fa:"\f0f2"}.fa-bell{--fa:"\f0f3"}.fa-coffee,.fa-mug-saucer{--fa:"\f0f4"}.fa-hospital,.fa-hospital-alt,.fa-hospital-wide{--fa:"\f0f8"}.fa-ambulance,.fa-truck-medical{--fa:"\f0f9"}.fa-medkit,.fa-suitcase-medical{--fa:"\f0fa"}.fa-fighter-jet,.fa-jet-fighter{--fa:"\f0fb"}.fa-beer,.fa-beer-mug-empty{--fa:"\f0fc"}.fa-h-square,.fa-square-h{--fa:"\f0fd"}.fa-plus-square,.fa-square-plus{--fa:"\f0fe"}.fa-angle-double-left,.fa-angles-left{--fa:"\f100"}.fa-angle-double-right,.fa-angles-right{--fa:"\f101"}.fa-angle-double-up,.fa-angles-up{--fa:"\f102"}.fa-angle-double-down,.fa-angles-down{--fa:"\f103"}.fa-angle-left{--fa:"\f104"}.fa-angle-right{--fa:"\f105"}.fa-angle-up{--fa:"\f106"}.fa-angle-down{--fa:"\f107"}.fa-laptop{--fa:"\f109"}.fa-tablet-button{--fa:"\f10a"}.fa-mobile-button{--fa:"\f10b"}.fa-quote-left,.fa-quote-left-alt{--fa:"\f10d"}.fa-quote-right,.fa-quote-right-alt{--fa:"\f10e"}.fa-spinner{--fa:"\f110"}.fa-circle{--fa:"\f111"}.fa-face-smile,.fa-smile{--fa:"\f118"}.fa-face-frown,.fa-frown{--fa:"\f119"}.fa-face-meh,.fa-meh{--fa:"\f11a"}.fa-gamepad{--fa:"\f11b"}.fa-keyboard{--fa:"\f11c"}.fa-flag-checkered{--fa:"\f11e"}.fa-terminal{--fa:"\f120"}.fa-code{--fa:"\f121"}.fa-mail-reply-all,.fa-reply-all{--fa:"\f122"}.fa-location-arrow{--fa:"\f124"}.fa-crop{--fa:"\f125"}.fa-code-branch{--fa:"\f126"}.fa-chain-broken,.fa-chain-slash,.fa-link-slash,.fa-unlink{--fa:"\f127"}.fa-info{--fa:"\f129"}.fa-superscript{--fa:"\f12b"}.fa-subscript{--fa:"\f12c"}.fa-eraser{--fa:"\f12d"}.fa-puzzle-piece{--fa:"\f12e"}.fa-microphone{--fa:"\f130"}.fa-microphone-slash{--fa:"\f131"}.fa-shield,.fa-shield-blank{--fa:"\f132"}.fa-calendar{--fa:"\f133"}.fa-fire-extinguisher{--fa:"\f134"}.fa-rocket{--fa:"\f135"}.fa-chevron-circle-left,.fa-circle-chevron-left{--fa:"\f137"}.fa-chevron-circle-right,.fa-circle-chevron-right{--fa:"\f138"}.fa-chevron-circle-up,.fa-circle-chevron-up{--fa:"\f139"}.fa-chevron-circle-down,.fa-circle-chevron-down{--fa:"\f13a"}.fa-anchor{--fa:"\f13d"}.fa-unlock-alt,.fa-unlock-keyhole{--fa:"\f13e"}.fa-bullseye{--fa:"\f140"}.fa-ellipsis,.fa-ellipsis-h{--fa:"\f141"}.fa-ellipsis-v,.fa-ellipsis-vertical{--fa:"\f142"}.fa-rss-square,.fa-square-rss{--fa:"\f143"}.fa-circle-play,.fa-play-circle{--fa:"\f144"}.fa-ticket{--fa:"\f145"}.fa-minus-square,.fa-square-minus{--fa:"\f146"}.fa-arrow-turn-up,.fa-level-up{--fa:"\f148"}.fa-arrow-turn-down,.fa-level-down{--fa:"\f149"}.fa-check-square,.fa-square-check{--fa:"\f14a"}.fa-pen-square,.fa-pencil-square,.fa-square-pen{--fa:"\f14b"}.fa-external-link-square,.fa-square-arrow-up-right{--fa:"\f14c"}.fa-share-from-square,.fa-share-square{--fa:"\f14d"}.fa-compass{--fa:"\f14e"}.fa-caret-square-down,.fa-square-caret-down{--fa:"\f150"}.fa-caret-square-up,.fa-square-caret-up{--fa:"\f151"}.fa-caret-square-right,.fa-square-caret-right{--fa:"\f152"}.fa-eur,.fa-euro,.fa-euro-sign{--fa:"\f153"}.fa-gbp,.fa-pound-sign,.fa-sterling-sign{--fa:"\f154"}.fa-rupee,.fa-rupee-sign{--fa:"\f156"}.fa-cny,.fa-jpy,.fa-rmb,.fa-yen,.fa-yen-sign{--fa:"\f157"}.fa-rouble,.fa-rub,.fa-ruble,.fa-ruble-sign{--fa:"\f158"}.fa-krw,.fa-won,.fa-won-sign{--fa:"\f159"}.fa-file{--fa:"\f15b"}.fa-file-alt,.fa-file-lines,.fa-file-text{--fa:"\f15c"}.fa-arrow-down-a-z,.fa-sort-alpha-asc,.fa-sort-alpha-down{--fa:"\f15d"}.fa-arrow-up-a-z,.fa-sort-alpha-up{--fa:"\f15e"}.fa-arrow-down-wide-short,.fa-sort-amount-asc,.fa-sort-amount-down{--fa:"\f160"}.fa-arrow-up-wide-short,.fa-sort-amount-up{--fa:"\f161"}.fa-arrow-down-1-9,.fa-sort-numeric-asc,.fa-sort-numeric-down{--fa:"\f162"}.fa-arrow-up-1-9,.fa-sort-numeric-up{--fa:"\f163"}.fa-thumbs-up{--fa:"\f164"}.fa-thumbs-down{--fa:"\f165"}.fa-arrow-down-long,.fa-long-arrow-down{--fa:"\f175"}.fa-arrow-up-long,.fa-long-arrow-up{--fa:"\f176"}.fa-arrow-left-long,.fa-long-arrow-left{--fa:"\f177"}.fa-arrow-right-long,.fa-long-arrow-right{--fa:"\f178"}.fa-female,.fa-person-dress{--fa:"\f182"}.fa-male,.fa-person{--fa:"\f183"}.fa-sun{--fa:"\f185"}.fa-moon{--fa:"\f186"}.fa-archive,.fa-box-archive{--fa:"\f187"}.fa-bug{--fa:"\f188"}.fa-caret-square-left,.fa-square-caret-left{--fa:"\f191"}.fa-circle-dot,.fa-dot-circle{--fa:"\f192"}.fa-wheelchair{--fa:"\f193"}.fa-lira-sign{--fa:"\f195"}.fa-shuttle-space,.fa-space-shuttle{--fa:"\f197"}.fa-envelope-square,.fa-square-envelope{--fa:"\f199"}.fa-bank,.fa-building-columns,.fa-institution,.fa-museum,.fa-university{--fa:"\f19c"}.fa-graduation-cap,.fa-mortar-board{--fa:"\f19d"}.fa-language{--fa:"\f1ab"}.fa-fax{--fa:"\f1ac"}.fa-building{--fa:"\f1ad"}.fa-child{--fa:"\f1ae"}.fa-paw{--fa:"\f1b0"}.fa-cube{--fa:"\f1b2"}.fa-cubes{--fa:"\f1b3"}.fa-recycle{--fa:"\f1b8"}.fa-automobile,.fa-car{--fa:"\f1b9"}.fa-cab,.fa-taxi{--fa:"\f1ba"}.fa-tree{--fa:"\f1bb"}.fa-database{--fa:"\f1c0"}.fa-file-pdf{--fa:"\f1c1"}.fa-file-word{--fa:"\f1c2"}.fa-file-excel{--fa:"\f1c3"}.fa-file-powerpoint{--fa:"\f1c4"}.fa-file-image{--fa:"\f1c5"}.fa-file-archive,.fa-file-zipper{--fa:"\f1c6"}.fa-file-audio{--fa:"\f1c7"}.fa-file-video{--fa:"\f1c8"}.fa-file-code{--fa:"\f1c9"}.fa-life-ring{--fa:"\f1cd"}.fa-circle-notch{--fa:"\f1ce"}.fa-paper-plane{--fa:"\f1d8"}.fa-clock-rotate-left,.fa-history{--fa:"\f1da"}.fa-header,.fa-heading{--fa:"\f1dc"}.fa-paragraph{--fa:"\f1dd"}.fa-sliders,.fa-sliders-h{--fa:"\f1de"}.fa-share-alt,.fa-share-nodes{--fa:"\f1e0"}.fa-share-alt-square,.fa-square-share-nodes{--fa:"\f1e1"}.fa-bomb{--fa:"\f1e2"}.fa-futbol,.fa-futbol-ball,.fa-soccer-ball{--fa:"\f1e3"}.fa-teletype,.fa-tty{--fa:"\f1e4"}.fa-binoculars{--fa:"\f1e5"}.fa-plug{--fa:"\f1e6"}.fa-newspaper{--fa:"\f1ea"}.fa-wifi,.fa-wifi-3,.fa-wifi-strong{--fa:"\f1eb"}.fa-calculator{--fa:"\f1ec"}.fa-bell-slash{--fa:"\f1f6"}.fa-trash{--fa:"\f1f8"}.fa-copyright{--fa:"\f1f9"}.fa-eye-dropper,.fa-eye-dropper-empty,.fa-eyedropper{--fa:"\f1fb"}.fa-paint-brush,.fa-paintbrush{--fa:"\f1fc"}.fa-birthday-cake,.fa-cake,.fa-cake-candles{--fa:"\f1fd"}.fa-area-chart,.fa-chart-area{--fa:"\f1fe"}.fa-chart-pie,.fa-pie-chart{--fa:"\f200"}.fa-chart-line,.fa-line-chart{--fa:"\f201"}.fa-toggle-off{--fa:"\f204"}.fa-toggle-on{--fa:"\f205"}.fa-bicycle{--fa:"\f206"}.fa-bus{--fa:"\f207"}.fa-closed-captioning{--fa:"\f20a"}.fa-ils,.fa-shekel,.fa-shekel-sign,.fa-sheqel,.fa-sheqel-sign{--fa:"\f20b"}.fa-cart-plus{--fa:"\f217"}.fa-cart-arrow-down{--fa:"\f218"}.fa-diamond{--fa:"\f219"}.fa-ship{--fa:"\f21a"}.fa-user-secret{--fa:"\f21b"}.fa-motorcycle{--fa:"\f21c"}.fa-street-view{--fa:"\f21d"}.fa-heart-pulse,.fa-heartbeat{--fa:"\f21e"}.fa-venus{--fa:"\f221"}.fa-mars{--fa:"\f222"}.fa-mercury{--fa:"\f223"}.fa-mars-and-venus{--fa:"\f224"}.fa-transgender,.fa-transgender-alt{--fa:"\f225"}.fa-venus-double{--fa:"\f226"}.fa-mars-double{--fa:"\f227"}.fa-venus-mars{--fa:"\f228"}.fa-mars-stroke{--fa:"\f229"}.fa-mars-stroke-up,.fa-mars-stroke-v{--fa:"\f22a"}.fa-mars-stroke-h,.fa-mars-stroke-right{--fa:"\f22b"}.fa-neuter{--fa:"\f22c"}.fa-genderless{--fa:"\f22d"}.fa-server{--fa:"\f233"}.fa-user-plus{--fa:"\f234"}.fa-user-times,.fa-user-xmark{--fa:"\f235"}.fa-bed{--fa:"\f236"}.fa-train{--fa:"\f238"}.fa-subway,.fa-train-subway{--fa:"\f239"}.fa-battery,.fa-battery-5,.fa-battery-full{--fa:"\f240"}.fa-battery-4,.fa-battery-three-quarters{--fa:"\f241"}.fa-battery-3,.fa-battery-half{--fa:"\f242"}.fa-battery-2,.fa-battery-quarter{--fa:"\f243"}.fa-battery-0,.fa-battery-empty{--fa:"\f244"}.fa-arrow-pointer,.fa-mouse-pointer{--fa:"\f245"}.fa-i-cursor{--fa:"\f246"}.fa-object-group{--fa:"\f247"}.fa-object-ungroup{--fa:"\f248"}.fa-note-sticky,.fa-sticky-note{--fa:"\f249"}.fa-clone{--fa:"\f24d"}.fa-balance-scale,.fa-scale-balanced{--fa:"\f24e"}.fa-hourglass-1,.fa-hourglass-start{--fa:"\f251"}.fa-hourglass-2,.fa-hourglass-half{--fa:"\f252"}.fa-hourglass-3,.fa-hourglass-end{--fa:"\f253"}.fa-hourglass,.fa-hourglass-empty{--fa:"\f254"}.fa-hand-back-fist,.fa-hand-rock{--fa:"\f255"}.fa-hand,.fa-hand-paper{--fa:"\f256"}.fa-hand-scissors{--fa:"\f257"}.fa-hand-lizard{--fa:"\f258"}.fa-hand-spock{--fa:"\f259"}.fa-hand-pointer{--fa:"\f25a"}.fa-hand-peace{--fa:"\f25b"}.fa-trademark{--fa:"\f25c"}.fa-registered{--fa:"\f25d"}.fa-television,.fa-tv,.fa-tv-alt{--fa:"\f26c"}.fa-calendar-plus{--fa:"\f271"}.fa-calendar-minus{--fa:"\f272"}.fa-calendar-times,.fa-calendar-xmark{--fa:"\f273"}.fa-calendar-check{--fa:"\f274"}.fa-industry{--fa:"\f275"}.fa-map-pin{--fa:"\f276"}.fa-map-signs,.fa-signs-post{--fa:"\f277"}.fa-map{--fa:"\f279"}.fa-comment-alt,.fa-message{--fa:"\f27a"}.fa-circle-pause,.fa-pause-circle{--fa:"\f28b"}.fa-circle-stop,.fa-stop-circle{--fa:"\f28d"}.fa-bag-shopping,.fa-shopping-bag{--fa:"\f290"}.fa-basket-shopping,.fa-shopping-basket{--fa:"\f291"}.fa-universal-access{--fa:"\f29a"}.fa-blind,.fa-person-walking-with-cane{--fa:"\f29d"}.fa-audio-description{--fa:"\f29e"}.fa-phone-volume,.fa-volume-control-phone{--fa:"\f2a0"}.fa-braille{--fa:"\f2a1"}.fa-assistive-listening-systems,.fa-ear-listen{--fa:"\f2a2"}.fa-american-sign-language-interpreting,.fa-asl-interpreting,.fa-hands-american-sign-language-interpreting,.fa-hands-asl-interpreting{--fa:"\f2a3"}.fa-deaf,.fa-deafness,.fa-ear-deaf,.fa-hard-of-hearing{--fa:"\f2a4"}.fa-hands,.fa-sign-language,.fa-signing{--fa:"\f2a7"}.fa-eye-low-vision,.fa-low-vision{--fa:"\f2a8"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-handshake,.fa-handshake-alt,.fa-handshake-simple{--fa:"\f2b5"}.fa-envelope-open{--fa:"\f2b6"}.fa-address-book,.fa-contact-book{--fa:"\f2b9"}.fa-address-card,.fa-contact-card,.fa-vcard{--fa:"\f2bb"}.fa-circle-user,.fa-user-circle{--fa:"\f2bd"}.fa-id-badge{--fa:"\f2c1"}.fa-drivers-license,.fa-id-card{--fa:"\f2c2"}.fa-temperature-4,.fa-temperature-full,.fa-thermometer-4,.fa-thermometer-full{--fa:"\f2c7"}.fa-temperature-3,.fa-temperature-three-quarters,.fa-thermometer-3,.fa-thermometer-three-quarters{--fa:"\f2c8"}.fa-temperature-2,.fa-temperature-half,.fa-thermometer-2,.fa-thermometer-half{--fa:"\f2c9"}.fa-temperature-1,.fa-temperature-quarter,.fa-thermometer-1,.fa-thermometer-quarter{--fa:"\f2ca"}.fa-temperature-0,.fa-temperature-empty,.fa-thermometer-0,.fa-thermometer-empty{--fa:"\f2cb"}.fa-shower{--fa:"\f2cc"}.fa-bath,.fa-bathtub{--fa:"\f2cd"}.fa-podcast{--fa:"\f2ce"}.fa-window-maximize{--fa:"\f2d0"}.fa-window-minimize{--fa:"\f2d1"}.fa-window-restore{--fa:"\f2d2"}.fa-square-xmark,.fa-times-square,.fa-xmark-square{--fa:"\f2d3"}.fa-microchip{--fa:"\f2db"}.fa-snowflake{--fa:"\f2dc"}.fa-spoon,.fa-utensil-spoon{--fa:"\f2e5"}.fa-cutlery,.fa-utensils{--fa:"\f2e7"}.fa-rotate-back,.fa-rotate-backward,.fa-rotate-left,.fa-undo-alt{--fa:"\f2ea"}.fa-trash-alt,.fa-trash-can{--fa:"\f2ed"}.fa-rotate,.fa-sync-alt{--fa:"\f2f1"}.fa-stopwatch{--fa:"\f2f2"}.fa-right-from-bracket,.fa-sign-out-alt{--fa:"\f2f5"}.fa-right-to-bracket,.fa-sign-in-alt{--fa:"\f2f6"}.fa-redo-alt,.fa-rotate-forward,.fa-rotate-right{--fa:"\f2f9"}.fa-poo{--fa:"\f2fe"}.fa-images{--fa:"\f302"}.fa-pencil,.fa-pencil-alt{--fa:"\f303"}.fa-pen{--fa:"\f304"}.fa-pen-alt,.fa-pen-clip{--fa:"\f305"}.fa-octagon{--fa:"\f306"}.fa-down-long,.fa-long-arrow-alt-down{--fa:"\f309"}.fa-left-long,.fa-long-arrow-alt-left{--fa:"\f30a"}.fa-long-arrow-alt-right,.fa-right-long{--fa:"\f30b"}.fa-long-arrow-alt-up,.fa-up-long{--fa:"\f30c"}.fa-hexagon{--fa:"\f312"}.fa-file-edit,.fa-file-pen{--fa:"\f31c"}.fa-expand-arrows-alt,.fa-maximize{--fa:"\f31e"}.fa-clipboard{--fa:"\f328"}.fa-arrows-alt-h,.fa-left-right{--fa:"\f337"}.fa-arrows-alt-v,.fa-up-down{--fa:"\f338"}.fa-alarm-clock{--fa:"\f34e"}.fa-arrow-alt-circle-down,.fa-circle-down{--fa:"\f358"}.fa-arrow-alt-circle-left,.fa-circle-left{--fa:"\f359"}.fa-arrow-alt-circle-right,.fa-circle-right{--fa:"\f35a"}.fa-arrow-alt-circle-up,.fa-circle-up{--fa:"\f35b"}.fa-external-link-alt,.fa-up-right-from-square{--fa:"\f35d"}.fa-external-link-square-alt,.fa-square-up-right{--fa:"\f360"}.fa-exchange-alt,.fa-right-left{--fa:"\f362"}.fa-repeat{--fa:"\f363"}.fa-code-commit{--fa:"\f386"}.fa-code-merge{--fa:"\f387"}.fa-desktop,.fa-desktop-alt{--fa:"\f390"}.fa-gem{--fa:"\f3a5"}.fa-level-down-alt,.fa-turn-down{--fa:"\f3be"}.fa-level-up-alt,.fa-turn-up{--fa:"\f3bf"}.fa-lock-open{--fa:"\f3c1"}.fa-location-dot,.fa-map-marker-alt{--fa:"\f3c5"}.fa-microphone-alt,.fa-microphone-lines{--fa:"\f3c9"}.fa-mobile-alt,.fa-mobile-screen-button{--fa:"\f3cd"}.fa-mobile,.fa-mobile-android,.fa-mobile-phone{--fa:"\f3ce"}.fa-mobile-android-alt,.fa-mobile-screen{--fa:"\f3cf"}.fa-money-bill-1,.fa-money-bill-alt{--fa:"\f3d1"}.fa-phone-slash{--fa:"\f3dd"}.fa-image-portrait,.fa-portrait{--fa:"\f3e0"}.fa-mail-reply,.fa-reply{--fa:"\f3e5"}.fa-shield-alt,.fa-shield-halved{--fa:"\f3ed"}.fa-tablet-alt,.fa-tablet-screen-button{--fa:"\f3fa"}.fa-tablet,.fa-tablet-android{--fa:"\f3fb"}.fa-ticket-alt,.fa-ticket-simple{--fa:"\f3ff"}.fa-rectangle-times,.fa-rectangle-xmark,.fa-times-rectangle,.fa-window-close{--fa:"\f410"}.fa-compress-alt,.fa-down-left-and-up-right-to-center{--fa:"\f422"}.fa-expand-alt,.fa-up-right-and-down-left-from-center{--fa:"\f424"}.fa-baseball-bat-ball{--fa:"\f432"}.fa-baseball,.fa-baseball-ball{--fa:"\f433"}.fa-basketball,.fa-basketball-ball{--fa:"\f434"}.fa-bowling-ball{--fa:"\f436"}.fa-chess{--fa:"\f439"}.fa-chess-bishop{--fa:"\f43a"}.fa-chess-board{--fa:"\f43c"}.fa-chess-king{--fa:"\f43f"}.fa-chess-knight{--fa:"\f441"}.fa-chess-pawn{--fa:"\f443"}.fa-chess-queen{--fa:"\f445"}.fa-chess-rook{--fa:"\f447"}.fa-dumbbell{--fa:"\f44b"}.fa-football,.fa-football-ball{--fa:"\f44e"}.fa-golf-ball,.fa-golf-ball-tee{--fa:"\f450"}.fa-hockey-puck{--fa:"\f453"}.fa-broom-ball,.fa-quidditch,.fa-quidditch-broom-ball{--fa:"\f458"}.fa-square-full{--fa:"\f45c"}.fa-ping-pong-paddle-ball,.fa-table-tennis,.fa-table-tennis-paddle-ball{--fa:"\f45d"}.fa-volleyball,.fa-volleyball-ball{--fa:"\f45f"}.fa-allergies,.fa-hand-dots{--fa:"\f461"}.fa-band-aid,.fa-bandage{--fa:"\f462"}.fa-box{--fa:"\f466"}.fa-boxes,.fa-boxes-alt,.fa-boxes-stacked{--fa:"\f468"}.fa-briefcase-medical{--fa:"\f469"}.fa-burn,.fa-fire-flame-simple{--fa:"\f46a"}.fa-capsules{--fa:"\f46b"}.fa-clipboard-check{--fa:"\f46c"}.fa-clipboard-list{--fa:"\f46d"}.fa-diagnoses,.fa-person-dots-from-line{--fa:"\f470"}.fa-dna{--fa:"\f471"}.fa-dolly,.fa-dolly-box{--fa:"\f472"}.fa-cart-flatbed,.fa-dolly-flatbed{--fa:"\f474"}.fa-file-medical{--fa:"\f477"}.fa-file-medical-alt,.fa-file-waveform{--fa:"\f478"}.fa-first-aid,.fa-kit-medical{--fa:"\f479"}.fa-circle-h,.fa-hospital-symbol{--fa:"\f47e"}.fa-id-card-alt,.fa-id-card-clip{--fa:"\f47f"}.fa-notes-medical{--fa:"\f481"}.fa-pallet{--fa:"\f482"}.fa-pills{--fa:"\f484"}.fa-prescription-bottle{--fa:"\f485"}.fa-prescription-bottle-alt,.fa-prescription-bottle-medical{--fa:"\f486"}.fa-bed-pulse,.fa-procedures{--fa:"\f487"}.fa-shipping-fast,.fa-truck-fast{--fa:"\f48b"}.fa-smoking{--fa:"\f48d"}.fa-syringe{--fa:"\f48e"}.fa-tablets{--fa:"\f490"}.fa-thermometer{--fa:"\f491"}.fa-vial{--fa:"\f492"}.fa-vials{--fa:"\f493"}.fa-warehouse{--fa:"\f494"}.fa-weight,.fa-weight-scale{--fa:"\f496"}.fa-x-ray{--fa:"\f497"}.fa-box-open{--fa:"\f49e"}.fa-comment-dots,.fa-commenting{--fa:"\f4ad"}.fa-comment-slash{--fa:"\f4b3"}.fa-couch{--fa:"\f4b8"}.fa-circle-dollar-to-slot,.fa-donate{--fa:"\f4b9"}.fa-dove{--fa:"\f4ba"}.fa-hand-holding{--fa:"\f4bd"}.fa-hand-holding-heart{--fa:"\f4be"}.fa-hand-holding-dollar,.fa-hand-holding-usd{--fa:"\f4c0"}.fa-hand-holding-droplet,.fa-hand-holding-water{--fa:"\f4c1"}.fa-hands-holding{--fa:"\f4c2"}.fa-hands-helping,.fa-handshake-angle{--fa:"\f4c4"}.fa-parachute-box{--fa:"\f4cd"}.fa-people-carry,.fa-people-carry-box{--fa:"\f4ce"}.fa-piggy-bank{--fa:"\f4d3"}.fa-ribbon{--fa:"\f4d6"}.fa-route{--fa:"\f4d7"}.fa-seedling,.fa-sprout{--fa:"\f4d8"}.fa-sign,.fa-sign-hanging{--fa:"\f4d9"}.fa-face-smile-wink,.fa-smile-wink{--fa:"\f4da"}.fa-tape{--fa:"\f4db"}.fa-truck-loading,.fa-truck-ramp-box{--fa:"\f4de"}.fa-truck-moving{--fa:"\f4df"}.fa-video-slash{--fa:"\f4e2"}.fa-wine-glass{--fa:"\f4e3"}.fa-user-astronaut{--fa:"\f4fb"}.fa-user-check{--fa:"\f4fc"}.fa-user-clock{--fa:"\f4fd"}.fa-user-cog,.fa-user-gear{--fa:"\f4fe"}.fa-user-edit,.fa-user-pen{--fa:"\f4ff"}.fa-user-friends,.fa-user-group{--fa:"\f500"}.fa-user-graduate{--fa:"\f501"}.fa-user-lock{--fa:"\f502"}.fa-user-minus{--fa:"\f503"}.fa-user-ninja{--fa:"\f504"}.fa-user-shield{--fa:"\f505"}.fa-user-alt-slash,.fa-user-large-slash,.fa-user-slash{--fa:"\f506"}.fa-user-tag{--fa:"\f507"}.fa-user-tie{--fa:"\f508"}.fa-users-cog,.fa-users-gear{--fa:"\f509"}.fa-balance-scale-left,.fa-scale-unbalanced{--fa:"\f515"}.fa-balance-scale-right,.fa-scale-unbalanced-flip{--fa:"\f516"}.fa-blender{--fa:"\f517"}.fa-book-open{--fa:"\f518"}.fa-broadcast-tower,.fa-tower-broadcast{--fa:"\f519"}.fa-broom{--fa:"\f51a"}.fa-blackboard,.fa-chalkboard{--fa:"\f51b"}.fa-chalkboard-teacher,.fa-chalkboard-user{--fa:"\f51c"}.fa-church{--fa:"\f51d"}.fa-coins{--fa:"\f51e"}.fa-compact-disc{--fa:"\f51f"}.fa-crow{--fa:"\f520"}.fa-crown{--fa:"\f521"}.fa-dice{--fa:"\f522"}.fa-dice-five{--fa:"\f523"}.fa-dice-four{--fa:"\f524"}.fa-dice-one{--fa:"\f525"}.fa-dice-six{--fa:"\f526"}.fa-dice-three{--fa:"\f527"}.fa-dice-two{--fa:"\f528"}.fa-divide{--fa:"\f529"}.fa-door-closed{--fa:"\f52a"}.fa-door-open{--fa:"\f52b"}.fa-feather{--fa:"\f52d"}.fa-frog{--fa:"\f52e"}.fa-gas-pump{--fa:"\f52f"}.fa-glasses{--fa:"\f530"}.fa-greater-than-equal{--fa:"\f532"}.fa-helicopter{--fa:"\f533"}.fa-infinity{--fa:"\f534"}.fa-kiwi-bird{--fa:"\f535"}.fa-less-than-equal{--fa:"\f537"}.fa-memory{--fa:"\f538"}.fa-microphone-alt-slash,.fa-microphone-lines-slash{--fa:"\f539"}.fa-money-bill-wave{--fa:"\f53a"}.fa-money-bill-1-wave,.fa-money-bill-wave-alt{--fa:"\f53b"}.fa-money-check{--fa:"\f53c"}.fa-money-check-alt,.fa-money-check-dollar{--fa:"\f53d"}.fa-not-equal{--fa:"\f53e"}.fa-palette{--fa:"\f53f"}.fa-parking,.fa-square-parking{--fa:"\f540"}.fa-diagram-project,.fa-project-diagram{--fa:"\f542"}.fa-receipt{--fa:"\f543"}.fa-robot{--fa:"\f544"}.fa-ruler{--fa:"\f545"}.fa-ruler-combined{--fa:"\f546"}.fa-ruler-horizontal{--fa:"\f547"}.fa-ruler-vertical{--fa:"\f548"}.fa-school{--fa:"\f549"}.fa-screwdriver{--fa:"\f54a"}.fa-shoe-prints{--fa:"\f54b"}.fa-skull{--fa:"\f54c"}.fa-ban-smoking,.fa-smoking-ban{--fa:"\f54d"}.fa-store{--fa:"\f54e"}.fa-shop,.fa-store-alt{--fa:"\f54f"}.fa-bars-staggered,.fa-reorder,.fa-stream{--fa:"\f550"}.fa-stroopwafel{--fa:"\f551"}.fa-toolbox{--fa:"\f552"}.fa-shirt,.fa-t-shirt,.fa-tshirt{--fa:"\f553"}.fa-person-walking,.fa-walking{--fa:"\f554"}.fa-wallet{--fa:"\f555"}.fa-angry,.fa-face-angry{--fa:"\f556"}.fa-archway{--fa:"\f557"}.fa-atlas,.fa-book-atlas{--fa:"\f558"}.fa-award{--fa:"\f559"}.fa-backspace,.fa-delete-left{--fa:"\f55a"}.fa-bezier-curve{--fa:"\f55b"}.fa-bong{--fa:"\f55c"}.fa-brush{--fa:"\f55d"}.fa-bus-alt,.fa-bus-simple{--fa:"\f55e"}.fa-cannabis{--fa:"\f55f"}.fa-check-double{--fa:"\f560"}.fa-cocktail,.fa-martini-glass-citrus{--fa:"\f561"}.fa-bell-concierge,.fa-concierge-bell{--fa:"\f562"}.fa-cookie{--fa:"\f563"}.fa-cookie-bite{--fa:"\f564"}.fa-crop-alt,.fa-crop-simple{--fa:"\f565"}.fa-digital-tachograph,.fa-tachograph-digital{--fa:"\f566"}.fa-dizzy,.fa-face-dizzy{--fa:"\f567"}.fa-compass-drafting,.fa-drafting-compass{--fa:"\f568"}.fa-drum{--fa:"\f569"}.fa-drum-steelpan{--fa:"\f56a"}.fa-feather-alt,.fa-feather-pointed{--fa:"\f56b"}.fa-file-contract{--fa:"\f56c"}.fa-file-arrow-down,.fa-file-download{--fa:"\f56d"}.fa-arrow-right-from-file,.fa-file-export{--fa:"\f56e"}.fa-arrow-right-to-file,.fa-file-import{--fa:"\f56f"}.fa-file-invoice{--fa:"\f570"}.fa-file-invoice-dollar{--fa:"\f571"}.fa-file-prescription{--fa:"\f572"}.fa-file-signature{--fa:"\f573"}.fa-file-arrow-up,.fa-file-upload{--fa:"\f574"}.fa-fill{--fa:"\f575"}.fa-fill-drip{--fa:"\f576"}.fa-fingerprint{--fa:"\f577"}.fa-fish{--fa:"\f578"}.fa-face-flushed,.fa-flushed{--fa:"\f579"}.fa-face-frown-open,.fa-frown-open{--fa:"\f57a"}.fa-glass-martini-alt,.fa-martini-glass{--fa:"\f57b"}.fa-earth-africa,.fa-globe-africa{--fa:"\f57c"}.fa-earth,.fa-earth-america,.fa-earth-americas,.fa-globe-americas{--fa:"\f57d"}.fa-earth-asia,.fa-globe-asia{--fa:"\f57e"}.fa-face-grimace,.fa-grimace{--fa:"\f57f"}.fa-face-grin,.fa-grin{--fa:"\f580"}.fa-face-grin-wide,.fa-grin-alt{--fa:"\f581"}.fa-face-grin-beam,.fa-grin-beam{--fa:"\f582"}.fa-face-grin-beam-sweat,.fa-grin-beam-sweat{--fa:"\f583"}.fa-face-grin-hearts,.fa-grin-hearts{--fa:"\f584"}.fa-face-grin-squint,.fa-grin-squint{--fa:"\f585"}.fa-face-grin-squint-tears,.fa-grin-squint-tears{--fa:"\f586"}.fa-face-grin-stars,.fa-grin-stars{--fa:"\f587"}.fa-face-grin-tears,.fa-grin-tears{--fa:"\f588"}.fa-face-grin-tongue,.fa-grin-tongue{--fa:"\f589"}.fa-face-grin-tongue-squint,.fa-grin-tongue-squint{--fa:"\f58a"}.fa-face-grin-tongue-wink,.fa-grin-tongue-wink{--fa:"\f58b"}.fa-face-grin-wink,.fa-grin-wink{--fa:"\f58c"}.fa-grid-horizontal,.fa-grip,.fa-grip-horizontal{--fa:"\f58d"}.fa-grid-vertical,.fa-grip-vertical{--fa:"\f58e"}.fa-headset{--fa:"\f590"}.fa-highlighter{--fa:"\f591"}.fa-hot-tub,.fa-hot-tub-person{--fa:"\f593"}.fa-hotel{--fa:"\f594"}.fa-joint{--fa:"\f595"}.fa-face-kiss,.fa-kiss{--fa:"\f596"}.fa-face-kiss-beam,.fa-kiss-beam{--fa:"\f597"}.fa-face-kiss-wink-heart,.fa-kiss-wink-heart{--fa:"\f598"}.fa-face-laugh,.fa-laugh{--fa:"\f599"}.fa-face-laugh-beam,.fa-laugh-beam{--fa:"\f59a"}.fa-face-laugh-squint,.fa-laugh-squint{--fa:"\f59b"}.fa-face-laugh-wink,.fa-laugh-wink{--fa:"\f59c"}.fa-cart-flatbed-suitcase,.fa-luggage-cart{--fa:"\f59d"}.fa-map-location,.fa-map-marked{--fa:"\f59f"}.fa-map-location-dot,.fa-map-marked-alt{--fa:"\f5a0"}.fa-marker{--fa:"\f5a1"}.fa-medal{--fa:"\f5a2"}.fa-face-meh-blank,.fa-meh-blank{--fa:"\f5a4"}.fa-face-rolling-eyes,.fa-meh-rolling-eyes{--fa:"\f5a5"}.fa-monument{--fa:"\f5a6"}.fa-mortar-pestle{--fa:"\f5a7"}.fa-paint-roller{--fa:"\f5aa"}.fa-passport{--fa:"\f5ab"}.fa-pen-fancy{--fa:"\f5ac"}.fa-pen-nib{--fa:"\f5ad"}.fa-pen-ruler,.fa-pencil-ruler{--fa:"\f5ae"}.fa-plane-arrival{--fa:"\f5af"}.fa-plane-departure{--fa:"\f5b0"}.fa-prescription{--fa:"\f5b1"}.fa-face-sad-cry,.fa-sad-cry{--fa:"\f5b3"}.fa-face-sad-tear,.fa-sad-tear{--fa:"\f5b4"}.fa-shuttle-van,.fa-van-shuttle{--fa:"\f5b6"}.fa-signature{--fa:"\f5b7"}.fa-face-smile-beam,.fa-smile-beam{--fa:"\f5b8"}.fa-solar-panel{--fa:"\f5ba"}.fa-spa{--fa:"\f5bb"}.fa-splotch{--fa:"\f5bc"}.fa-spray-can{--fa:"\f5bd"}.fa-stamp{--fa:"\f5bf"}.fa-star-half-alt,.fa-star-half-stroke{--fa:"\f5c0"}.fa-suitcase-rolling{--fa:"\f5c1"}.fa-face-surprise,.fa-surprise{--fa:"\f5c2"}.fa-swatchbook{--fa:"\f5c3"}.fa-person-swimming,.fa-swimmer{--fa:"\f5c4"}.fa-ladder-water,.fa-swimming-pool,.fa-water-ladder{--fa:"\f5c5"}.fa-droplet-slash,.fa-tint-slash{--fa:"\f5c7"}.fa-face-tired,.fa-tired{--fa:"\f5c8"}.fa-tooth{--fa:"\f5c9"}.fa-umbrella-beach{--fa:"\f5ca"}.fa-weight-hanging{--fa:"\f5cd"}.fa-wine-glass-alt,.fa-wine-glass-empty{--fa:"\f5ce"}.fa-air-freshener,.fa-spray-can-sparkles{--fa:"\f5d0"}.fa-apple-alt,.fa-apple-whole{--fa:"\f5d1"}.fa-atom{--fa:"\f5d2"}.fa-bone{--fa:"\f5d7"}.fa-book-open-reader,.fa-book-reader{--fa:"\f5da"}.fa-brain{--fa:"\f5dc"}.fa-car-alt,.fa-car-rear{--fa:"\f5de"}.fa-battery-car,.fa-car-battery{--fa:"\f5df"}.fa-car-burst,.fa-car-crash{--fa:"\f5e1"}.fa-car-side{--fa:"\f5e4"}.fa-charging-station{--fa:"\f5e7"}.fa-diamond-turn-right,.fa-directions{--fa:"\f5eb"}.fa-draw-polygon,.fa-vector-polygon{--fa:"\f5ee"}.fa-laptop-code{--fa:"\f5fc"}.fa-layer-group{--fa:"\f5fd"}.fa-location,.fa-location-crosshairs{--fa:"\f601"}.fa-lungs{--fa:"\f604"}.fa-microscope{--fa:"\f610"}.fa-oil-can{--fa:"\f613"}.fa-poop{--fa:"\f619"}.fa-shapes,.fa-triangle-circle-square{--fa:"\f61f"}.fa-star-of-life{--fa:"\f621"}.fa-dashboard,.fa-gauge,.fa-gauge-med,.fa-tachometer-alt-average{--fa:"\f624"}.fa-gauge-high,.fa-tachometer-alt,.fa-tachometer-alt-fast{--fa:"\f625"}.fa-gauge-simple,.fa-gauge-simple-med,.fa-tachometer-average{--fa:"\f629"}.fa-gauge-simple-high,.fa-tachometer,.fa-tachometer-fast{--fa:"\f62a"}.fa-teeth{--fa:"\f62e"}.fa-teeth-open{--fa:"\f62f"}.fa-masks-theater,.fa-theater-masks{--fa:"\f630"}.fa-traffic-light{--fa:"\f637"}.fa-truck-monster{--fa:"\f63b"}.fa-truck-pickup{--fa:"\f63c"}.fa-ad,.fa-rectangle-ad{--fa:"\f641"}.fa-ankh{--fa:"\f644"}.fa-bible,.fa-book-bible{--fa:"\f647"}.fa-briefcase-clock,.fa-business-time{--fa:"\f64a"}.fa-city{--fa:"\f64f"}.fa-comment-dollar{--fa:"\f651"}.fa-comments-dollar{--fa:"\f653"}.fa-cross{--fa:"\f654"}.fa-dharmachakra{--fa:"\f655"}.fa-envelope-open-text{--fa:"\f658"}.fa-folder-minus{--fa:"\f65d"}.fa-folder-plus{--fa:"\f65e"}.fa-filter-circle-dollar,.fa-funnel-dollar{--fa:"\f662"}.fa-gopuram{--fa:"\f664"}.fa-hamsa{--fa:"\f665"}.fa-bahai,.fa-haykal{--fa:"\f666"}.fa-jedi{--fa:"\f669"}.fa-book-journal-whills,.fa-journal-whills{--fa:"\f66a"}.fa-kaaba{--fa:"\f66b"}.fa-khanda{--fa:"\f66d"}.fa-landmark{--fa:"\f66f"}.fa-envelopes-bulk,.fa-mail-bulk{--fa:"\f674"}.fa-menorah{--fa:"\f676"}.fa-mosque{--fa:"\f678"}.fa-om{--fa:"\f679"}.fa-pastafarianism,.fa-spaghetti-monster-flying{--fa:"\f67b"}.fa-peace{--fa:"\f67c"}.fa-place-of-worship{--fa:"\f67f"}.fa-poll,.fa-square-poll-vertical{--fa:"\f681"}.fa-poll-h,.fa-square-poll-horizontal{--fa:"\f682"}.fa-person-praying,.fa-pray{--fa:"\f683"}.fa-hands-praying,.fa-praying-hands{--fa:"\f684"}.fa-book-quran,.fa-quran{--fa:"\f687"}.fa-magnifying-glass-dollar,.fa-search-dollar{--fa:"\f688"}.fa-magnifying-glass-location,.fa-search-location{--fa:"\f689"}.fa-socks{--fa:"\f696"}.fa-square-root-alt,.fa-square-root-variable{--fa:"\f698"}.fa-star-and-crescent{--fa:"\f699"}.fa-star-of-david{--fa:"\f69a"}.fa-synagogue{--fa:"\f69b"}.fa-scroll-torah,.fa-torah{--fa:"\f6a0"}.fa-torii-gate{--fa:"\f6a1"}.fa-vihara{--fa:"\f6a7"}.fa-volume-mute,.fa-volume-times,.fa-volume-xmark{--fa:"\f6a9"}.fa-yin-yang{--fa:"\f6ad"}.fa-blender-phone{--fa:"\f6b6"}.fa-book-dead,.fa-book-skull{--fa:"\f6b7"}.fa-campground{--fa:"\f6bb"}.fa-cat{--fa:"\f6be"}.fa-chair{--fa:"\f6c0"}.fa-cloud-moon{--fa:"\f6c3"}.fa-cloud-sun{--fa:"\f6c4"}.fa-cow{--fa:"\f6c8"}.fa-dice-d20{--fa:"\f6cf"}.fa-dice-d6{--fa:"\f6d1"}.fa-dog{--fa:"\f6d3"}.fa-dragon{--fa:"\f6d5"}.fa-drumstick-bite{--fa:"\f6d7"}.fa-dungeon{--fa:"\f6d9"}.fa-file-csv{--fa:"\f6dd"}.fa-fist-raised,.fa-hand-fist{--fa:"\f6de"}.fa-ghost{--fa:"\f6e2"}.fa-hammer{--fa:"\f6e3"}.fa-hanukiah{--fa:"\f6e6"}.fa-hat-wizard{--fa:"\f6e8"}.fa-hiking,.fa-person-hiking{--fa:"\f6ec"}.fa-hippo{--fa:"\f6ed"}.fa-horse{--fa:"\f6f0"}.fa-house-chimney-crack,.fa-house-damage{--fa:"\f6f1"}.fa-hryvnia,.fa-hryvnia-sign{--fa:"\f6f2"}.fa-mask{--fa:"\f6fa"}.fa-mountain{--fa:"\f6fc"}.fa-network-wired{--fa:"\f6ff"}.fa-otter{--fa:"\f700"}.fa-ring{--fa:"\f70b"}.fa-person-running,.fa-running{--fa:"\f70c"}.fa-scroll{--fa:"\f70e"}.fa-skull-crossbones{--fa:"\f714"}.fa-slash{--fa:"\f715"}.fa-spider{--fa:"\f717"}.fa-toilet-paper,.fa-toilet-paper-alt,.fa-toilet-paper-blank{--fa:"\f71e"}.fa-tractor{--fa:"\f722"}.fa-user-injured{--fa:"\f728"}.fa-vr-cardboard{--fa:"\f729"}.fa-wand-sparkles{--fa:"\f72b"}.fa-wind{--fa:"\f72e"}.fa-wine-bottle{--fa:"\f72f"}.fa-cloud-meatball{--fa:"\f73b"}.fa-cloud-moon-rain{--fa:"\f73c"}.fa-cloud-rain{--fa:"\f73d"}.fa-cloud-showers-heavy{--fa:"\f740"}.fa-cloud-sun-rain{--fa:"\f743"}.fa-democrat{--fa:"\f747"}.fa-flag-usa{--fa:"\f74d"}.fa-hurricane{--fa:"\f751"}.fa-landmark-alt,.fa-landmark-dome{--fa:"\f752"}.fa-meteor{--fa:"\f753"}.fa-person-booth{--fa:"\f756"}.fa-poo-bolt,.fa-poo-storm{--fa:"\f75a"}.fa-rainbow{--fa:"\f75b"}.fa-republican{--fa:"\f75e"}.fa-smog{--fa:"\f75f"}.fa-temperature-high{--fa:"\f769"}.fa-temperature-low{--fa:"\f76b"}.fa-cloud-bolt,.fa-thunderstorm{--fa:"\f76c"}.fa-tornado{--fa:"\f76f"}.fa-volcano{--fa:"\f770"}.fa-check-to-slot,.fa-vote-yea{--fa:"\f772"}.fa-water{--fa:"\f773"}.fa-baby{--fa:"\f77c"}.fa-baby-carriage,.fa-carriage-baby{--fa:"\f77d"}.fa-biohazard{--fa:"\f780"}.fa-blog{--fa:"\f781"}.fa-calendar-day{--fa:"\f783"}.fa-calendar-week{--fa:"\f784"}.fa-candy-cane{--fa:"\f786"}.fa-carrot{--fa:"\f787"}.fa-cash-register{--fa:"\f788"}.fa-compress-arrows-alt,.fa-minimize{--fa:"\f78c"}.fa-dumpster{--fa:"\f793"}.fa-dumpster-fire{--fa:"\f794"}.fa-ethernet{--fa:"\f796"}.fa-gifts{--fa:"\f79c"}.fa-champagne-glasses,.fa-glass-cheers{--fa:"\f79f"}.fa-glass-whiskey,.fa-whiskey-glass{--fa:"\f7a0"}.fa-earth-europe,.fa-globe-europe{--fa:"\f7a2"}.fa-grip-lines{--fa:"\f7a4"}.fa-grip-lines-vertical{--fa:"\f7a5"}.fa-guitar{--fa:"\f7a6"}.fa-heart-broken,.fa-heart-crack{--fa:"\f7a9"}.fa-holly-berry{--fa:"\f7aa"}.fa-horse-head{--fa:"\f7ab"}.fa-icicles{--fa:"\f7ad"}.fa-igloo{--fa:"\f7ae"}.fa-mitten{--fa:"\f7b5"}.fa-mug-hot{--fa:"\f7b6"}.fa-radiation{--fa:"\f7b9"}.fa-circle-radiation,.fa-radiation-alt{--fa:"\f7ba"}.fa-restroom{--fa:"\f7bd"}.fa-satellite{--fa:"\f7bf"}.fa-satellite-dish{--fa:"\f7c0"}.fa-sd-card{--fa:"\f7c2"}.fa-sim-card{--fa:"\f7c4"}.fa-person-skating,.fa-skating{--fa:"\f7c5"}.fa-person-skiing,.fa-skiing{--fa:"\f7c9"}.fa-person-skiing-nordic,.fa-skiing-nordic{--fa:"\f7ca"}.fa-sleigh{--fa:"\f7cc"}.fa-comment-sms,.fa-sms{--fa:"\f7cd"}.fa-person-snowboarding,.fa-snowboarding{--fa:"\f7ce"}.fa-snowman{--fa:"\f7d0"}.fa-snowplow{--fa:"\f7d2"}.fa-tenge,.fa-tenge-sign{--fa:"\f7d7"}.fa-toilet{--fa:"\f7d8"}.fa-screwdriver-wrench,.fa-tools{--fa:"\f7d9"}.fa-cable-car,.fa-tram{--fa:"\f7da"}.fa-fire-alt,.fa-fire-flame-curved{--fa:"\f7e4"}.fa-bacon{--fa:"\f7e5"}.fa-book-medical{--fa:"\f7e6"}.fa-bread-slice{--fa:"\f7ec"}.fa-cheese{--fa:"\f7ef"}.fa-clinic-medical,.fa-house-chimney-medical{--fa:"\f7f2"}.fa-clipboard-user{--fa:"\f7f3"}.fa-comment-medical{--fa:"\f7f5"}.fa-crutch{--fa:"\f7f7"}.fa-disease{--fa:"\f7fa"}.fa-egg{--fa:"\f7fb"}.fa-folder-tree{--fa:"\f802"}.fa-burger,.fa-hamburger{--fa:"\f805"}.fa-hand-middle-finger{--fa:"\f806"}.fa-hard-hat,.fa-hat-hard,.fa-helmet-safety{--fa:"\f807"}.fa-hospital-user{--fa:"\f80d"}.fa-hotdog{--fa:"\f80f"}.fa-ice-cream{--fa:"\f810"}.fa-laptop-medical{--fa:"\f812"}.fa-pager{--fa:"\f815"}.fa-pepper-hot{--fa:"\f816"}.fa-pizza-slice{--fa:"\f818"}.fa-sack-dollar{--fa:"\f81d"}.fa-book-tanakh,.fa-tanakh{--fa:"\f827"}.fa-bars-progress,.fa-tasks-alt{--fa:"\f828"}.fa-trash-arrow-up,.fa-trash-restore{--fa:"\f829"}.fa-trash-can-arrow-up,.fa-trash-restore-alt{--fa:"\f82a"}.fa-user-nurse{--fa:"\f82f"}.fa-wave-square{--fa:"\f83e"}.fa-biking,.fa-person-biking{--fa:"\f84a"}.fa-border-all{--fa:"\f84c"}.fa-border-none{--fa:"\f850"}.fa-border-style,.fa-border-top-left{--fa:"\f853"}.fa-digging,.fa-person-digging{--fa:"\f85e"}.fa-fan{--fa:"\f863"}.fa-heart-music-camera-bolt,.fa-icons{--fa:"\f86d"}.fa-phone-alt,.fa-phone-flip{--fa:"\f879"}.fa-phone-square-alt,.fa-square-phone-flip{--fa:"\f87b"}.fa-photo-film,.fa-photo-video{--fa:"\f87c"}.fa-remove-format,.fa-text-slash{--fa:"\f87d"}.fa-arrow-down-z-a,.fa-sort-alpha-desc,.fa-sort-alpha-down-alt{--fa:"\f881"}.fa-arrow-up-z-a,.fa-sort-alpha-up-alt{--fa:"\f882"}.fa-arrow-down-short-wide,.fa-sort-amount-desc,.fa-sort-amount-down-alt{--fa:"\f884"}.fa-arrow-up-short-wide,.fa-sort-amount-up-alt{--fa:"\f885"}.fa-arrow-down-9-1,.fa-sort-numeric-desc,.fa-sort-numeric-down-alt{--fa:"\f886"}.fa-arrow-up-9-1,.fa-sort-numeric-up-alt{--fa:"\f887"}.fa-spell-check{--fa:"\f891"}.fa-voicemail{--fa:"\f897"}.fa-hat-cowboy{--fa:"\f8c0"}.fa-hat-cowboy-side{--fa:"\f8c1"}.fa-computer-mouse,.fa-mouse{--fa:"\f8cc"}.fa-radio{--fa:"\f8d7"}.fa-record-vinyl{--fa:"\f8d9"}.fa-walkie-talkie{--fa:"\f8ef"}.fa-caravan{--fa:"\f8ff"} +/* solid.min.css */ +:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2)}.fas{--fa-style:900}.fa-classic,.fas{--fa-family:var(--fa-family-classic)}.fa-solid{--fa-style:900} +/* brands.min.css */ +:host,:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}@font-face{font-family:"Font Awesome 7 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2)}.fa-brands,.fa-classic.fa-brands,.fab{--fa-family:var(--fa-family-brands);--fa-style:400}.fa-firefox-browser{--fa:"\e007"}.fa-ideal{--fa:"\e013"}.fa-microblog{--fa:"\e01a"}.fa-pied-piper-square,.fa-square-pied-piper{--fa:"\e01e"}.fa-unity{--fa:"\e049"}.fa-dailymotion{--fa:"\e052"}.fa-instagram-square,.fa-square-instagram{--fa:"\e055"}.fa-mixer{--fa:"\e056"}.fa-shopify{--fa:"\e057"}.fa-deezer{--fa:"\e077"}.fa-edge-legacy{--fa:"\e078"}.fa-google-pay{--fa:"\e079"}.fa-rust{--fa:"\e07a"}.fa-tiktok{--fa:"\e07b"}.fa-unsplash{--fa:"\e07c"}.fa-cloudflare{--fa:"\e07d"}.fa-guilded{--fa:"\e07e"}.fa-hive{--fa:"\e07f"}.fa-42-group,.fa-innosoft{--fa:"\e080"}.fa-instalod{--fa:"\e081"}.fa-octopus-deploy{--fa:"\e082"}.fa-perbyte{--fa:"\e083"}.fa-uncharted{--fa:"\e084"}.fa-watchman-monitoring{--fa:"\e087"}.fa-wodu{--fa:"\e088"}.fa-wirsindhandwerk,.fa-wsh{--fa:"\e2d0"}.fa-bots{--fa:"\e340"}.fa-cmplid{--fa:"\e360"}.fa-bilibili{--fa:"\e3d9"}.fa-golang{--fa:"\e40f"}.fa-pix{--fa:"\e43a"}.fa-sitrox{--fa:"\e44a"}.fa-hashnode{--fa:"\e499"}.fa-meta{--fa:"\e49b"}.fa-padlet{--fa:"\e4a0"}.fa-nfc-directional{--fa:"\e530"}.fa-nfc-symbol{--fa:"\e531"}.fa-screenpal{--fa:"\e570"}.fa-space-awesome{--fa:"\e5ac"}.fa-square-font-awesome{--fa:"\e5ad"}.fa-gitlab-square,.fa-square-gitlab{--fa:"\e5ae"}.fa-odysee{--fa:"\e5c6"}.fa-stubber{--fa:"\e5c7"}.fa-debian{--fa:"\e60b"}.fa-shoelace{--fa:"\e60c"}.fa-threads{--fa:"\e618"}.fa-square-threads{--fa:"\e619"}.fa-square-x-twitter{--fa:"\e61a"}.fa-x-twitter{--fa:"\e61b"}.fa-opensuse{--fa:"\e62b"}.fa-letterboxd{--fa:"\e62d"}.fa-square-letterboxd{--fa:"\e62e"}.fa-mintbit{--fa:"\e62f"}.fa-google-scholar{--fa:"\e63b"}.fa-brave{--fa:"\e63c"}.fa-brave-reverse{--fa:"\e63d"}.fa-pixiv{--fa:"\e640"}.fa-upwork{--fa:"\e641"}.fa-webflow{--fa:"\e65c"}.fa-signal-messenger{--fa:"\e663"}.fa-bluesky{--fa:"\e671"}.fa-jxl{--fa:"\e67b"}.fa-square-upwork{--fa:"\e67c"}.fa-web-awesome{--fa:"\e682"}.fa-square-web-awesome{--fa:"\e683"}.fa-square-web-awesome-stroke{--fa:"\e684"}.fa-dart-lang{--fa:"\e693"}.fa-flutter{--fa:"\e694"}.fa-files-pinwheel{--fa:"\e69f"}.fa-css{--fa:"\e6a2"}.fa-square-bluesky{--fa:"\e6a3"}.fa-openai{--fa:"\e7cf"}.fa-square-linkedin{--fa:"\e7d0"}.fa-cash-app{--fa:"\e7d4"}.fa-disqus{--fa:"\e7d5"}.fa-11ty,.fa-eleventy{--fa:"\e7d6"}.fa-kakao-talk{--fa:"\e7d7"}.fa-linktree{--fa:"\e7d8"}.fa-notion{--fa:"\e7d9"}.fa-pandora{--fa:"\e7da"}.fa-pixelfed{--fa:"\e7db"}.fa-tidal{--fa:"\e7dc"}.fa-vsco{--fa:"\e7dd"}.fa-w3c{--fa:"\e7de"}.fa-lumon{--fa:"\e7e2"}.fa-lumon-drop{--fa:"\e7e3"}.fa-square-figma{--fa:"\e7e4"}.fa-tex{--fa:"\e7ff"}.fa-duolingo{--fa:"\e812"}.fa-square-twitter,.fa-twitter-square{--fa:"\f081"}.fa-facebook-square,.fa-square-facebook{--fa:"\f082"}.fa-linkedin{--fa:"\f08c"}.fa-github-square,.fa-square-github{--fa:"\f092"}.fa-twitter{--fa:"\f099"}.fa-facebook{--fa:"\f09a"}.fa-github{--fa:"\f09b"}.fa-pinterest{--fa:"\f0d2"}.fa-pinterest-square,.fa-square-pinterest{--fa:"\f0d3"}.fa-google-plus-square,.fa-square-google-plus{--fa:"\f0d4"}.fa-google-plus-g{--fa:"\f0d5"}.fa-linkedin-in{--fa:"\f0e1"}.fa-github-alt{--fa:"\f113"}.fa-maxcdn{--fa:"\f136"}.fa-html5{--fa:"\f13b"}.fa-css3{--fa:"\f13c"}.fa-btc{--fa:"\f15a"}.fa-youtube{--fa:"\f167"}.fa-xing{--fa:"\f168"}.fa-square-xing,.fa-xing-square{--fa:"\f169"}.fa-dropbox{--fa:"\f16b"}.fa-stack-overflow{--fa:"\f16c"}.fa-instagram{--fa:"\f16d"}.fa-flickr{--fa:"\f16e"}.fa-adn{--fa:"\f170"}.fa-bitbucket{--fa:"\f171"}.fa-tumblr{--fa:"\f173"}.fa-square-tumblr,.fa-tumblr-square{--fa:"\f174"}.fa-apple{--fa:"\f179"}.fa-windows{--fa:"\f17a"}.fa-android{--fa:"\f17b"}.fa-linux{--fa:"\f17c"}.fa-dribbble{--fa:"\f17d"}.fa-skype{--fa:"\f17e"}.fa-foursquare{--fa:"\f180"}.fa-trello{--fa:"\f181"}.fa-gratipay{--fa:"\f184"}.fa-vk{--fa:"\f189"}.fa-weibo{--fa:"\f18a"}.fa-renren{--fa:"\f18b"}.fa-pagelines{--fa:"\f18c"}.fa-stack-exchange{--fa:"\f18d"}.fa-square-vimeo,.fa-vimeo-square{--fa:"\f194"}.fa-slack,.fa-slack-hash{--fa:"\f198"}.fa-wordpress{--fa:"\f19a"}.fa-openid{--fa:"\f19b"}.fa-yahoo{--fa:"\f19e"}.fa-google{--fa:"\f1a0"}.fa-reddit{--fa:"\f1a1"}.fa-reddit-square,.fa-square-reddit{--fa:"\f1a2"}.fa-stumbleupon-circle{--fa:"\f1a3"}.fa-stumbleupon{--fa:"\f1a4"}.fa-delicious{--fa:"\f1a5"}.fa-digg{--fa:"\f1a6"}.fa-pied-piper-pp{--fa:"\f1a7"}.fa-pied-piper-alt{--fa:"\f1a8"}.fa-drupal{--fa:"\f1a9"}.fa-joomla{--fa:"\f1aa"}.fa-behance{--fa:"\f1b4"}.fa-behance-square,.fa-square-behance{--fa:"\f1b5"}.fa-steam{--fa:"\f1b6"}.fa-square-steam,.fa-steam-square{--fa:"\f1b7"}.fa-spotify{--fa:"\f1bc"}.fa-deviantart{--fa:"\f1bd"}.fa-soundcloud{--fa:"\f1be"}.fa-vine{--fa:"\f1ca"}.fa-codepen{--fa:"\f1cb"}.fa-jsfiddle{--fa:"\f1cc"}.fa-rebel{--fa:"\f1d0"}.fa-empire{--fa:"\f1d1"}.fa-git-square,.fa-square-git{--fa:"\f1d2"}.fa-git{--fa:"\f1d3"}.fa-hacker-news{--fa:"\f1d4"}.fa-tencent-weibo{--fa:"\f1d5"}.fa-qq{--fa:"\f1d6"}.fa-weixin{--fa:"\f1d7"}.fa-slideshare{--fa:"\f1e7"}.fa-twitch{--fa:"\f1e8"}.fa-yelp{--fa:"\f1e9"}.fa-paypal{--fa:"\f1ed"}.fa-google-wallet{--fa:"\f1ee"}.fa-cc-visa{--fa:"\f1f0"}.fa-cc-mastercard{--fa:"\f1f1"}.fa-cc-discover{--fa:"\f1f2"}.fa-cc-amex{--fa:"\f1f3"}.fa-cc-paypal{--fa:"\f1f4"}.fa-cc-stripe{--fa:"\f1f5"}.fa-lastfm{--fa:"\f202"}.fa-lastfm-square,.fa-square-lastfm{--fa:"\f203"}.fa-ioxhost{--fa:"\f208"}.fa-angellist{--fa:"\f209"}.fa-buysellads{--fa:"\f20d"}.fa-connectdevelop{--fa:"\f20e"}.fa-dashcube{--fa:"\f210"}.fa-forumbee{--fa:"\f211"}.fa-leanpub{--fa:"\f212"}.fa-sellsy{--fa:"\f213"}.fa-shirtsinbulk{--fa:"\f214"}.fa-simplybuilt{--fa:"\f215"}.fa-skyatlas{--fa:"\f216"}.fa-pinterest-p{--fa:"\f231"}.fa-whatsapp{--fa:"\f232"}.fa-viacoin{--fa:"\f237"}.fa-medium,.fa-medium-m{--fa:"\f23a"}.fa-y-combinator{--fa:"\f23b"}.fa-optin-monster{--fa:"\f23c"}.fa-opencart{--fa:"\f23d"}.fa-expeditedssl{--fa:"\f23e"}.fa-cc-jcb{--fa:"\f24b"}.fa-cc-diners-club{--fa:"\f24c"}.fa-creative-commons{--fa:"\f25e"}.fa-gg{--fa:"\f260"}.fa-gg-circle{--fa:"\f261"}.fa-odnoklassniki{--fa:"\f263"}.fa-odnoklassniki-square,.fa-square-odnoklassniki{--fa:"\f264"}.fa-get-pocket{--fa:"\f265"}.fa-wikipedia-w{--fa:"\f266"}.fa-safari{--fa:"\f267"}.fa-chrome{--fa:"\f268"}.fa-firefox{--fa:"\f269"}.fa-opera{--fa:"\f26a"}.fa-internet-explorer{--fa:"\f26b"}.fa-contao{--fa:"\f26d"}.fa-500px{--fa:"\f26e"}.fa-amazon{--fa:"\f270"}.fa-houzz{--fa:"\f27c"}.fa-vimeo-v{--fa:"\f27d"}.fa-black-tie{--fa:"\f27e"}.fa-fonticons{--fa:"\f280"}.fa-reddit-alien{--fa:"\f281"}.fa-edge{--fa:"\f282"}.fa-codiepie{--fa:"\f284"}.fa-modx{--fa:"\f285"}.fa-fort-awesome{--fa:"\f286"}.fa-usb{--fa:"\f287"}.fa-product-hunt{--fa:"\f288"}.fa-mixcloud{--fa:"\f289"}.fa-scribd{--fa:"\f28a"}.fa-bluetooth{--fa:"\f293"}.fa-bluetooth-b{--fa:"\f294"}.fa-gitlab{--fa:"\f296"}.fa-wpbeginner{--fa:"\f297"}.fa-wpforms{--fa:"\f298"}.fa-envira{--fa:"\f299"}.fa-glide{--fa:"\f2a5"}.fa-glide-g{--fa:"\f2a6"}.fa-viadeo{--fa:"\f2a9"}.fa-square-viadeo,.fa-viadeo-square{--fa:"\f2aa"}.fa-snapchat,.fa-snapchat-ghost{--fa:"\f2ab"}.fa-snapchat-square,.fa-square-snapchat{--fa:"\f2ad"}.fa-pied-piper{--fa:"\f2ae"}.fa-first-order{--fa:"\f2b0"}.fa-yoast{--fa:"\f2b1"}.fa-themeisle{--fa:"\f2b2"}.fa-google-plus{--fa:"\f2b3"}.fa-font-awesome,.fa-font-awesome-flag,.fa-font-awesome-logo-full{--fa:"\f2b4"}.fa-linode{--fa:"\f2b8"}.fa-quora{--fa:"\f2c4"}.fa-free-code-camp{--fa:"\f2c5"}.fa-telegram,.fa-telegram-plane{--fa:"\f2c6"}.fa-bandcamp{--fa:"\f2d5"}.fa-grav{--fa:"\f2d6"}.fa-etsy{--fa:"\f2d7"}.fa-imdb{--fa:"\f2d8"}.fa-ravelry{--fa:"\f2d9"}.fa-sellcast{--fa:"\f2da"}.fa-superpowers{--fa:"\f2dd"}.fa-wpexplorer{--fa:"\f2de"}.fa-meetup{--fa:"\f2e0"}.fa-font-awesome-alt,.fa-square-font-awesome-stroke{--fa:"\f35c"}.fa-accessible-icon{--fa:"\f368"}.fa-accusoft{--fa:"\f369"}.fa-adversal{--fa:"\f36a"}.fa-affiliatetheme{--fa:"\f36b"}.fa-algolia{--fa:"\f36c"}.fa-amilia{--fa:"\f36d"}.fa-angrycreative{--fa:"\f36e"}.fa-app-store{--fa:"\f36f"}.fa-app-store-ios{--fa:"\f370"}.fa-apper{--fa:"\f371"}.fa-asymmetrik{--fa:"\f372"}.fa-audible{--fa:"\f373"}.fa-avianex{--fa:"\f374"}.fa-aws{--fa:"\f375"}.fa-bimobject{--fa:"\f378"}.fa-bitcoin{--fa:"\f379"}.fa-bity{--fa:"\f37a"}.fa-blackberry{--fa:"\f37b"}.fa-blogger{--fa:"\f37c"}.fa-blogger-b{--fa:"\f37d"}.fa-buromobelexperte{--fa:"\f37f"}.fa-centercode{--fa:"\f380"}.fa-cloudscale{--fa:"\f383"}.fa-cloudsmith{--fa:"\f384"}.fa-cloudversify{--fa:"\f385"}.fa-cpanel{--fa:"\f388"}.fa-css3-alt{--fa:"\f38b"}.fa-cuttlefish{--fa:"\f38c"}.fa-d-and-d{--fa:"\f38d"}.fa-deploydog{--fa:"\f38e"}.fa-deskpro{--fa:"\f38f"}.fa-digital-ocean{--fa:"\f391"}.fa-discord{--fa:"\f392"}.fa-discourse{--fa:"\f393"}.fa-dochub{--fa:"\f394"}.fa-docker{--fa:"\f395"}.fa-draft2digital{--fa:"\f396"}.fa-dribbble-square,.fa-square-dribbble{--fa:"\f397"}.fa-dyalog{--fa:"\f399"}.fa-earlybirds{--fa:"\f39a"}.fa-erlang{--fa:"\f39d"}.fa-facebook-f{--fa:"\f39e"}.fa-facebook-messenger{--fa:"\f39f"}.fa-firstdraft{--fa:"\f3a1"}.fa-fonticons-fi{--fa:"\f3a2"}.fa-fort-awesome-alt{--fa:"\f3a3"}.fa-freebsd{--fa:"\f3a4"}.fa-gitkraken{--fa:"\f3a6"}.fa-gofore{--fa:"\f3a7"}.fa-goodreads{--fa:"\f3a8"}.fa-goodreads-g{--fa:"\f3a9"}.fa-google-drive{--fa:"\f3aa"}.fa-google-play{--fa:"\f3ab"}.fa-gripfire{--fa:"\f3ac"}.fa-grunt{--fa:"\f3ad"}.fa-gulp{--fa:"\f3ae"}.fa-hacker-news-square,.fa-square-hacker-news{--fa:"\f3af"}.fa-hire-a-helper{--fa:"\f3b0"}.fa-hotjar{--fa:"\f3b1"}.fa-hubspot{--fa:"\f3b2"}.fa-itunes{--fa:"\f3b4"}.fa-itunes-note{--fa:"\f3b5"}.fa-jenkins{--fa:"\f3b6"}.fa-joget{--fa:"\f3b7"}.fa-js{--fa:"\f3b8"}.fa-js-square,.fa-square-js{--fa:"\f3b9"}.fa-keycdn{--fa:"\f3ba"}.fa-kickstarter,.fa-square-kickstarter{--fa:"\f3bb"}.fa-kickstarter-k{--fa:"\f3bc"}.fa-laravel{--fa:"\f3bd"}.fa-line{--fa:"\f3c0"}.fa-lyft{--fa:"\f3c3"}.fa-magento{--fa:"\f3c4"}.fa-medapps{--fa:"\f3c6"}.fa-medrt{--fa:"\f3c8"}.fa-microsoft{--fa:"\f3ca"}.fa-mix{--fa:"\f3cb"}.fa-mizuni{--fa:"\f3cc"}.fa-monero{--fa:"\f3d0"}.fa-napster{--fa:"\f3d2"}.fa-node-js{--fa:"\f3d3"}.fa-npm{--fa:"\f3d4"}.fa-ns8{--fa:"\f3d5"}.fa-nutritionix{--fa:"\f3d6"}.fa-page4{--fa:"\f3d7"}.fa-palfed{--fa:"\f3d8"}.fa-patreon{--fa:"\f3d9"}.fa-periscope{--fa:"\f3da"}.fa-phabricator{--fa:"\f3db"}.fa-phoenix-framework{--fa:"\f3dc"}.fa-playstation{--fa:"\f3df"}.fa-pushed{--fa:"\f3e1"}.fa-python{--fa:"\f3e2"}.fa-red-river{--fa:"\f3e3"}.fa-rendact,.fa-wpressr{--fa:"\f3e4"}.fa-replyd{--fa:"\f3e6"}.fa-resolving{--fa:"\f3e7"}.fa-rocketchat{--fa:"\f3e8"}.fa-rockrms{--fa:"\f3e9"}.fa-schlix{--fa:"\f3ea"}.fa-searchengin{--fa:"\f3eb"}.fa-servicestack{--fa:"\f3ec"}.fa-sistrix{--fa:"\f3ee"}.fa-speakap{--fa:"\f3f3"}.fa-staylinked{--fa:"\f3f5"}.fa-steam-symbol{--fa:"\f3f6"}.fa-sticker-mule{--fa:"\f3f7"}.fa-studiovinari{--fa:"\f3f8"}.fa-supple{--fa:"\f3f9"}.fa-uber{--fa:"\f402"}.fa-uikit{--fa:"\f403"}.fa-uniregistry{--fa:"\f404"}.fa-untappd{--fa:"\f405"}.fa-ussunnah{--fa:"\f407"}.fa-vaadin{--fa:"\f408"}.fa-viber{--fa:"\f409"}.fa-vimeo{--fa:"\f40a"}.fa-vnv{--fa:"\f40b"}.fa-square-whatsapp,.fa-whatsapp-square{--fa:"\f40c"}.fa-whmcs{--fa:"\f40d"}.fa-wordpress-simple{--fa:"\f411"}.fa-xbox{--fa:"\f412"}.fa-yandex{--fa:"\f413"}.fa-yandex-international{--fa:"\f414"}.fa-apple-pay{--fa:"\f415"}.fa-cc-apple-pay{--fa:"\f416"}.fa-fly{--fa:"\f417"}.fa-node{--fa:"\f419"}.fa-osi{--fa:"\f41a"}.fa-react{--fa:"\f41b"}.fa-autoprefixer{--fa:"\f41c"}.fa-less{--fa:"\f41d"}.fa-sass{--fa:"\f41e"}.fa-vuejs{--fa:"\f41f"}.fa-angular{--fa:"\f420"}.fa-aviato{--fa:"\f421"}.fa-ember{--fa:"\f423"}.fa-gitter{--fa:"\f426"}.fa-hooli{--fa:"\f427"}.fa-strava{--fa:"\f428"}.fa-stripe{--fa:"\f429"}.fa-stripe-s{--fa:"\f42a"}.fa-typo3{--fa:"\f42b"}.fa-amazon-pay{--fa:"\f42c"}.fa-cc-amazon-pay{--fa:"\f42d"}.fa-ethereum{--fa:"\f42e"}.fa-korvue{--fa:"\f42f"}.fa-elementor{--fa:"\f430"}.fa-square-youtube,.fa-youtube-square{--fa:"\f431"}.fa-flipboard{--fa:"\f44d"}.fa-hips{--fa:"\f452"}.fa-php{--fa:"\f457"}.fa-quinscape{--fa:"\f459"}.fa-readme{--fa:"\f4d5"}.fa-java{--fa:"\f4e4"}.fa-pied-piper-hat{--fa:"\f4e5"}.fa-creative-commons-by{--fa:"\f4e7"}.fa-creative-commons-nc{--fa:"\f4e8"}.fa-creative-commons-nc-eu{--fa:"\f4e9"}.fa-creative-commons-nc-jp{--fa:"\f4ea"}.fa-creative-commons-nd{--fa:"\f4eb"}.fa-creative-commons-pd{--fa:"\f4ec"}.fa-creative-commons-pd-alt{--fa:"\f4ed"}.fa-creative-commons-remix{--fa:"\f4ee"}.fa-creative-commons-sa{--fa:"\f4ef"}.fa-creative-commons-sampling{--fa:"\f4f0"}.fa-creative-commons-sampling-plus{--fa:"\f4f1"}.fa-creative-commons-share{--fa:"\f4f2"}.fa-creative-commons-zero{--fa:"\f4f3"}.fa-ebay{--fa:"\f4f4"}.fa-keybase{--fa:"\f4f5"}.fa-mastodon{--fa:"\f4f6"}.fa-r-project{--fa:"\f4f7"}.fa-researchgate{--fa:"\f4f8"}.fa-teamspeak{--fa:"\f4f9"}.fa-first-order-alt{--fa:"\f50a"}.fa-fulcrum{--fa:"\f50b"}.fa-galactic-republic{--fa:"\f50c"}.fa-galactic-senate{--fa:"\f50d"}.fa-jedi-order{--fa:"\f50e"}.fa-mandalorian{--fa:"\f50f"}.fa-old-republic{--fa:"\f510"}.fa-phoenix-squadron{--fa:"\f511"}.fa-sith{--fa:"\f512"}.fa-trade-federation{--fa:"\f513"}.fa-wolf-pack-battalion{--fa:"\f514"}.fa-hornbill{--fa:"\f592"}.fa-mailchimp{--fa:"\f59e"}.fa-megaport{--fa:"\f5a3"}.fa-nimblr{--fa:"\f5a8"}.fa-rev{--fa:"\f5b2"}.fa-shopware{--fa:"\f5b5"}.fa-squarespace{--fa:"\f5be"}.fa-themeco{--fa:"\f5c6"}.fa-weebly{--fa:"\f5cc"}.fa-wix{--fa:"\f5cf"}.fa-ello{--fa:"\f5f1"}.fa-hackerrank{--fa:"\f5f7"}.fa-kaggle{--fa:"\f5fa"}.fa-markdown{--fa:"\f60f"}.fa-neos{--fa:"\f612"}.fa-zhihu{--fa:"\f63f"}.fa-alipay{--fa:"\f642"}.fa-the-red-yeti{--fa:"\f69d"}.fa-critical-role{--fa:"\f6c9"}.fa-d-and-d-beyond{--fa:"\f6ca"}.fa-dev{--fa:"\f6cc"}.fa-fantasy-flight-games{--fa:"\f6dc"}.fa-wizards-of-the-coast{--fa:"\f730"}.fa-think-peaks{--fa:"\f731"}.fa-reacteurope{--fa:"\f75d"}.fa-artstation{--fa:"\f77a"}.fa-atlassian{--fa:"\f77b"}.fa-canadian-maple-leaf{--fa:"\f785"}.fa-centos{--fa:"\f789"}.fa-confluence{--fa:"\f78d"}.fa-dhl{--fa:"\f790"}.fa-diaspora{--fa:"\f791"}.fa-fedex{--fa:"\f797"}.fa-fedora{--fa:"\f798"}.fa-figma{--fa:"\f799"}.fa-intercom{--fa:"\f7af"}.fa-invision{--fa:"\f7b0"}.fa-jira{--fa:"\f7b1"}.fa-mendeley{--fa:"\f7b3"}.fa-raspberry-pi{--fa:"\f7bb"}.fa-redhat{--fa:"\f7bc"}.fa-sketch{--fa:"\f7c6"}.fa-sourcetree{--fa:"\f7d3"}.fa-suse{--fa:"\f7d6"}.fa-ubuntu{--fa:"\f7df"}.fa-ups{--fa:"\f7e0"}.fa-usps{--fa:"\f7e1"}.fa-yarn{--fa:"\f7e3"}.fa-airbnb{--fa:"\f834"}.fa-battle-net{--fa:"\f835"}.fa-bootstrap{--fa:"\f836"}.fa-buffer{--fa:"\f837"}.fa-chromecast{--fa:"\f838"}.fa-evernote{--fa:"\f839"}.fa-itch-io{--fa:"\f83a"}.fa-salesforce{--fa:"\f83b"}.fa-speaker-deck{--fa:"\f83c"}.fa-symfony{--fa:"\f83d"}.fa-waze{--fa:"\f83f"}.fa-yammer{--fa:"\f840"}.fa-git-alt{--fa:"\f841"}.fa-stackpath{--fa:"\f842"}.fa-cotton-bureau{--fa:"\f89e"}.fa-buy-n-large{--fa:"\f8a6"}.fa-mdb{--fa:"\f8ca"}.fa-orcid{--fa:"\f8d2"}.fa-swift{--fa:"\f8e1"}.fa-umbraco{--fa:"\f8e8"} \ No newline at end of file diff --git a/web/public/vendor/fontawesome/webfonts/fa-brands-400.woff2 b/web/public/vendor/fontawesome/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d0b8f69e89422748a5374c22e06bd122fded9231 GIT binary patch literal 101224 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 UoXQ~{PVi#Rf4#j20|Nj60P(lx`2YX_ literal 0 HcmV?d00001 diff --git a/web/public/vendor/fontawesome/webfonts/fa-solid-900.woff2 b/web/public/vendor/fontawesome/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c20c7f4feb4e9ff727e4e675b167fa4fc4400d81 GIT binary patch literal 113152 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

;chMGNtQX7BwzxTo9ZPoT_>&Uj+b8J` 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

{})IQs7PWypp>^u_v9 z*x}57xJw65ZWm)lz~m(Wa8}6jzw$uwC1dT2lz*N^M(+CitiupOx3Dz~&Dr@usd;A% zlWLAUrvt34q_L;uWf{HdJ6)w`UZEu7g@a8cJ(XwJ%gR| zyORyy%qdfP|>!T^^mP4WZ{3E*CG zedKw*Z&}8%T+^E7SvZ$z4L+2c&&7HI4&@m-{8Mc1lNld7jtUuimKRZy9+r{Lrx^}!WzwQX{>g_fOkS@BofB1eT*FmTLME23@ zq@x(52d5%-;@+>Gdq$@ibhvSt5}pyOiMq}sbp?N`9}J4}94(4h`ej0Rkf3(YRmtA^ z)%?s);w%qGZ3HN}GyGw0bv$26&QYV#3_5HR z;q-~6cfgSbIJd&<45?E%HAbflP^I8X59c{La+tzl*+mt$sd$5zE8WE`x;PS8E{`vW zRpmyPTwcSfBY1rl%u|T*Xlx9HkH}l<;v3fUWT;usNjY|W$BPQdPLHUQPeC|NKd_Tp zCVItc0yp<)J!2F7QvO;_>Jn>lM}gHVBLLOw>P+9I}z6D;zoOPx9hOZq+&NEVYD^Wzw>IQKEq%= zue2gL8UjA4Z*a9PgHs1uTd?P{E4~4y%vE~=P%`^4D1I0}O?TqZ!f!7AKox~AT?suo zaZUZQ@`W#e5C~s>q!0hW#Wce=Zg$H9<64^e8#>cq8Fh}>nu8Ryc5)a}+aL(!y8U_r zauC-jIEFp%E+MWXf5KcQSzCaaqDdlNyZ(~L#aE-gJfA$!ddipC~SPS;HQjX_=wzgF05U>tg9aZ>8Guyz^z)$whlIjHnA}qN~MKJ4h-Dg7Ny8R118vmy%Pv%Mq(+D z8^%BC*?qHH9`G&c9}VrwnRn9*)(II4D13%>`$sOx>cX3m5`6iUK~UmxFzpJrUyZ>tZ3jHY zOy${Y-ei#+Yc1^Im-dd3&e-~#3%-<*L7%2T{!m({C0Sc5vAkyILh+A&!)oW&;LRV{ z_~eN$stVqE0AA~;i{pGl745n97RLppDUwvF zH0i!nZ*S4Bt-fJj&yZ$?gSrgz?BT;a4oaX+%?c3x)kLRK9saXviFjvRVZncYaQ zdGaLzNWZ!(y<4xe?(%5Yx%py~v0WtJ$|9pXY~6%H2_@=ns1ftG(xwiQ@8HX1@n0Mf zo+dIu7DpGDbUGCk-O-_Qk}O=GVrKmH+Jy=EdAz#U=XZVWsT9kjM0W}c8Qlq)KxO6p z!a#333vO0;diRwBUgu8>)|5DjL|6;h`;ScOD4>2&L8!P+9y(D#Gg%0DJ!II7O(Spz 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 literal 0 HcmV?d00001 diff --git a/web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-700.woff2 b/web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-700.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..dcfb1404a4ca2dcc65ce593393d9530887b11a0a GIT binary patch literal 39008 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

!@U|3h^UzHILE+&&7pBcMNz(cG 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 dSEN(8_T+ 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 Yfv`ZM(XrvLx| literal 0 HcmV?d00001 diff --git a/web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-regular.woff2 b/web/public/vendor/fonts/jetbrains-mono-v24-cyrillic_cyrillic-ext_greek_latin_latin-ext_vietnamese-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d224faababe04c520b67b6e7a23770c0cdb5a7cc GIT binary patch literal 37836 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 +} catch (Exception $e) { + error_log("Failed to ensure MongoDB indexes: " . $e->getMessage()); +} + +$requestCount = 0; +$maxRequests = Config::getInstance()->get(ConfigKey::WORKER_REQUESTS); + +do { + $running = \frankenphp_handle_request(function () { + + MongoDBClient::getInstance()->reset(); + URL::clear(); + + if (URL::isApi()) { + ApiRouter::getInstance()->run(); + } else { + FrontendRouter::getInstance()->run(); + } + }); + + gc_collect_cycles(); + + $requestCount++; +} while ($running && $requestCount < $maxRequests); \ No newline at end of file