diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..ea59817c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,33 @@ +--- +name: 👾 Bug Report +about: Report a bug or issue with the project. +title: '' +labels: 'bug' +assignees: '' + +--- + +### Description +A clear and concise description of what the bug is. + +### Steps To Reproduce +1. Log in... +2. Ensure that... +3. Allow a long period of inactivity to pass... +4. Observe that... +5. Attempt to log in... + +### Current Behavior +- After the period of inactivity... +- When the user tries to log in using another method... +- This causes a bug due to... + +### Expected Behavior +- After a long period of inactivity... +- When a user logs in successfully... +- This ensures that only... + +### Environment +- Platform: PC +- Node: v18.18.0 +- Browser: Chrome 126.0.6478.56 \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..163c1c43 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,10 @@ +blank_issues_enabled: false +issue_template: + - name: 👾 Bug Report + description: Report a bug or issue with the project. + labels: ["bug"] + template: bug_report.md + - name: 💡 Feature Request + description: Create a new ticket for a new feature request. + labels: ["enhancement"] + template: feature_request.md \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..a4b81753 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,27 @@ +--- +name: 💡 Feature Request +about: Create a new ticket for a new feature request +title: '' +labels: 'enhancement' +assignees: '' + +--- + +### Expected Behavior +Describe the expected behavior here. + +### Specifications +As a `user`, I would like to `action` so that `reason`. + +**Features:** +- describe feature details here. + +**Development Tasks:** +- [ ] Task 1 +- [ ] Task 2 + +### Dependencies +List any dependencies that are required for this feature by providing links to the issues or repositories. + +### References +List any references that are related to this feature request. \ No newline at end of file diff --git a/.github/workflows/deploy-tag.yaml b/.github/workflows/deploy-tag.yaml new file mode 100644 index 00000000..6e9e5702 --- /dev/null +++ b/.github/workflows/deploy-tag.yaml @@ -0,0 +1,97 @@ +name: Build and Deploy Release + +on: + push: + tags: + - "v*.*.*" +env: + DOTNET_INSTALL_DIR: "./.dotnet" + +jobs: + publish: + runs-on: aelfscan-runner + strategy: + matrix: + servicename: + [ + AElfScanServer.Worker, + AElfScanServer.HttpApi.Host, + AElfScanServer.Silo, + AElfScanServer.AuthServer, + AElfScanServer.DbMigrator + ] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: "8.0" + - run: dotnet publish src/${{ matrix.servicename }}/${{ matrix.servicename }}.csproj -o out/${{ matrix.servicename }} + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.servicename }} + path: out/${{ matrix.servicename }} + retention-days: 1 + build-and-push-image: + needs: publish + runs-on: aelfscan-runner + strategy: + matrix: + servicename: + [ + AElfScanServer.Worker, + AElfScanServer.HttpApi.Host, + AElfScanServer.Silo, + AElfScanServer.AuthServer, + AElfScanServer.DbMigrator + ] + permissions: + contents: read + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Download a single artifact + uses: actions/download-artifact@v4 + with: + name: ${{ matrix.servicename }} + path: out/${{ matrix.servicename }} + - name: Create image tag + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.REPOSITORY_REGION }}-docker.pkg.dev/${{ secrets.PROJECT_ID }}/${{ secrets.REPOSITORY }}/${{ matrix.servicename }} + tags: | + type=ref,event=tag + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + build-args: | + servicename=${{ matrix.servicename }} + platforms: linux/amd64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + dispatch: + runs-on: aelfscan-runner + needs: build-and-push-image + steps: + - name: Deploy + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.TOK }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: 'AelfScanProject', + repo: 'devops', + workflow_id: 'aelf-explorer-server-deploy.yaml', + ref: 'main', + inputs: { + env: 'production', + appName: 'aelf-explorer-backend', + commit_sha: '${{ github.ref_name }}', + } + }) diff --git a/.github/workflows/deploy-testnet-pre.yaml b/.github/workflows/deploy-testnet-pre.yaml new file mode 100644 index 00000000..07a60391 --- /dev/null +++ b/.github/workflows/deploy-testnet-pre.yaml @@ -0,0 +1,96 @@ +name: Build and Deploy Testnet Pre + +on: + push: + branches: + - "pre-release/*" +env: + DOTNET_INSTALL_DIR: "./.dotnet" + +jobs: + publish: + runs-on: aelfscan-runner + strategy: + matrix: + servicename: + [ + AElfScanServer.HttpApi.Host, + ] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: "8.0" + - run: dotnet publish src/${{ matrix.servicename }}/${{ matrix.servicename }}.csproj -o out/${{ matrix.servicename }} + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.servicename }} + path: out/${{ matrix.servicename }} + retention-days: 1 + build-and-push-image: + needs: publish + runs-on: aelfscan-runner + strategy: + matrix: + servicename: + [ + AElfScanServer.HttpApi.Host, + ] + permissions: + contents: read + outputs: + short_sha: ${{ steps.vars.outputs.short_sha }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set short git commit SHA + id: vars + run: | + calculatedSha=$(git rev-parse --short ${{ github.sha }}) + echo "short_sha=$calculatedSha" >> "$GITHUB_OUTPUT" + - name: Download a single artifact + uses: actions/download-artifact@v4 + with: + name: ${{ matrix.servicename }} + path: out/${{ matrix.servicename }} + - name: Create image tag + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.REPOSITORY_REGION }}-docker.pkg.dev/${{ secrets.PROJECT_ID }}/${{ secrets.REPOSITORY }}/${{ matrix.servicename }} + tags: | + type=sha + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + build-args: | + servicename=${{ matrix.servicename }} + platforms: linux/amd64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + dispatch: + runs-on: aelfscan-runner + needs: build-and-push-image + steps: + - name: Deploy + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.TOK }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: 'AelfScanProject', + repo: 'devops', + workflow_id: 'aelf-explorer-server-deploy.yaml', + ref: 'main', + inputs: { + env: 'testnet', + appName: 'aelf-explorer-httpapi-host-pre', + commit_sha: 'sha-${{ needs.build-and-push-image.outputs.short_sha }}', + } + }) diff --git a/.github/workflows/deploy-testnet.yaml b/.github/workflows/deploy-testnet.yaml new file mode 100644 index 00000000..bcce1fde --- /dev/null +++ b/.github/workflows/deploy-testnet.yaml @@ -0,0 +1,122 @@ +name: Build and Deploy Testnet + +on: + workflow_dispatch: + inputs: + servicename: + description: 'Select service to build and deploy' + required: true + default: 'AElfScanServer.Worker' + type: choice + options: + - AElfScanServer.Worker + - AElfScanServer.HttpApi.Host + - AElfScanServer.Silo + - AElfScanServer.AuthServer + - AElfScanServer.DbMigrator + +env: + DOTNET_INSTALL_DIR: "./.dotnet" + +jobs: + publish: + runs-on: aelfscan-runner + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: "8.0" + - run: dotnet publish src/${{ github.event.inputs.servicename}}/${{ github.event.inputs.servicename }}.csproj -o out/${{ github.event.inputs.servicename }} + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ github.event.inputs.servicename }} + path: out/${{ github.event.inputs.servicename }} + retention-days: 1 + + build-and-push-image: + needs: publish + runs-on: aelfscan-runner + permissions: + contents: read + outputs: + short_sha: ${{ steps.vars.outputs.short_sha }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set short git commit SHA + id: vars + run: | + calculatedSha=$(git rev-parse --short ${{ github.sha }}) + echo "short_sha=$calculatedSha" >> "$GITHUB_OUTPUT" + - name: Download a single artifact + uses: actions/download-artifact@v4 + with: + name: ${{ github.event.inputs.servicename }} + path: out/${{ github.event.inputs.servicename }} + - name: Create image tag + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ secrets.REPOSITORY_REGION }}-docker.pkg.dev/${{ secrets.PROJECT_ID }}/${{ secrets.REPOSITORY }}/${{ github.event.inputs.servicename }} + tags: | + type=sha + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + build-args: | + servicename=${{ github.event.inputs.servicename }} + platforms: linux/amd64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + dispatch: + runs-on: aelfscan-runner + needs: build-and-push-image + steps: + - name: Map servicename to appName + id: map-appname + run: | + case "${{ github.event.inputs.servicename }}" in + "AElfScanServer.HttpApi.Host") + appName="aelf-explorer-httpapi-host" + ;; + "AElfScanServer.Worker") + appName="aelf-explorer-worker" + ;; + "AElfScanServer.Silo") + appName="aelf-explorer-silo" + ;; + "AElfScanServer.AuthServer") + appName="aelf-explorer-authserver" + ;; + "AElfScanServer.DbMigrator") + appName="aelf-explorer-dbmigrator" + ;; + *) + echo "Unknown service name: ${{ github.event.inputs.servicename }}" + exit 1 + ;; + esac + echo "appName=$appName" >> "$GITHUB_ENV" + + - name: Deploy + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.TOK }} + script: | + await github.rest.actions.createWorkflowDispatch({ + owner: 'AelfScanProject', + repo: 'devops', + workflow_id: 'aelf-explorer-server-deploy.yaml', + ref: 'main', + inputs: { + env: 'testnet', + appName: process.env.appName, + commit_sha: 'sha-${{ needs.build-and-push-image.outputs.short_sha }}', + } + }) \ No newline at end of file diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml new file mode 100644 index 00000000..62cc37d0 --- /dev/null +++ b/.github/workflows/security.yml @@ -0,0 +1,23 @@ +name: Security Review + +permissions: + pull-requests: write + contents: read + +on: + pull_request: + +jobs: + security: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + fetch-depth: 2 + + - uses: Portkey-Wallet/claude-code-security-review@main + with: + comment-pr: true + claude-api-key: ${{ secrets.CLAUDE_API_KEY }} + run-every-commit: true diff --git a/.github/workflows/test-with-code-coverage.yml b/.github/workflows/test-with-code-coverage.yml new file mode 100644 index 00000000..b07df5c0 --- /dev/null +++ b/.github/workflows/test-with-code-coverage.yml @@ -0,0 +1,55 @@ +name: Test with code coverage + +on: + push: + branches: + - '**' + +env: + DOTNET_INSTALL_DIR: "./.dotnet" + +jobs: + test: + runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: write + services: + elasticsearch: + image: elasticsearch:7.17.0 + ports: + - 9200:9200 + options: -e="discovery.type=single-node" -e="xpack.security.enabled=false" --health-cmd="curl http://localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=10 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup dotnet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.0' + - name: Verify Elasticsearch connection + env: + ELASTIC_SEARCH_URL: http://127.0.0.1:${{ job.services.elasticsearch.ports[9200] }} + run: | + echo $ELASTIC_SEARCH_URL + curl -fsSL "$ELASTIC_SEARCH_URL/_cat/health?h=status" + - name: Install dependencies + run: dotnet restore --verbosity quiet + + - name: Build + run: dotnet build --no-restore /clp:ErrorsOnly /p:GeneratePackageOnBuild=false --verbosity quiet + + - name: Test + run: | + for name in `ls ./test/*.Tests/*.csproj | awk '{print $NF}'`; + do + dotnet test ${name} --no-restore --no-build --logger trx --settings CodeCoverage.runsettings --results-directory coverage --collect:"XPlat Code Coverage" + done + +# - name: Upload coverage reports to Codecov +# uses: codecov/codecov-action@v4 +# with: +# fail_ci_if_error: true +# files: coverage/*/coverage.cobertura.xml +# env: +# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..11a9e6e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,316 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +src/AElfScanServer.HttpApi.Host/Logs/logs.txt +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/a +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +#*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# Visual Studio Code +.vscode + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc +*.DS_Store + +.vs/ +slnx.sqlite + +# Generated Protobuf classes +grpc_csharp_plugin +*Grpc.cs +#**/Generated/*.cs + +launchSettings.json + +# dev settings +*/**/appsettings.Development.json + +yarn.lock + +results/coverage.json +results/coverage.opencover.xml + +aelf.js + +scripts/contract_csharp_plugin +scripts/contract_csharp_plugin.exe + +**/BenchmarkDotNet.Artifacts/* + +Contracts.manifest + +# coverage result +coverage*.json +coverage*.xml + +# zip package +*.gz +*.zip + +# Contract patcher dlls +scripts/patcher/* + +tools +.dotnet +.idea/ +.idea/.idea.AElfScanServer/.idea/contentModel.xml +.idea/.idea.AElfScanServer/.idea/encodings.xml +.idea/.idea.AElfScanServer/.idea/indexLayout.xml +.idea/.idea.AElfScanServer/.idea/misc.xml +.idea/.idea.AElfScanServer/.idea/modules.xml +.idea/.idea.AElfScanServer/.idea/projectSettingsUpdater.xml +.idea/.idea.AElfScanServer/.idea/vcs.xml +.idea/.idea.AElfScanServer/.idea/workspace.xml +.idea/.idea.AElfScanServer/riderModule.iml diff --git a/AElfScanServer.sln b/AElfScanServer.sln new file mode 100755 index 00000000..aac2d914 --- /dev/null +++ b/AElfScanServer.sln @@ -0,0 +1,131 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29020.237 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AElfScanServer.Domain", "src\AElfScanServer.Domain\AElfScanServer.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AElfScanServer.Domain.Shared", "src\AElfScanServer.Domain.Shared\AElfScanServer.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Common", "src\AElfScanServer.Common\AElfScanServer.Common.csproj", "{6476A52E-8A81-46B9-A8F8-43BF259F1FE3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.HttpApi", "src\AElfScanServer.HttpApi\AElfScanServer.HttpApi.csproj", "{F0E74427-B6E8-457D-A793-052570DB1A2E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.HttpApi.Host", "src\AElfScanServer.HttpApi.Host\AElfScanServer.HttpApi.Host.csproj", "{F9B10DAC-1B93-4BCE-BB64-75ACC9F24C5E}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Worker", "src\AElfScanServer.Worker\AElfScanServer.Worker.csproj", "{D6E727D9-BAF0-4470-B030-6E25203FA60B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Worker.Core", "src\AElfScanServer.Worker.Core\AElfScanServer.Worker.Core.csproj", "{FB54DD04-A56F-4E75-BF2C-B5D80525B7E2}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{602A39E5-9813-4D02-8E33-E472123309AF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScan.Plugin.NFT", "plugins\AElfScan.Plugin.NFT\AElfScan.Plugin.NFT.csproj", "{5695FDA5-227C-4659-BF3E-6386BA5FC6C9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Silo", "src\AElfScanServer.Silo\AElfScanServer.Silo.csproj", "{C2D5DE06-0961-4E4F-9A1C-9B7ECBC7BBC4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Grains", "src\AElfScanServer.Grains\AElfScanServer.Grains.csproj", "{24FC47A3-6C77-49CD-B848-2CDFEB0D98F3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.AuthServer", "src\AElfScanServer.AuthServer\AElfScanServer.AuthServer.csproj", "{8E555607-A9B0-48CB-A1CC-835E23E34F2D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.MongoDB", "src\AElfScanServer.MongoDB\AElfScanServer.MongoDB.csproj", "{A5563C59-EEEA-4DFD-85B5-D52D8E147D2A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Application", "src\AElfScanServer.Application\AElfScanServer.Application.csproj", "{2585D13E-E9AF-4FFC-B6FD-2F84FE7FF4A5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.Application.Contracts", "src\AElfScanServer.Application.Contracts\AElfScanServer.Application.Contracts.csproj", "{7CAC4244-DA1D-496F-91C4-0C222740227F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AElfScanServer.DbMigrator", "src\AElfScanServer.DbMigrator\AElfScanServer.DbMigrator.csproj", "{7FE8BFF1-4C05-424A-9FF6-334B77057A1B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.Build.0 = Release|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.Build.0 = Release|Any CPU + {6476A52E-8A81-46B9-A8F8-43BF259F1FE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6476A52E-8A81-46B9-A8F8-43BF259F1FE3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6476A52E-8A81-46B9-A8F8-43BF259F1FE3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6476A52E-8A81-46B9-A8F8-43BF259F1FE3}.Release|Any CPU.Build.0 = Release|Any CPU + {F0E74427-B6E8-457D-A793-052570DB1A2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F0E74427-B6E8-457D-A793-052570DB1A2E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F0E74427-B6E8-457D-A793-052570DB1A2E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F0E74427-B6E8-457D-A793-052570DB1A2E}.Release|Any CPU.Build.0 = Release|Any CPU + {F9B10DAC-1B93-4BCE-BB64-75ACC9F24C5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9B10DAC-1B93-4BCE-BB64-75ACC9F24C5E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9B10DAC-1B93-4BCE-BB64-75ACC9F24C5E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9B10DAC-1B93-4BCE-BB64-75ACC9F24C5E}.Release|Any CPU.Build.0 = Release|Any CPU + {D6E727D9-BAF0-4470-B030-6E25203FA60B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D6E727D9-BAF0-4470-B030-6E25203FA60B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D6E727D9-BAF0-4470-B030-6E25203FA60B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D6E727D9-BAF0-4470-B030-6E25203FA60B}.Release|Any CPU.Build.0 = Release|Any CPU + {FB54DD04-A56F-4E75-BF2C-B5D80525B7E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB54DD04-A56F-4E75-BF2C-B5D80525B7E2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB54DD04-A56F-4E75-BF2C-B5D80525B7E2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB54DD04-A56F-4E75-BF2C-B5D80525B7E2}.Release|Any CPU.Build.0 = Release|Any CPU + {5695FDA5-227C-4659-BF3E-6386BA5FC6C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5695FDA5-227C-4659-BF3E-6386BA5FC6C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5695FDA5-227C-4659-BF3E-6386BA5FC6C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5695FDA5-227C-4659-BF3E-6386BA5FC6C9}.Release|Any CPU.Build.0 = Release|Any CPU + {C2D5DE06-0961-4E4F-9A1C-9B7ECBC7BBC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2D5DE06-0961-4E4F-9A1C-9B7ECBC7BBC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2D5DE06-0961-4E4F-9A1C-9B7ECBC7BBC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2D5DE06-0961-4E4F-9A1C-9B7ECBC7BBC4}.Release|Any CPU.Build.0 = Release|Any CPU + {24FC47A3-6C77-49CD-B848-2CDFEB0D98F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {24FC47A3-6C77-49CD-B848-2CDFEB0D98F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {24FC47A3-6C77-49CD-B848-2CDFEB0D98F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {24FC47A3-6C77-49CD-B848-2CDFEB0D98F3}.Release|Any CPU.Build.0 = Release|Any CPU + {8E555607-A9B0-48CB-A1CC-835E23E34F2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8E555607-A9B0-48CB-A1CC-835E23E34F2D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8E555607-A9B0-48CB-A1CC-835E23E34F2D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8E555607-A9B0-48CB-A1CC-835E23E34F2D}.Release|Any CPU.Build.0 = Release|Any CPU + {A5563C59-EEEA-4DFD-85B5-D52D8E147D2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5563C59-EEEA-4DFD-85B5-D52D8E147D2A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5563C59-EEEA-4DFD-85B5-D52D8E147D2A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5563C59-EEEA-4DFD-85B5-D52D8E147D2A}.Release|Any CPU.Build.0 = Release|Any CPU + {2585D13E-E9AF-4FFC-B6FD-2F84FE7FF4A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2585D13E-E9AF-4FFC-B6FD-2F84FE7FF4A5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2585D13E-E9AF-4FFC-B6FD-2F84FE7FF4A5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2585D13E-E9AF-4FFC-B6FD-2F84FE7FF4A5}.Release|Any CPU.Build.0 = Release|Any CPU + {7CAC4244-DA1D-496F-91C4-0C222740227F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7CAC4244-DA1D-496F-91C4-0C222740227F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7CAC4244-DA1D-496F-91C4-0C222740227F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7CAC4244-DA1D-496F-91C4-0C222740227F}.Release|Any CPU.Build.0 = Release|Any CPU + {7FE8BFF1-4C05-424A-9FF6-334B77057A1B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7FE8BFF1-4C05-424A-9FF6-334B77057A1B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7FE8BFF1-4C05-424A-9FF6-334B77057A1B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7FE8BFF1-4C05-424A-9FF6-334B77057A1B}.Release|Any CPU.Build.0 = Release|Any CPU + + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {42F719ED-8413-4895-B5B4-5AB56079BC66} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {6476A52E-8A81-46B9-A8F8-43BF259F1FE3} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {F0E74427-B6E8-457D-A793-052570DB1A2E} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {F9B10DAC-1B93-4BCE-BB64-75ACC9F24C5E} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {D6E727D9-BAF0-4470-B030-6E25203FA60B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {FB54DD04-A56F-4E75-BF2C-B5D80525B7E2} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {5695FDA5-227C-4659-BF3E-6386BA5FC6C9} = {602A39E5-9813-4D02-8E33-E472123309AF} + {C2D5DE06-0961-4E4F-9A1C-9B7ECBC7BBC4} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {24FC47A3-6C77-49CD-B848-2CDFEB0D98F3} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {8E555607-A9B0-48CB-A1CC-835E23E34F2D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {A5563C59-EEEA-4DFD-85B5-D52D8E147D2A} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {2585D13E-E9AF-4FFC-B6FD-2F84FE7FF4A5} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {7CAC4244-DA1D-496F-91C4-0C222740227F} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {7FE8BFF1-4C05-424A-9FF6-334B77057A1B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} + EndGlobalSection +EndGlobal diff --git a/AElfScanServer.sln.DotSettings b/AElfScanServer.sln.DotSettings new file mode 100755 index 00000000..b31951b0 --- /dev/null +++ b/AElfScanServer.sln.DotSettings @@ -0,0 +1,23 @@ + + True + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + Required + Required + Required + Required + False + True + False + False + True + False + False + SQL + \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..d678512a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0.302-1 +ARG servicename +WORKDIR /app +COPY out/$servicename . diff --git a/NuGet.Config b/NuGet.Config new file mode 100755 index 00000000..189eb557 --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/common.props b/common.props new file mode 100755 index 00000000..7e89c3a0 --- /dev/null +++ b/common.props @@ -0,0 +1,19 @@ + + + latest + 1.0.0 + $(NoWarn);CS1591 + app + + + + + $(NoWarn);0436 + + + + + + + + \ No newline at end of file diff --git a/doc/token-transfer-monitoring-design.md b/doc/token-transfer-monitoring-design.md new file mode 100644 index 00000000..3b08b51a --- /dev/null +++ b/doc/token-transfer-monitoring-design.md @@ -0,0 +1,279 @@ +# Token Transfer Monitoring System Design + +## Overview +This document outlines the design for a comprehensive token transfer monitoring system for AElfScan. The system monitors blockchain transfer events using time-based incremental scanning and sends metrics to Prometheus for alerting and analysis. + +## Architecture + +### Core Components +1. **TokenTransferMonitoringWorker** - Scheduled background worker with startup delay +2. **TokenTransferMonitoringService** - Business logic and time-based data processing +3. **OpenTelemetry Integration** - Metrics collection and transmission +4. **Prometheus** - Metrics storage and alerting + +### Data Flow +``` +Blockchain → AElfScan Indexer → TokenTransferMonitoringWorker → TokenTransferMonitoringService → OpenTelemetry → Prometheus → Alerting +``` + +### Key Features +- **Time-based incremental scanning** (not block height based) +- **System contract filtering** using existing GlobalOptions.ContractNames +- **Simplified address classification** (Normal, Blacklist only) +- **30-second startup delay** to avoid system startup overload +- **UTC time handling** with Redis-based scan time tracking +- **Single simplified metric** with essential dimensions + +## Prometheus Metrics Design + +### Single Unified Metric +We use one simplified histogram metric that captures essential transfer event dimensions: + +```prometheus +# HELP aelf_transfer_events Token transfer events with amount and metadata +# TYPE aelf_transfer_events histogram +aelf_transfer_events{ + chain_id="AELF", + symbol="ELF", + transfer_type="Transfer", + from_address="2N6dJpBcS5TLm2Pj4GkMdj4MnLhbKu8FGDX3Mz...", + to_address="2N6dJpBcS5TLm2Pj4GkMdj4MnLhbKu8FGDX3Mz...", + from_address_type="Normal", + to_address_type="Blacklist", + transaction_id="abc123..." +} +``` + +### Metric Dimensions + +| Label | Values | Description | +|-------|--------|-------------| +| `chain_id` | AELF, tDVV, tDVW | Blockchain identifier | +| `symbol` | ELF, USDT, BTC, ETH, etc. | Token symbol | +| `transfer_type` | Transfer, Burn, CrossChainTransfer, CrossChainReceive | Transfer operation type | +| `from_address` | Address string | Source address of the transfer | +| `to_address` | Address string | Destination address of the transfer | +| `from_address_type` | Normal, Blacklist | Source address classification | +| `to_address_type` | Normal, Blacklist | Destination address classification | +| `transaction_id` | Transaction hash | Unique transaction identifier for tracking | + +### Histogram Buckets +Amount distribution tracking with 4 buckets for clear categorization: +- **10**: Micro transfers (≤10) +- **1000**: Small transfers (10-1000) +- **100000**: Large transfers (1000-100000) +- **Infinity**: Massive transfers (>100000) + +## PromQL Query Examples + +### 1. Large Amount Transfers +```promql +# Transfers over 100,000 ELF in the last hour +increase(aelf_transfer_events_sum{symbol="ELF"}[1h]) +/ increase(aelf_transfer_events_count{symbol="ELF"}[1h]) > 100000 + +# Total large transfers by from address +sum by (from_address) ( + increase(aelf_transfer_events_sum{symbol="ELF"}[1h]) +) > 500000 +``` + +### 2. High-Frequency Trading +```promql +# Addresses with more than 100 transfers in the last hour +sum by (from_address) ( + increase(aelf_transfer_events_count[1h]) +) > 100 + +# High-frequency between specific addresses +sum by (from_address, to_address) ( + increase(aelf_transfer_events_count[1h]) +) > 50 +``` + +### 3. Blacklist Address Monitoring +```promql +# All transfers from blacklist addresses +increase(aelf_transfer_events_count{from_address_type="Blacklist"}[1h]) + +# All transfers to blacklist addresses +increase(aelf_transfer_events_count{to_address_type="Blacklist"}[1h]) + +# Large amounts involving blacklist addresses +increase(aelf_transfer_events_sum{ + from_address_type="Blacklist" OR to_address_type="Blacklist" +}[1h]) +``` + +### 4. Cross-Chain Activity +```promql +# Cross-chain transfer volume +sum by (chain_id) ( + increase(aelf_transfer_events_sum{transfer_type="CrossChainTransfer"}[1h]) +) + +# Cross-chain transfer frequency +sum by (chain_id) ( + increase(aelf_transfer_events_count{transfer_type="CrossChainTransfer"}[1h]) +) +``` + +### 5. Transaction Tracking +```promql +# Specific transaction monitoring +aelf_transfer_events_count{transaction_id="abc123..."} + +# Transactions involving specific addresses +aelf_transfer_events_count{ + from_address="2N6dJpBcS5TLm2Pj4GkMdj4MnLhbKu8FGDX3Mz..." OR + to_address="2N6dJpBcS5TLm2Pj4GkMdj4MnLhbKu8FGDX3Mz..." +} +``` + +## Alert Rules Configuration + +### 1. Large Amount Alerts +```yaml +groups: +- name: large_transfers + rules: + - alert: LargeELFTransfer + expr: | + increase(aelf_transfer_events_sum{symbol="ELF"}[5m]) + / increase(aelf_transfer_events_count{symbol="ELF"}[5m]) > 100000 + for: 0m + labels: + severity: warning + annotations: + summary: "Large ELF transfer detected" + description: "Transfer of {{ $value }} ELF detected from {{ $labels.from_address }}" + + - alert: MassiveTransferVolume + expr: | + sum by (from_address) ( + increase(aelf_transfer_events_sum[1h]) + ) > 1000000 + for: 5m + labels: + severity: critical + annotations: + summary: "Massive transfer volume from {{ $labels.from_address }}" +``` + +### 2. High Frequency Alerts +```yaml +- name: high_frequency + rules: + - alert: HighFrequencyTrading + expr: | + sum by (from_address) ( + increase(aelf_transfer_events_count[1h]) + ) > 100 + for: 10m + labels: + severity: warning + annotations: + summary: "High frequency trading detected from {{ $labels.from_address }}" + + - alert: TransferBurst + expr: | + sum by (from_address) ( + increase(aelf_transfer_events_count[5m]) + ) > 20 + for: 0m + labels: + severity: critical + annotations: + summary: "Transfer burst detected from {{ $labels.from_address }}" +``` + +### 3. Blacklist Alerts +```yaml +- name: blacklist_monitoring + rules: + - alert: BlacklistActivity + expr: | + increase(aelf_transfer_events_count{ + from_address_type="Blacklist" OR to_address_type="Blacklist" + }[1m]) > 0 + for: 0m + labels: + severity: critical + annotations: + summary: "Blacklist address activity detected" + description: "Transfer involving blacklist address: from={{ $labels.from_address }}, to={{ $labels.to_address }}" +``` + +## Configuration Management + +### Application Configuration +```json +{ + "TokenTransferMonitoring": { + "EnableMonitoring": true, + "EnableSystemContractFilter": true, + "BlacklistAddresses": [ + "2N6dJpBcS5TLm2Pj4GkMdj4MnLhbKu8FGDX3Mz1", + "2N6dJpBcS5TLm2Pj4GkMdj4MnLhbKu8FGDX3Mz2" + ], + "MonitoredTokens": ["ELF", "USDT", "BTC", "ETH"], + "ScanConfig": { + "ChainIds": ["AELF", "tDVV", "tDVW"], + "IntervalSeconds": 30, + "BatchSize": 1000, + "RedisKeyPrefix": "token_transfer_monitoring" + }, + "HistogramBuckets": [10, 1000, 100000, "Infinity"] + } +} +``` + +### System Contract Filtering +The system uses existing `GlobalOptions.ContractNames` configuration for system contract filtering: +- No additional configuration needed +- Leverages existing contract address mappings +- Can be disabled via `EnableSystemContractFilter: false` + +## Implementation Details + +### Time-Based Scanning +- **Incremental scanning** based on block time, not block height +- **Default scan window**: 60 minutes backward from current time +- **Redis state management**: Stores last scan time per chain +- **UTC time handling**: Ensures consistent time processing across systems + +### Worker Startup Strategy +- **30-second startup delay** to avoid system startup overload +- **No immediate execution** (RunOnStart = false) +- **Graceful startup** with other system Workers + +### Error Handling +- **Chain-level isolation**: Failure in one chain doesn't affect others +- **Comprehensive logging**: Detailed error tracking and performance metrics +- **Graceful degradation**: Continues operation even with partial failures + +### Performance Optimizations +- **Batch processing**: Configurable batch sizes for efficient data processing +- **Safety limits**: 10,000 record limit to prevent memory issues +- **Incremental updates**: Only processes new data since last scan +- **Efficient Redis operations**: Minimal Redis calls with optimized key management + +## Monitoring and Observability + +### Logs +- Worker startup and configuration +- Scan progress and timing +- Transfer processing statistics +- Error conditions and recovery + +### Metrics +- Transfer volume and frequency +- Processing performance +- System contract filtering effectiveness +- Blacklist address activity + +### Health Checks +- Redis connectivity +- Indexer API availability +- Metric transmission success +- Configuration validation \ No newline at end of file diff --git a/global.json b/global.json new file mode 100644 index 00000000..dad2db5e --- /dev/null +++ b/global.json @@ -0,0 +1,7 @@ +{ + "sdk": { + "version": "8.0.0", + "rollForward": "latestMajor", + "allowPrerelease": true + } +} \ No newline at end of file diff --git a/plugins/AElfScan.Plugin.NFT/AElfScan.Plugin.NFT.csproj b/plugins/AElfScan.Plugin.NFT/AElfScan.Plugin.NFT.csproj new file mode 100644 index 00000000..30246a0c --- /dev/null +++ b/plugins/AElfScan.Plugin.NFT/AElfScan.Plugin.NFT.csproj @@ -0,0 +1,29 @@ + + + + net8.0 + enable + enable + NFT + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/AElfScan.Plugin.NFT/AElfScanPluginNFTModule.cs b/plugins/AElfScan.Plugin.NFT/AElfScanPluginNFTModule.cs new file mode 100644 index 00000000..8f0ac9c8 --- /dev/null +++ b/plugins/AElfScan.Plugin.NFT/AElfScanPluginNFTModule.cs @@ -0,0 +1,44 @@ +using AElfScanServer.Common; +using AElfScanServer.Common.GraphQL; +using AElfScanServer.Common.IndexerPluginProvider; +using AElfScanServer.Common.Options; +using AElfScanServer.Common.Token; +using Microsoft.Extensions.DependencyInjection; +using NFT.backend; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.AutoMapper; +using Volo.Abp.Caching; +using Volo.Abp.Modularity; + +namespace NFT; + +[DependsOn( + typeof(AbpAutoMapperModule), + typeof(AbpAspNetCoreMvcModule), + typeof(AElfScanCommonModule) +)] +public class AElfScanPluginNFTModule : AElfScanPluginBaseModule + +{ + protected override string Name { get; } + protected override string Version { get; } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + Configure(configuration.GetSection("ChainOptions")); + Configure(configuration.GetSection("ApiClient")); + Configure(configuration.GetSection("Indexers")); + Configure(configuration.GetSection("Exchange")); + Configure(configuration.GetSection("CoinGecko")); + Configure(configuration.GetSection("TokenInfoOptions")); + Configure(configuration.GetSection("AssetsInfoOptions")); + Configure(options => { options.KeyPrefix = "BlockChainDataFunctionServer:"; }); + context.Services.AddSingleton(); + context.Services.AddSingleton(); + context.Services.AddSingleton(); + + context.Services.AddSingleton(); + context.Services.AddTransient(); + } +} \ No newline at end of file diff --git a/plugins/AElfScan.Plugin.NFT/backend/NftController.cs b/plugins/AElfScan.Plugin.NFT/backend/NftController.cs new file mode 100644 index 00000000..29dfb50d --- /dev/null +++ b/plugins/AElfScan.Plugin.NFT/backend/NftController.cs @@ -0,0 +1,72 @@ +using System.Threading.Tasks; +using AElf.OpenTelemetry.ExecutionTime; +using AElfScanServer.Common.Dtos; +using AElfScanServer.Common.Dtos.Input; +using Asp.Versioning; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp; + +namespace NFT.backend; + +[RemoteService] +[Area("app")] +[ControllerName("Nft")] +[Route("api/app/token/nft/")] +public class NftController +{ + private readonly INftService _nftService; + + public NftController(INftService nftService) + { + _nftService = nftService; + } + + [HttpGet("collection-list")] + public async Task> GetNftCollectionListAsync(TokenListInput input) + { + return await _nftService.GetNftCollectionListAsync(input); + } + + [HttpGet("collection-detail")] + public async Task GetNftCollectionDetailAsync(string collectionSymbol, string chainId = "") + { + return await _nftService.GetMergeNftCollectionDetailAsync(collectionSymbol, chainId); + } + + [HttpGet("transfers")] + public async Task GetNftCollectionTransferInfosAsync(TokenTransferInput input) + { + return await _nftService.GetNftCollectionTransferInfosAsync(input); + } + + [HttpGet("holders")] + public async Task> GetNftCollectionHolderInfosAsync( + TokenHolderInput input) + { + return await _nftService.GetNftCollectionHolderInfosAsync(input); + } + + [HttpGet("inventory")] + public async Task GetNftCollectionInventoryAsync(NftInventoryInput input) + { + return await _nftService.GetNftCollectionInventoryAsync(input); + } + + [HttpGet("item-detail")] + public async Task GetNftItemDetailAsync(string symbol, string chainId = "") + { + return await _nftService.GetNftItemDetailAsync(chainId, symbol); + } + + [HttpGet("item-activity")] + public async Task> GetNftItemDetailAsync(NftItemActivityInput input) + { + return await _nftService.GetNftItemActivityAsync(input); + } + + [HttpGet("item-holders")] + public async Task> GetNftItemHoldersAsync(NftItemHolderInfoInput input) + { + return await _nftService.GetNftItemHoldersAsync(input); + } +} \ No newline at end of file diff --git a/plugins/AElfScan.Plugin.NFT/backend/NftService.cs b/plugins/AElfScan.Plugin.NFT/backend/NftService.cs new file mode 100644 index 00000000..3ac3b028 --- /dev/null +++ b/plugins/AElfScan.Plugin.NFT/backend/NftService.cs @@ -0,0 +1,1012 @@ +using System.Globalization; +using AElf.ExceptionHandler; +using AElfScanServer.Common; +using AElfScanServer.Common.Commons; +using AElfScanServer.Common.Constant; +using AElfScanServer.Common.Contract.Provider; +using AElfScanServer.Common.Dtos; +using AElfScanServer.Common.Dtos.Indexer; +using AElfScanServer.Common.Dtos.Input; +using AElfScanServer.Common.Dtos.MergeData; +using AElfScanServer.Common.Enums; +using AElfScanServer.Common.EsIndex; +using AElfScanServer.Common.ExceptionHandling; +using AElfScanServer.Common.Helper; +using AElfScanServer.Common.IndexerPluginProvider; +using AElfScanServer.Common.Options; +using AElfScanServer.Common.Token; +using AElfScanServer.Common.Token.Provider; +using AElfScanServer.Domain.Shared.Common; +using Elasticsearch.Net; +using Microsoft.Extensions.Caching.Distributed; +using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Nest; +using Nito.AsyncEx; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.ObjectMapping; + +namespace NFT.backend; + +public interface INftService +{ + public Task> GetNftCollectionListAsync(TokenListInput input); + public Task GetNftCollectionDetailAsync(string chainId, string collectionSymbol); + public Task GetNftCollectionTransferInfosAsync(TokenTransferInput input); + public Task> GetNftCollectionHolderInfosAsync(TokenHolderInput input); + public Task GetNftCollectionInventoryAsync(NftInventoryInput input); + Task GetNftItemDetailAsync(string chainId, string symbol); + Task> GetNftItemActivityAsync(NftItemActivityInput input); + Task> GetNftItemHoldersAsync(NftItemHolderInfoInput input); + + Task GetMergeNftCollectionDetailAsync(string collectionSymbol, string chainId); + + Task> GetCollectionSupplyAsync(string chainId, List collectionSymbols); +} + +public class NftService : INftService, ISingletonDependency +{ + private const int MaxResultCount = 1000; + private readonly IOptionsMonitor _chainOptions; + private readonly IOptionsMonitor _globalOptions; + + private readonly ITokenIndexerProvider _tokenIndexerProvider; + private readonly ILogger _logger; + private readonly IObjectMapper _objectMapper; + private readonly INftCollectionHolderProvider _collectionHolderProvider; + private readonly INftInfoProvider _nftInfoProvider; + private readonly ITokenPriceService _tokenPriceService; + private readonly ITokenInfoProvider _tokenInfoProvider; + private readonly IGenesisPluginProvider _genesisPluginProvider; + private readonly IOptionsMonitor _tokenInfoOptionsMonitor; + private readonly IDistributedCache _distributedCache; + private readonly IMemoryCache _memoryCache; + private readonly IElasticClient _elasticClient; + + + public NftService(ITokenIndexerProvider tokenIndexerProvider, ILogger logger, + IObjectMapper objectMapper, + INftCollectionHolderProvider collectionHolderProvider, INftInfoProvider nftInfoProvider, + ITokenPriceService tokenPriceService, + IOptionsMonitor chainOptions, IOptionsMonitor tokenInfoOptionsMonitor, + ITokenInfoProvider tokenInfoProvider, IGenesisPluginProvider genesisPluginProvider, + IDistributedCache distributedCache, IMemoryCache memoryCache, + IOptionsMonitor options, IOptionsMonitor globalOptions + ) + { + _tokenIndexerProvider = tokenIndexerProvider; + _logger = logger; + _objectMapper = objectMapper; + _collectionHolderProvider = collectionHolderProvider; + _nftInfoProvider = nftInfoProvider; + _tokenPriceService = tokenPriceService; + _chainOptions = chainOptions; + _tokenInfoOptionsMonitor = tokenInfoOptionsMonitor; + _tokenInfoProvider = tokenInfoProvider; + _genesisPluginProvider = genesisPluginProvider; + _distributedCache = distributedCache; + _memoryCache = memoryCache; + var uris = options.CurrentValue.Url.ConvertAll(x => new Uri(x)); + var connectionPool = new StaticConnectionPool(uris); + var settings = new ConnectionSettings(connectionPool).DisableDirectStreaming(); + _elasticClient = new ElasticClient(settings); + EsIndex.SetElasticClient(_elasticClient); + _globalOptions = globalOptions; + } + + + public async Task> GetNftCollectionListAsync(TokenListInput input) + { + if (input.ChainId.IsNullOrEmpty()) + { + return await GetMergeNftCollectionListAsync(input); + } + + input.SetDefaultSort(); + input.Types = new List { SymbolType.Nft_Collection }; + var indexerNftListDto = await _tokenIndexerProvider.GetTokenListAsync(input); + if (indexerNftListDto.Items.IsNullOrEmpty()) + { + return new ListResponseDto(); + } + + var collectionSymbols = indexerNftListDto.Items.Select(o => o.Symbol).ToList(); + // var groupAndSumSupply = await GetCollectionSupplyAsync(input.ChainId, collectionSymbols); + + //get collection supply + var list = indexerNftListDto.Items.Select(item => + { + var nftInfoDto = _objectMapper.Map(item); + nftInfoDto.Items = item.ItemCount.ToString(CultureInfo.InvariantCulture); + + //convert url + nftInfoDto.NftCollection.ImageUrl = TokenInfoHelper.GetImageUrl(item.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(item.Symbol)); + /*nftInfoDto.Items = groupAndSumSupply.TryGetValue(item.Symbol, out var sumSupply) + ? sumSupply + : "0";*/ + nftInfoDto.ChainIds.Add(input.ChainId); + return nftInfoDto; + }).ToList(); + return new ListResponseDto + { + Total = indexerNftListDto.TotalCount, + List = list + }; + } + + public async Task> GetMergeNftCollectionListAsync(TokenListInput input) + { + var result = await EsIndex.SearchMergeTokenList( + (int)input.SkipCount, (int)input.MaxResultCount, input.Sort == null ? "desc" : input.Sort.ToLower(), + null, null, + SymbolType.Nft_Collection); + + + //get collection supply + var list = result.list.Select(item => + { + var nftInfoDto = _objectMapper.Map(item); + + nftInfoDto.ChainIds = item.ChainIds; + nftInfoDto.Items = item.ItemCount.ToString(CultureInfo.InvariantCulture); + + //convert url + nftInfoDto.NftCollection.ImageUrl = TokenInfoHelper.GetImageUrl(item.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(item.Symbol)); + /*nftInfoDto.Items = groupAndSumSupply.TryGetValue(item.Symbol, out var sumSupply) + ? sumSupply + : "0";*/ + return nftInfoDto; + }).ToList(); + return new ListResponseDto + { + Total = result.totalCount, + List = list + }; + } + + [ExceptionHandler(typeof(Exception), + Message = "GetNftCollectionDetailAsync err", + TargetType = typeof(ExceptionHandlingService), + MethodName = nameof(ExceptionHandlingService.HandleException), ReturnDefault = ReturnDefault.New,LogTargets = ["chainId","collectionSymbol"])] + public virtual async Task GetNftCollectionDetailAsync(string chainId, string collectionSymbol) + { + var getCollectionInfoTask = _tokenIndexerProvider.GetTokenDetailAsync(chainId, collectionSymbol); + var nftCollectionInfoInput = new GetNftCollectionInfoInput + { + ChainId = _globalOptions.CurrentValue.SideChainId, + CollectionSymbolList = new List { collectionSymbol } + }; + var nftCollectionInfoTask = _nftInfoProvider.GetNftCollectionInfoAsync(nftCollectionInfoInput); + + + await Task.WhenAll(getCollectionInfoTask, nftCollectionInfoTask); + + var collectionInfoDtos = await getCollectionInfoTask; + AssertHelper.NotEmpty(collectionInfoDtos, "this nft not exist"); + var collectionInfo = collectionInfoDtos[0]; + var nftDetailDto = _objectMapper.Map(collectionInfo); + nftDetailDto.Items = collectionInfo.ItemCount.ToString(CultureInfo.InvariantCulture); + + nftDetailDto.TokenContractAddress = _chainOptions.CurrentValue.GetChainInfo(chainId)?.TokenContractAddress; + nftDetailDto.ContractAddress = new CommonAddressDto() + { + Address = _chainOptions.CurrentValue.GetChainInfo(chainId)?.TokenContractAddress, + Name = collectionInfo.Symbol, + AddressType = AddressType.ContractAddress + }; + + if (_globalOptions.CurrentValue.ContractNames.TryGetValue(chainId, out var contractNames)) + { + if (contractNames.TryGetValue(nftDetailDto.TokenContractAddress, out var contractName)) + { + nftDetailDto.ContractAddress.Name = contractName; + } + } + + //collectionInfo.Symbol is xxx-0 + nftDetailDto.NftCollection.ImageUrl = TokenInfoHelper.GetImageUrl(collectionInfo.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(collectionInfo.Symbol)); + /*nftDetailDto.Items = (await groupAndSumSupplyTask).TryGetValue(collectionInfo.Symbol, out var sumSupply) + ? sumSupply + : "0";*/ + //of floor price + var nftCollectionInfo = await nftCollectionInfoTask; + if (nftCollectionInfo.TryGetValue(collectionSymbol, out var nftCollection)) + { + var priceDto = + await _tokenPriceService.GetTokenPriceAsync(nftCollection.FloorPriceSymbol, + CurrencyConstant.UsdCurrency); + nftDetailDto.FloorPrice = nftCollection.FloorPrice; + nftDetailDto.FloorPriceOfUsd = + Math.Round(nftCollection.FloorPrice * priceDto.Price, CommonConstant.UsdPriceValueDecimals); + } + else + { + nftDetailDto.FloorPrice = -1m; + } + + return nftDetailDto; + + + } + + + public async Task GetMergeNftCollectionDetailAsync(string collectionSymbol, string chainId) + { + var tasks = new List(); + + var nftDetailDto = new NftDetailDto(); + var mainNftDetailDto = new NftDetailDto(); + var sideNftDetailDto = new NftDetailDto(); + var mergeHolders = 0l; + + tasks.Add(GetNftCollectionDetailAsync("AELF", collectionSymbol).ContinueWith(task => + { + mainNftDetailDto = task.Result == null ? new NftDetailDto() : task.Result; + })); + + tasks.Add(EsIndex.GetTokenHolders(collectionSymbol, "").ContinueWith(task => { mergeHolders = task.Result; })); + tasks.Add(GetNftCollectionDetailAsync(_globalOptions.CurrentValue.SideChainId, collectionSymbol) + .ContinueWith(task => { sideNftDetailDto = task.Result == null ? new NftDetailDto() : task.Result; })); + + await tasks.WhenAll(); + + if (chainId == "AELF" || chainId.IsNullOrEmpty()) + { + nftDetailDto = mainNftDetailDto; + } + else + { + nftDetailDto = sideNftDetailDto; + } + + nftDetailDto.MainChainItems = mainNftDetailDto.Items; + nftDetailDto.SideChainItems = sideNftDetailDto.Items; + + nftDetailDto.MergeItems = + (decimal.Parse(nftDetailDto.MainChainItems.IsNullOrEmpty() ? "0" : nftDetailDto.MainChainItems) + + decimal.Parse(nftDetailDto.SideChainItems.IsNullOrEmpty() ? "0" : nftDetailDto.SideChainItems)).ToString(); + nftDetailDto.MainChainHolders = mainNftDetailDto.Holders; + nftDetailDto.SideChainHolders = sideNftDetailDto.Holders; + + + nftDetailDto.MainChainTransferCount = mainNftDetailDto.TransferCount; + nftDetailDto.SideChainTransferCount = sideNftDetailDto.TransferCount; + nftDetailDto.MergeTransferCount = nftDetailDto.MainChainTransferCount + nftDetailDto.SideChainTransferCount; + + nftDetailDto.MainChainFloorPrice = mainNftDetailDto.FloorPrice; + nftDetailDto.SideChainFloorPrice = sideNftDetailDto.FloorPrice; + + nftDetailDto.MainChainFloorPriceOfUsd = mainNftDetailDto.FloorPriceOfUsd; + nftDetailDto.SideChainFloorPriceOfUsd = sideNftDetailDto.FloorPriceOfUsd; + + nftDetailDto.MergeHolders = mergeHolders; + if (!mainNftDetailDto.Items.IsNullOrEmpty()) + { + nftDetailDto.ChainIds.Add("AELF"); + } + + if (!sideNftDetailDto.Items.IsNullOrEmpty()) + { + nftDetailDto.ChainIds.Add(_globalOptions.CurrentValue.SideChainId); + } + + + return nftDetailDto; + } + + + public async Task GetNftCollectionTransferInfosAsync(TokenTransferInput input) + { + var types = new List { SymbolType.Nft }; + input.Types = types; + var tokenTransferInfos = await _tokenIndexerProvider.GetTokenTransfersAsync(input); + var result = new NftTransferInfosDto + { + Total = tokenTransferInfos.Total, + List = _objectMapper.Map, List>(tokenTransferInfos.List) + }; + if (input.IsSearchAddress()) + { + result.IsAddress = true; + result.Items = await _tokenIndexerProvider.GetHolderInfoAsync(input.ChainId, input.Search, types); + } + + return result; + } + + public async Task> GetNftCollectionHolderInfosAsync(TokenHolderInput input) + { + if (input.ChainId.IsNullOrEmpty()) + { + return await GetMergeNftCollectionHolderInfosAsync(input); + } + + input.SetDefaultSort(); + + var indexerTokenHolderInfo = await _tokenIndexerProvider.GetCollectionHolderInfoAsync(input); + + var list = await ConvertIndexerNftHolderInfoDtoAsync(indexerTokenHolderInfo.Items, input.ChainId, + input.CollectionSymbol); + + return new ListResponseDto + { + Total = indexerTokenHolderInfo.TotalCount, + List = list + }; + } + + public async Task> GetMergeNftCollectionHolderInfosAsync(TokenHolderInput input) + { + input.SetDefaultSort(); + + var result = new ListResponseDto(); + + var tasks = new List(); + input.Symbol = input.CollectionSymbol; + var accountTokenIndices = new List(); + var list = new List(); + var totalCount = 0L; + + tasks.Add(EsIndex.SearchAccountList(input).ContinueWith(task => + { + accountTokenIndices = task.Result.list; + totalCount = task.Result.totalCount; + })); + + + var indexerTokenList = new List(); + + tasks.Add(_tokenIndexerProvider.GetTokenDetailAsync("", input.CollectionSymbol).ContinueWith(task => + { + indexerTokenList = task.Result; + })); + + + await tasks.WhenAll(); + + if (indexerTokenList.IsNullOrEmpty()) + { + return result; + } + + var tokenSupply = indexerTokenList.Sum(c => c.ItemCount); + _logger.LogInformation("nft supply :{supply},{symbol}", tokenSupply, input.CollectionSymbol); + var addressList = accountTokenIndices + .Where(value => !string.IsNullOrEmpty(value.Address)) + .Select(value => value.Address).Distinct().ToList(); + + var priceDtoTask = _tokenPriceService.GetTokenPriceAsync(input.Symbol, CurrencyConstant.UsdCurrency); + var contractInfoDictTask = _genesisPluginProvider.GetContractListAsync("", addressList); + + await Task.WhenAll(priceDtoTask, contractInfoDictTask); + + + var priceDto = await priceDtoTask; + var contractInfoDict = await contractInfoDictTask; + foreach (var indexerTokenHolderInfoDto in accountTokenIndices) + { + var tokenHolderInfoDto = new TokenHolderInfoDto(); + tokenHolderInfoDto.Quantity = indexerTokenHolderInfoDto.FormatAmount; + + tokenHolderInfoDto.Address = CommonAddressHelper.GetCommonAddress(indexerTokenHolderInfoDto.Address, + indexerTokenHolderInfoDto.ChainId, contractInfoDict, _globalOptions.CurrentValue.ContractNames); + + + if (tokenSupply != 0) + { + tokenHolderInfoDto.Percentage = + Math.Round((decimal)indexerTokenHolderInfoDto.FormatAmount / tokenSupply * 100, + CommonConstant.PercentageValueDecimals); + } + + tokenHolderInfoDto.Value = + Math.Round(indexerTokenHolderInfoDto.FormatAmount * priceDto.Price, CommonConstant.UsdValueDecimals); + tokenHolderInfoDto.ChainIds = indexerTokenHolderInfoDto.ChainIds; + _logger.LogInformation("nft holder info chainIds :{chainIds}", indexerTokenHolderInfoDto.ChainIds); + list.Add(tokenHolderInfoDto); + } + + + return new ListResponseDto + { + Total = totalCount, + List = list + }; + } + + public async Task GetNftCollectionInventoryAsync(NftInventoryInput input) + { + if (input.ChainId.IsNullOrEmpty()) + { + return await GetMergeNftCollectionInventoryAsync(input); + } + + var result = new NftInventorysDto(); + List indexerTokenInfoList; + long totalCount; + if (input.IsSearchAddress()) + { + var tokenHolderInput = _objectMapper.Map(input); + tokenHolderInput.Types = new List { SymbolType.Nft }; + var tokenHolderInfos = await _tokenIndexerProvider.GetTokenHolderInfoAsync(tokenHolderInput); + var symbols = tokenHolderInfos.Items.Select(i => i.Token.Symbol).ToList(); + var tokenListInput = new TokenListInput() + { + ChainId = input.ChainId, + Symbols = symbols, + Types = new List { SymbolType.Nft } + }; + tokenListInput.OfOrderInfos((SortField.BlockHeight, SortDirection.Desc)); + indexerTokenInfoList = await _tokenIndexerProvider.GetAllTokenInfosAsync(tokenListInput); + result.IsAddress = true; + result.Items = tokenHolderInfos.Items.Select(i => new HolderInfo + { + Balance = i.FormatAmount, Symbol = i.Token.Symbol + }).ToList(); + totalCount = tokenHolderInfos.TotalCount; + } + else + { + var tokenListInput = _objectMapper.Map(input); + tokenListInput.CollectionSymbols = new List { input.CollectionSymbol }; + tokenListInput.Types = new List { SymbolType.Nft }; + tokenListInput.OfOrderInfos((SortField.BlockHeight, SortDirection.Desc)); + tokenListInput.Search = ""; + tokenListInput.ExactSearch = input.Search; + var indexerTokenInfoListDto = await _tokenIndexerProvider.GetTokenListAsync(tokenListInput); + totalCount = indexerTokenInfoListDto.TotalCount; + indexerTokenInfoList = indexerTokenInfoListDto.Items; + } + + var list = await ConvertIndexerNftInventoryDtoAsync(indexerTokenInfoList, input.ChainId); + result.Total = totalCount; + result.List = list; + return result; + } + + + public async Task GetMergeNftCollectionInventoryAsync(NftInventoryInput input) + { + var result = new NftInventorysDto(); + + var tokenListInput = _objectMapper.Map(input); + tokenListInput.CollectionSymbols = new List { input.CollectionSymbol }; + tokenListInput.Types = new List { SymbolType.Nft }; + tokenListInput.OfOrderInfos((SortField.BlockHeight, SortDirection.Desc)); + tokenListInput.Search = ""; + tokenListInput.ExactSearch = input.Search; + + var tokenInfoResult = await EsIndex.SearchMergeTokenList((int)input.SkipCount, (int)input.MaxResultCount, + "desc", input.Search.IsNullOrEmpty() ? new List() { } : new List() { input.Search }, null, + SymbolType.Nft, input.CollectionSymbol); + + + var list = await ConvertMergeNftInventoryDtoAsync(tokenInfoResult.list); + result.Total = tokenInfoResult.totalCount; + result.List = list; + return result; + } + + public async Task GetNftItemDetailAsync(string chainId, string symbol) + { + if (chainId.IsNullOrEmpty()) + { + return await GetMergeNftItemDetailAsync(symbol); + } + + var nftItems = await _tokenIndexerProvider.GetTokenDetailAsync(chainId, symbol); + + AssertHelper.NotEmpty(nftItems, "this nft item not exist"); + var nftItem = nftItems[0]; + var collectionInfos = await _tokenIndexerProvider.GetTokenDetailAsync(chainId, nftItem.CollectionSymbol); + AssertHelper.NotEmpty(collectionInfos, "this nft collection not exist"); + var collectionInfo = collectionInfos[0]; + var nftItemDetailDto = _objectMapper.Map(nftItem); + nftItemDetailDto.Quantity = DecimalHelper.Divide(nftItem.Supply, nftItem.Decimals); + + nftItemDetailDto.Item.ImageUrl = TokenInfoHelper.GetImageUrl(nftItem.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(nftItem.Symbol)); + var marketInfo = _tokenInfoOptionsMonitor.CurrentValue.GetMarketInfo(CommonConstant.DefaultMarket); + marketInfo.MarketUrl = string.Format(marketInfo.MarketUrl, symbol); + nftItemDetailDto.MarketPlaces = marketInfo; + nftItemDetailDto.NftCollection = new TokenBaseInfo + { + Name = collectionInfo.TokenName, + Symbol = collectionInfo.Symbol, + Decimals = collectionInfo.Decimals, + ImageUrl = TokenInfoHelper.GetImageUrl(collectionInfo.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(collectionInfo.Symbol)) + }; + + nftItemDetailDto.ChainIds.Add(nftItem.Metadata.ChainId); + return nftItemDetailDto; + } + + public async Task GetMergeNftItemDetailAsync(string symbol) + { + var searchTokenDetail = new TokenInfoIndex(); + var tokenHolders = 0l; + var tasks = new List(); + tasks.Add(EsIndex.SearchTokenDetail(symbol).ContinueWith(task => { searchTokenDetail = task.Result; })); + tasks.Add(EsIndex.GetTokenHolders(symbol, "").ContinueWith(task => { tokenHolders = task.Result; })); + + + await tasks.WhenAll(); + + var collectionInfos = await _tokenIndexerProvider.GetTokenDetailAsync("", searchTokenDetail.CollectionSymbol); + AssertHelper.NotEmpty(collectionInfos, "this nft collection not exist"); + var collectionInfo = collectionInfos[0]; + var nftItemDetailDto = _objectMapper.Map(searchTokenDetail); + + nftItemDetailDto.Quantity = DecimalHelper.Divide(searchTokenDetail.Supply, searchTokenDetail.Decimals); + nftItemDetailDto.Item.ImageUrl = TokenInfoHelper.GetImageUrl(searchTokenDetail.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(searchTokenDetail.Symbol)); + var marketInfo = _tokenInfoOptionsMonitor.CurrentValue.GetMarketInfo(CommonConstant.DefaultMarket); + marketInfo.MarketUrl = string.Format(marketInfo.MarketUrl, symbol); + nftItemDetailDto.MarketPlaces = marketInfo; + nftItemDetailDto.NftCollection = new TokenBaseInfo + { + Name = collectionInfo.TokenName, + Symbol = collectionInfo.Symbol, + Decimals = collectionInfo.Decimals, + ImageUrl = TokenInfoHelper.GetImageUrl(collectionInfo.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(collectionInfo.Symbol)) + }; + + nftItemDetailDto.Holders = tokenHolders; + nftItemDetailDto.ChainIds = searchTokenDetail.ChainIds; + + + return nftItemDetailDto; + } + + + public async Task> GetNftItemActivityAsync(NftItemActivityInput input) + { + if (input.ChainId.IsNullOrEmpty()) + { + input.ChainId = _globalOptions.CurrentValue.SideChainId; + } + + var activitiesInput = _objectMapper.Map(input); + activitiesInput.Types = _tokenInfoOptionsMonitor.CurrentValue.ActivityTypes; + activitiesInput.NftInfoId = IdGeneratorHelper.GetNftInfoId(input.ChainId, input.Symbol); + + var nftActivityInfo = await _nftInfoProvider.GetNftActivityListAsync(activitiesInput); + + if (nftActivityInfo==null || nftActivityInfo.Items.IsNullOrEmpty()) + { + return new ListResponseDto(); + } + + var list = await ConvertNftItemActivityAsync(input.ChainId, nftActivityInfo.Items); + + return new ListResponseDto + { + Total = nftActivityInfo.TotalCount, + List = list + }; + } + + public async Task> GetNftItemHoldersAsync(NftItemHolderInfoInput input) + { + if (input.ChainId.IsNullOrEmpty()) + { + return await GetMergeNftItemHoldersAsync(input); + } + + var tokenHolderInput = _objectMapper.Map(input); + tokenHolderInput.SetDefaultSort(); + var tokenHolderInfoTask = _tokenIndexerProvider.GetTokenHolderInfoAsync(tokenHolderInput); + var tokenDetailTask = _tokenIndexerProvider.GetTokenDetailAsync(input.ChainId, input.Symbol); + await Task.WhenAll(tokenHolderInfoTask, tokenDetailTask); + var nftItemHolderInfos = await tokenHolderInfoTask; + var nftItemList = await tokenDetailTask; + AssertHelper.NotEmpty(nftItemList, "this nft not exist"); + var supply = nftItemList[0].Supply; + + var addressList = nftItemHolderInfos.Items + .Where(value => !string.IsNullOrEmpty(value.Address)) + .Select(value => value.Address).Distinct().ToList(); + var contractInfoDict = await _genesisPluginProvider.GetContractListAsync(input.ChainId, addressList); + + var list = new List(); + foreach (var nftCollectionHolderInfoIndex in nftItemHolderInfos.Items) + { + var nftItemHolderInfoDto = new NftItemHolderInfoDto() + { + Quantity = nftCollectionHolderInfoIndex.FormatAmount + }; + + nftItemHolderInfoDto.Address = CommonAddressHelper.GetCommonAddress(nftCollectionHolderInfoIndex.Address, + nftCollectionHolderInfoIndex.Metadata.ChainId, contractInfoDict, + _globalOptions.CurrentValue.ContractNames); + if (supply > 0) + { + nftItemHolderInfoDto.Percentage = + Math.Round((decimal)nftCollectionHolderInfoIndex.Amount / supply * 100, + CommonConstant.PercentageValueDecimals); + } + + nftItemHolderInfoDto.ChainIds = new List() { input.ChainId }; + list.Add(nftItemHolderInfoDto); + } + + return new ListResponseDto() + { + Total = nftItemHolderInfos.TotalCount, + List = list + }; + } + + public async Task> GetMergeNftItemHoldersAsync(NftItemHolderInfoInput input) + { + var tokenHolderInput = _objectMapper.Map(input); + tokenHolderInput.SetDefaultSort(); + + List accountTokenIndexList = new(); + var total = 0l; + TokenInfoIndex tokenInfoIndex = new(); + var tasks = new List(); + + tasks.Add(EsIndex.SearchAccountList(tokenHolderInput).ContinueWith(task => + { + accountTokenIndexList = task.Result.list; + total = task.Result.totalCount; + })); + + + tasks.Add(EsIndex.SearchTokenDetail(input.Symbol).ContinueWith(task => { tokenInfoIndex = task.Result; })); + + await tasks.WhenAll(); + + + var supply = tokenInfoIndex.Supply; + + var addressList = accountTokenIndexList + .Where(value => !string.IsNullOrEmpty(value.Address)) + .Select(value => value.Address).Distinct().ToList(); + var contractInfoDict = await _genesisPluginProvider.GetContractListAsync("", addressList); + + var list = new List(); + foreach (var tokenInfo in accountTokenIndexList) + { + var nftItemHolderInfoDto = new NftItemHolderInfoDto() + { + Quantity = tokenInfo.FormatAmount + }; + + foreach (var chainId in tokenInfo.ChainIds) + { + nftItemHolderInfoDto.Address = CommonAddressHelper.GetCommonAddress(tokenInfo.Address, + chainId, contractInfoDict, _globalOptions.CurrentValue.ContractNames); + } + + if (supply > 0) + { + nftItemHolderInfoDto.Percentage = + Math.Round((decimal)tokenInfo.Amount / supply * 100, + CommonConstant.PercentageValueDecimals); + } + + nftItemHolderInfoDto.ChainIds = tokenInfo.ChainIds; + list.Add(nftItemHolderInfoDto); + } + + return new ListResponseDto() + { + Total = total, + List = list + }; + } + + private async Task> ConvertNftItemActivityAsync(string chainId, + List items) + { + var list = new List(); + var priceDict = new Dictionary(); + var addressList = items + .SelectMany(c => new[] { c.From, c.To }) + .Where(value => !string.IsNullOrEmpty(value)).Distinct().ToList(); + var contractInfoDict = await _genesisPluginProvider.GetContractListAsync(chainId, addressList); + foreach (var item in items) + { + var activityDto = _objectMapper.Map(item); + + activityDto.From = CommonAddressHelper.GetCommonAddress(item.From, + _globalOptions.CurrentValue.SideChainId, contractInfoDict, _globalOptions.CurrentValue.ContractNames); + + activityDto.To = CommonAddressHelper.GetCommonAddress(item.To, + _globalOptions.CurrentValue.SideChainId, contractInfoDict, _globalOptions.CurrentValue.ContractNames); + activityDto.Status = TransactionStatus.Mined; + var priceSymbol = activityDto.PriceSymbol; + if (!priceSymbol.IsNullOrEmpty()) + { + if (!priceDict.TryGetValue(priceSymbol, out var priceDto)) + { + priceDto = await _tokenPriceService.GetTokenPriceAsync(priceSymbol, + CurrencyConstant.UsdCurrency); + priceDict[priceSymbol] = priceDto; + } + + activityDto.PriceOfUsd = + Math.Round(activityDto.Price * priceDto.Price, CommonConstant.UsdPriceValueDecimals); + } + + activityDto.ChainIds = new List() { chainId }; + list.Add(activityDto); + } + + return list; + } + + [ExceptionHandler(typeof(Exception), + Message = "ConvertIndexerNftInventoryDtoAsync err", + TargetType = typeof(ExceptionHandlingService), + MethodName = nameof(ExceptionHandlingService.HandleException), ReturnDefault = ReturnDefault.New,LogTargets = ["tokenInfos","chainId"])] + public virtual async Task> ConvertIndexerNftInventoryDtoAsync( + List tokenInfos, string chainId) + { + var list = new List(); + if (tokenInfos.IsNullOrEmpty()) + { + return list; + } + + var priceDict = new Dictionary(); + var symbols = tokenInfos.Select(i => i.Symbol).Distinct().ToList(); + var itemInfosDict = tokenInfos.ToDictionary(i => i.Symbol, i => i); + //batch query symbol last sale info + var lastSaleInfoDict = await _nftInfoProvider.GetLatestPriceAsync(chainId, symbols); + foreach (var tokenInfo in tokenInfos) + { + var nftInventoryDto = + _objectMapper.Map(tokenInfo); + var symbol = nftInventoryDto.Item.Symbol; + if (itemInfosDict.TryGetValue(symbol, out var itemInfo)) + { + //handle image url + nftInventoryDto.Item.ImageUrl = TokenInfoHelper.GetImageUrl(itemInfo.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(symbol)); + } + + if (lastSaleInfoDict.TryGetValue(symbol, out var lastSaleInfo)) + { + var saleAmountSymbol = BaseConverter.OfSymbol(lastSaleInfo.PriceTokenInfo); + nftInventoryDto.LastTransactionId = lastSaleInfo.TransactionHash; + nftInventoryDto.BlockHeight = lastSaleInfo.BlockHeight; + //single price + nftInventoryDto.LastSalePrice = lastSaleInfo.Price; + nftInventoryDto.LastSaleAmount = lastSaleInfo.Amount; + nftInventoryDto.LastSaleAmountSymbol = saleAmountSymbol; + if (!saleAmountSymbol.IsNullOrEmpty()) + { + if (!priceDict.TryGetValue(saleAmountSymbol, out var priceDto)) + { + priceDto = await _tokenPriceService.GetTokenPriceAsync(saleAmountSymbol, + CurrencyConstant.UsdCurrency); + priceDict[saleAmountSymbol] = priceDto; + } + + nftInventoryDto.LastSalePriceInUsd = Math.Round(nftInventoryDto.LastSalePrice * priceDto.Price, + CommonConstant.UsdPriceValueDecimals); + } + } + + nftInventoryDto.ChainIds = new List() { _globalOptions.CurrentValue.SideChainId }; + list.Add(nftInventoryDto); + } + + return list; + + } + + + [ExceptionHandler(typeof(Exception), + Message = "ConvertMergeNftInventoryDtoAsync err", + TargetType = typeof(ExceptionHandlingService), + MethodName = nameof(ExceptionHandlingService.HandleException), ReturnDefault = ReturnDefault.New,LogTargets = ["tokenInfos"])] + public virtual async Task> ConvertMergeNftInventoryDtoAsync( + List tokenInfos) + { + var list = new List(); + if (tokenInfos.IsNullOrEmpty()) + { + return list; + } + + var priceDict = new Dictionary(); + var symbols = tokenInfos.Select(i => i.Symbol).Distinct().ToList(); + var itemInfosDict = tokenInfos.ToDictionary(i => i.Symbol, i => i); + //batch query symbol last sale info + var lastSaleInfoDict = + await _nftInfoProvider.GetLatestPriceAsync(_globalOptions.CurrentValue.SideChainId, symbols); + foreach (var tokenInfo in tokenInfos) + { + var nftInventoryDto = new NftInventoryDto(); + var symbol = tokenInfo.Symbol; + if (itemInfosDict.TryGetValue(symbol, out var itemInfo)) + { + nftInventoryDto.Item.ImageUrl = TokenInfoHelper.GetImageUrl(itemInfo.ExternalInfo, + () => _tokenInfoProvider.BuildImageUrl(symbol)); + } + + nftInventoryDto.Item.Symbol = tokenInfo.Symbol; + nftInventoryDto.Item.Name = tokenInfo.TokenName; + if (lastSaleInfoDict.TryGetValue(symbol, out var lastSaleInfo)) + { + var saleAmountSymbol = BaseConverter.OfSymbol(lastSaleInfo.PriceTokenInfo); + nftInventoryDto.LastTransactionId = lastSaleInfo.TransactionHash; + nftInventoryDto.BlockHeight = lastSaleInfo.BlockHeight; + //single price + nftInventoryDto.LastSalePrice = lastSaleInfo.Price; + nftInventoryDto.LastSaleAmount = lastSaleInfo.Amount; + nftInventoryDto.LastSaleAmountSymbol = saleAmountSymbol; + if (!saleAmountSymbol.IsNullOrEmpty()) + { + if (!priceDict.TryGetValue(saleAmountSymbol, out var priceDto)) + { + priceDto = await _tokenPriceService.GetTokenPriceAsync(saleAmountSymbol, + CurrencyConstant.UsdCurrency); + priceDict[saleAmountSymbol] = priceDto; + } + + nftInventoryDto.LastSalePriceInUsd = Math.Round(nftInventoryDto.LastSalePrice * priceDto.Price, + CommonConstant.UsdPriceValueDecimals); + } + } + + nftInventoryDto.ChainIds = new List() { _globalOptions.CurrentValue.SideChainId }; + list.Add(nftInventoryDto); + } + + + return list; + } + + private async Task> GetTokenDicAsync(List symbols, string chainId) + { + var input = new TokenListInput + { + ChainId = chainId, + Symbols = symbols + }; + var indexerTokenListDto = await _tokenIndexerProvider.GetTokenListAsync(input); + var tokenInfoDtoList = + _objectMapper.Map, List>(indexerTokenListDto.Items); + return tokenInfoDtoList.ToDictionary(token => token.Token.Symbol, token => token); + } + + private async Task> ConvertIndexerNftHolderInfoDtoAsync( + List indexerTokenHolderInfo, string chainId, string collectionSymbol) + { + var addressList = indexerTokenHolderInfo + .Where(value => !string.IsNullOrEmpty(value.Address)) + .Select(value => value.Address).Distinct().ToList(); + var getCollectionInfoTask = _tokenIndexerProvider.GetTokenDetailAsync(chainId, collectionSymbol); + + var contractInfoDictTask = _genesisPluginProvider.GetContractListAsync(chainId, addressList); + await Task.WhenAll(getCollectionInfoTask, contractInfoDictTask); + + var list = new List(); + var contractInfoDict = await contractInfoDictTask; + var tokenSupply = (await getCollectionInfoTask)[0].ItemCount; + + foreach (var indexerTokenHolderInfoDto in indexerTokenHolderInfo) + { + var tokenHolderInfoDto = + _objectMapper.Map(indexerTokenHolderInfoDto); + + tokenHolderInfoDto.Address = + CommonAddressHelper.GetCommonAddress(indexerTokenHolderInfoDto.Address, + indexerTokenHolderInfoDto.Metadata.ChainId, contractInfoDict, + _globalOptions.CurrentValue.ContractNames); + + if (tokenSupply != 0) + { + tokenHolderInfoDto.Percentage = + Math.Round(indexerTokenHolderInfoDto.FormatAmount / tokenSupply * 100, + CommonConstant.PercentageValueDecimals); + } + + tokenHolderInfoDto.ChainIds = new List() { indexerTokenHolderInfoDto.Metadata.ChainId }; + list.Add(tokenHolderInfoDto); + } + + return list; + } + + public async Task> GetCollectionSupplyAsync(string chainId, + List collectionSymbols) + { + var keyList = collectionSymbols.Select(o => GetCollectionItemsKey(chainId, o)).ToList(); + var keyValuePairs = await _distributedCache.GetManyAsync(keyList); + foreach (var collectionSymbol in collectionSymbols) + { + _ = SetCollectionItemAsync(chainId, collectionSymbol); + } + + return keyValuePairs.ToDictionary(o => o.Key.Split("_")[2], o => o.Value ?? "0"); + } + + private async Task> GetHolderInfoAsync(SymbolType symbolType, string chainId, string address) + { + var tokenHolderInput = new TokenHolderInput + { + Types = new List { symbolType }, + ChainId = chainId, + Address = address + }; + var indexerNftHolder = await _tokenIndexerProvider.GetTokenHolderInfoAsync(tokenHolderInput); + return indexerNftHolder.Items.Select(i => new HolderInfo + { + Balance = i.FormatAmount, + Symbol = i.Token.Symbol + }).ToList(); + } + + private async Task SetCollectionItemAsync(string chainId, string symbol) + { + var exist = _memoryCache.TryGetValue(GetCollectionItemsTimeKey(chainId, symbol), out var time); + if (exist) + { + return; + } + + var sumSupply = await QueryCollectionItem(chainId, symbol); + _logger.LogInformation("QueryCollectionItem {chainId} {symbol} value {exist}", chainId, symbol, exist); + await _distributedCache.SetAsync(GetCollectionItemsKey(chainId, symbol), + sumSupply.ToString(CultureInfo.InvariantCulture), + new DistributedCacheEntryOptions + { SlidingExpiration = null, AbsoluteExpiration = DateTimeOffset.MaxValue }); + await _memoryCache.GetOrCreateAsync( + GetCollectionItemsTimeKey(chainId, symbol), entry => + { + entry.SetSlidingExpiration(TimeSpan.FromMinutes(new Random().Next(3, 6))); + return Task.FromResult(DateTime.Now.ToString(CultureInfo.InvariantCulture)); + } + ); + _logger.LogInformation("GetOrCreateAsync {chainId} {symbol}", chainId, symbol); + } + + + private async Task QueryCollectionItem(string chainId, string symbol) + { + decimal sumSupply = 0; + var nftInput = new TokenListInput() + { + ChainId = chainId, Types = [SymbolType.Nft], + CollectionSymbols = [symbol], MaxResultCount = 1000, + OrderBy = "Symbol", Sort = "Desc" + }; + int count; + do + { + var nftListDto = await _tokenIndexerProvider.GetTokenListAsync(nftInput); + count = nftListDto.Items.Count; + if (!nftListDto.Items.IsNullOrEmpty()) + { + sumSupply += nftListDto.Items.Sum(token => DecimalHelper.Divide(token.Supply, token.Decimals)); + nftInput.SearchAfter = [nftListDto.Items [count + -1].Symbol]; + } + } while (count == MaxResultCount); + + return sumSupply; + } + + private string GetCollectionItemsKey(string chainId, string symbol) + { + return $"explore_{chainId}_{symbol}_collection_items"; + } + + private string GetCollectionItemsTimeKey(string chainId, string symbol) + { + return $"explore_{chainId}_{symbol}_collection_items_time"; + } +} \ No newline at end of file diff --git a/src/AElfScanServer.Application.Contracts/AElfScanServer.Application.Contracts.csproj b/src/AElfScanServer.Application.Contracts/AElfScanServer.Application.Contracts.csproj new file mode 100644 index 00000000..9cefaf40 --- /dev/null +++ b/src/AElfScanServer.Application.Contracts/AElfScanServer.Application.Contracts.csproj @@ -0,0 +1,28 @@ + + + + + + net8.0 + enable + AElfScanServer + + + + + + + + + + + + + + + + + + + + diff --git a/src/AElfScanServer.Application.Contracts/AElfScanServerApplicationContractsModule.cs b/src/AElfScanServer.Application.Contracts/AElfScanServerApplicationContractsModule.cs new file mode 100644 index 00000000..f44ea339 --- /dev/null +++ b/src/AElfScanServer.Application.Contracts/AElfScanServerApplicationContractsModule.cs @@ -0,0 +1,29 @@ +using AElfScanServer.Domain.Shared; +using Volo.Abp.Account; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; + +namespace AElfScanServer; + +[DependsOn( + typeof(AElfScanServerDomainSharedModule), + typeof(AbpAccountApplicationContractsModule), + typeof(AbpFeatureManagementApplicationContractsModule), + typeof(AbpIdentityApplicationContractsModule), + typeof(AbpPermissionManagementApplicationContractsModule), + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpTenantManagementApplicationContractsModule), + typeof(AbpObjectExtendingModule) +)] +public class AElfScanServerApplicationContractsModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + AElfScanServerDtoExtensions.Configure(); + } +} diff --git a/src/AElfScanServer.Application.Contracts/AElfScanServerDtoExtensions.cs b/src/AElfScanServer.Application.Contracts/AElfScanServerDtoExtensions.cs new file mode 100644 index 00000000..98f1aa74 --- /dev/null +++ b/src/AElfScanServer.Application.Contracts/AElfScanServerDtoExtensions.cs @@ -0,0 +1,28 @@ +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace AElfScanServer; + +public static class AElfScanServerDtoExtensions +{ + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + /* You can add extension properties to DTOs + * defined in the depended modules. + * + * Example: + * + * ObjectExtensionManager.Instance + * .AddOrUpdateProperty("Title"); + * + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Object-Extensions + */ + }); + } +} diff --git a/src/AElfScanServer.Application.Contracts/Permissions/AElfScanServerPermissionDefinitionProvider.cs b/src/AElfScanServer.Application.Contracts/Permissions/AElfScanServerPermissionDefinitionProvider.cs new file mode 100644 index 00000000..8654f545 --- /dev/null +++ b/src/AElfScanServer.Application.Contracts/Permissions/AElfScanServerPermissionDefinitionProvider.cs @@ -0,0 +1,20 @@ +using AElfScanServer.Domain.Shared.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; + +namespace AElfScanServer.Permissions; + +public class AElfScanServerPermissionDefinitionProvider : PermissionDefinitionProvider +{ + public override void Define(IPermissionDefinitionContext context) + { + var myGroup = context.AddGroup(AElfScanServerPermissions.GroupName); + //Define your own permissions here. Example: + //myGroup.AddPermission(AElfScanServerPermissions.MyPermission1, L("Permission:MyPermission1")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } +} diff --git a/src/AElfScanServer.Application.Contracts/Permissions/AElfScanServerPermissions.cs b/src/AElfScanServer.Application.Contracts/Permissions/AElfScanServerPermissions.cs new file mode 100644 index 00000000..c36bedaa --- /dev/null +++ b/src/AElfScanServer.Application.Contracts/Permissions/AElfScanServerPermissions.cs @@ -0,0 +1,9 @@ +namespace AElfScanServer.Permissions; + +public static class AElfScanServerPermissions +{ + public const string GroupName = "AElfScanServer"; + + //Add your own permission names. Example: + //public const string MyPermission1 = GroupName + ".MyPermission1"; +} diff --git a/src/AElfScanServer.Application/AElfScanServer.Application.csproj b/src/AElfScanServer.Application/AElfScanServer.Application.csproj new file mode 100644 index 00000000..8e147e1d --- /dev/null +++ b/src/AElfScanServer.Application/AElfScanServer.Application.csproj @@ -0,0 +1,27 @@ + + + + + + net8.0 + enable + AElfScanServer + + + + + + + + + + + + + + + + + + + diff --git a/src/AElfScanServer.Application/AElfScanServerAppService.cs b/src/AElfScanServer.Application/AElfScanServerAppService.cs new file mode 100644 index 00000000..8cafa566 --- /dev/null +++ b/src/AElfScanServer.Application/AElfScanServerAppService.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; +using AElfScanServer.Domain.Shared.Localization; +using Volo.Abp.Application.Services; + +namespace AElfScanServer; + +/* Inherit your application services from this class. + */ +public abstract class AElfScanServerAppService : ApplicationService +{ + protected AElfScanServerAppService() + { + LocalizationResource = typeof(AElfScanServerResource); + } +} diff --git a/src/AElfScanServer.Application/AElfScanServerApplicationAutoMapperProfile.cs b/src/AElfScanServer.Application/AElfScanServerApplicationAutoMapperProfile.cs new file mode 100644 index 00000000..19fa78cf --- /dev/null +++ b/src/AElfScanServer.Application/AElfScanServerApplicationAutoMapperProfile.cs @@ -0,0 +1,13 @@ +using AutoMapper; + +namespace AElfScanServer; + +public class AElfScanServerApplicationAutoMapperProfile : Profile +{ + public AElfScanServerApplicationAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } +} diff --git a/src/AElfScanServer.Application/AElfScanServerApplicationModule.cs b/src/AElfScanServer.Application/AElfScanServerApplicationModule.cs new file mode 100644 index 00000000..4b075cfc --- /dev/null +++ b/src/AElfScanServer.Application/AElfScanServerApplicationModule.cs @@ -0,0 +1,31 @@ +using Volo.Abp.Account; +using Volo.Abp.AutoMapper; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.TenantManagement; + +namespace AElfScanServer; + +[DependsOn( + typeof(AElfScanServerDomainModule), + typeof(AbpAccountApplicationModule), + typeof(AElfScanServerApplicationContractsModule), + typeof(AbpIdentityApplicationModule), + typeof(AbpPermissionManagementApplicationModule), + typeof(AbpTenantManagementApplicationModule), + typeof(AbpFeatureManagementApplicationModule), + typeof(AbpSettingManagementApplicationModule) + )] +public class AElfScanServerApplicationModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddMaps(); + }); + } +} diff --git a/src/AElfScanServer.Application/Properties/AssemblyInfo.cs b/src/AElfScanServer.Application/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..10e5a929 --- /dev/null +++ b/src/AElfScanServer.Application/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("AElfScanServer.Application.Tests")] diff --git a/src/AElfScanServer.AuthServer/AElfScanServer.AuthServer.csproj b/src/AElfScanServer.AuthServer/AElfScanServer.AuthServer.csproj new file mode 100644 index 00000000..9827885f --- /dev/null +++ b/src/AElfScanServer.AuthServer/AElfScanServer.AuthServer.csproj @@ -0,0 +1,71 @@ + + + + + + net8.0 + enable + AElfScanServer + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true + true + true + false + true + AElfScanServer-4681b4fd-151f-4221-84a4-929d86723e4c + + + + + + + + + + + + Always + + + Always + + + + + + + Always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ContentIncludedByDefault Remove="Pages\Index.cshtml" /> + <_ContentIncludedByDefault Remove="Pages\_ViewImports.cshtml" /> + + + diff --git a/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs b/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs new file mode 100644 index 00000000..9ba1669f --- /dev/null +++ b/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs @@ -0,0 +1,227 @@ +using System; +using System.IO; +using System.Linq; +using AElfScanServer.Domain.Shared; +using AElfScanServer.Domain.Shared.Localization; +using AElfScanServer.Domain.Shared.MultiTenancy; +using Localization.Resources.AbpUi; +using Medallion.Threading; +using Medallion.Threading.Redis; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Cors; +using Microsoft.AspNetCore.DataProtection; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using AElfScanServer.MongoDB; +using StackExchange.Redis; +using Volo.Abp; +using Volo.Abp.Account; +using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.Mvc.UI; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.AspNetCore.Serilog; +using Volo.Abp.Auditing; +using Volo.Abp.Autofac; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.Caching; +using Volo.Abp.Caching.StackExchangeRedis; +using Volo.Abp.DistributedLocking; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.OpenIddict; +using Volo.Abp.Security.Claims; +using Volo.Abp.UI.Navigation.Urls; +using Volo.Abp.UI; +using Volo.Abp.VirtualFileSystem; +using Volo.Abp.Account.Localization; +using Volo.Abp.Data; + +namespace AElfScanServer; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(AbpCachingStackExchangeRedisModule), + typeof(AbpDistributedLockingModule), + typeof(AbpAccountWebOpenIddictModule), + typeof(AbpAccountApplicationModule), + typeof(AbpAccountHttpApiModule), + typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule), + typeof(AElfScanServerMongoDbModule), + typeof(AbpAspNetCoreSerilogModule) +)] +public class AElfScanServerAuthServerModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + + PreConfigure(builder => + { + builder.AddServer(options => + { + options.AllowClientCredentialsFlow(); + options.UseAspNetCore().DisableTransportSecurityRequirement(); + options.SetIssuer(new Uri(configuration["AuthServer:IssuerUri"])); + }); + builder.AddValidation(options => + { + options.AddAudiences("AElfScanServer"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); + + PreConfigure(builder => { builder.Configure(openIddictServerOptions => { openIddictServerOptions.GrantTypes.Add("login_credentials"); }); }); + // + // if (!hostingEnvironment.IsDevelopment()) + // { + // PreConfigure(options => + // { + // options.AddDevelopmentEncryptionAndSigningCertificate = false; + // }); + // + // PreConfigure(serverBuilder => + // { + // serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", + // "ef404633-6a12-412b-ad69-6df1c6be4aeb"); + // }); + // } + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource), + typeof(AccountResource) + ); + }); + + Configure(options => + { + options.StyleBundles.Configure( + LeptonXLiteThemeBundles.Styles.Global, + bundle => { bundle.AddFiles("/global-styles.css"); } + ); + }); + + Configure(options => + { + //options.IsEnabledForGetRequests = true; + options.ApplicationName = "AuthServer"; + }); + + if (hostingEnvironment.IsDevelopment()) + { + Configure(options => + { + options.FileSets.ReplaceEmbeddedByPhysical( + Path.Combine(hostingEnvironment.ContentRootPath, + $"..{Path.DirectorySeparatorChar}AElfScanServer.Domain.Shared")); + options.FileSets.ReplaceEmbeddedByPhysical( + Path.Combine(hostingEnvironment.ContentRootPath, + $"..{Path.DirectorySeparatorChar}AElfScanServer.Domain")); + }); + } + + Configure(options => + { + options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; + options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? + Array.Empty()); + + options.Applications["Angular"].RootUrl = configuration["App:ClientUrl"]; + options.Applications["Angular"].Urls[AccountUrlNames.PasswordReset] = "account/reset-password"; + }); + + Configure(options => { options.IsJobExecutionEnabled = false; }); + + Configure(options => { options.KeyPrefix = "AElfScanServer:"; }); + + var dataProtectionBuilder = context.Services.AddDataProtection().SetApplicationName("AElfScanServer"); + if (!hostingEnvironment.IsDevelopment()) + { + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!); + dataProtectionBuilder.PersistKeysToStackExchangeRedis(redis, "AElfScanServer-Protection-Keys"); + } + + context.Services.AddSingleton(sp => + { + var connection = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]!); + return new RedisDistributedSynchronizationProvider(connection.GetDatabase()); + }); + + context.Services.AddCors(options => + { + options.AddDefaultPolicy(builder => + { + builder + .WithOrigins( + configuration["App:CorsOrigins"]? + .Split(",", StringSplitOptions.RemoveEmptyEntries) + .Select(o => o.RemovePostFix("/")) + .ToArray() ?? Array.Empty() + ) + .WithAbpExposedHeaders() + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); + + context.Services.Configure(options => + { + options.IsDynamicClaimsEnabled = true; + }); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + var env = context.GetEnvironment(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseAbpRequestLocalization(); + + if (!env.IsDevelopment()) + { + app.UseErrorPage(); + } + + app.UseCorrelationId(); + app.UseStaticFiles(); + app.UseRouting(); + app.UseCors(); + app.UseAuthentication(); + app.UseAbpOpenIddictValidation(); + + if (MultiTenancyConsts.IsEnabled) + { + app.UseMultiTenancy(); + } + + app.UseUnitOfWork(); + // app.UseDynamicClaims(); + app.UseAuthorization(); + + app.UseAuditing(); + app.UseAbpSerilogEnrichers(); + app.UseConfiguredEndpoints(); + } +} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/AElfScanServerBrandingProvider.cs b/src/AElfScanServer.AuthServer/AElfScanServerBrandingProvider.cs new file mode 100644 index 00000000..16e0cad9 --- /dev/null +++ b/src/AElfScanServer.AuthServer/AElfScanServerBrandingProvider.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Ui.Branding; +using Volo.Abp.DependencyInjection; + +namespace AElfScanServer; + +[Dependency(ReplaceServices = true)] +public class AElfScanServerBrandingProvider : DefaultBrandingProvider +{ + public override string AppName => "AElfScanServer"; +} diff --git a/src/AElfScanServer.AuthServer/Logs/logs.txt b/src/AElfScanServer.AuthServer/Logs/logs.txt new file mode 100644 index 00000000..7fed4759 --- /dev/null +++ b/src/AElfScanServer.AuthServer/Logs/logs.txt @@ -0,0 +1,8181 @@ +2024-08-15 13:48:26.008 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-15 13:48:27.692 +08:00 [INF] Loaded ABP modules: +2024-08-15 13:48:27.693 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-15 13:48:27.693 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - AElfScanServer.AElfScanServerDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.OpenIddict.AbpPermissionManagementDomainOpenIddictModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-15 13:48:27.693 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-15 13:48:27.851 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-15 13:48:28.165 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-15 13:48:28.271 +08:00 [INF] Initialized all ABP modules. +2024-08-15 13:48:28.484 +08:00 [INF] Now listening on: https://localhost:44336 +2024-08-15 13:48:28.484 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-15 13:48:28.484 +08:00 [INF] Hosting environment: Development +2024-08-15 13:48:28.484 +08:00 [INF] Content root path: /Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer +2024-08-15 13:48:28.623 +08:00 [ERR] This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. +MongoDB.Driver.MongoCommandException: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. + ---> MongoDB.Driver.MongoCommandException: Command aggregate failed: Transaction numbers are only allowed on a replica set member or mongos. + --- End of inner exception stack trace --- + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) + at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) + at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExecutableQuery`3.ExecuteAsync(IClientSessionHandle session, CancellationToken cancellationToken) + at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) + at Volo.Abp.Domain.Repositories.MongoDB.MongoDbRepository`2.GetListAsync(Boolean includeDetails, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.PermissionManagement.StaticPermissionSaver.UpdateChangedPermissionGroupsAsync(IEnumerable`1 permissionGroupRecords) + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.StaticPermissionSaver.SaveAsync() + at Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule.<>c__DisplayClass8_0.<b__1>d.MoveNext() +2024-08-15 13:48:28.623 +08:00 [ERR] This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. +MongoDB.Driver.MongoCommandException: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. + ---> MongoDB.Driver.MongoCommandException: Command aggregate failed: Transaction numbers are only allowed on a replica set member or mongos. + --- End of inner exception stack trace --- + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) + at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) + at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExecutableQuery`3.ExecuteAsync(IClientSessionHandle session, CancellationToken cancellationToken) + at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) + at Volo.Abp.Domain.Repositories.MongoDB.MongoDbRepository`2.GetListAsync(Boolean includeDetails, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.FeatureManagement.StaticFeatureSaver.UpdateChangedFeatureGroupsAsync(IEnumerable`1 featureGroupRecords) + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.StaticFeatureSaver.SaveAsync() + at Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule.<>c__DisplayClass8_0.<b__1>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.AsyncPolicy.<>c__DisplayClass40_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext) +2024-08-15 13:48:28.624 +08:00 [ERR] This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. +MongoDB.Driver.MongoCommandException: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. + ---> MongoDB.Driver.MongoCommandException: Command aggregate failed: Transaction numbers are only allowed on a replica set member or mongos. + --- End of inner exception stack trace --- + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) + at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) + at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExecutableQuery`3.ExecuteAsync(IClientSessionHandle session, CancellationToken cancellationToken) + at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) + at Volo.Abp.Domain.Repositories.MongoDB.MongoDbRepository`2.GetListAsync(Boolean includeDetails, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.StaticSettingSaver.UpdateChangedSettingsAsync(List`1 SettingRecords) + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Volo.Abp.SettingManagement.StaticSettingSaver.SaveAsync() + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.SettingManagement.AbpSettingManagementDomainModule.<>c__DisplayClass8_0.<b__1>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.AsyncPolicy.<>c__DisplayClass40_0.<b__0>d.MoveNext() +--- End of stack trace from previous location --- + at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext) +2024-08-15 13:48:29.169 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/ - null null +2024-08-15 13:48:31.925 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:31.934 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:31.936 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:31.937 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:31.937 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:31.945 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:31.946 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:31.946 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:31.947 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:31.949 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:31.951 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:31.951 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:31.951 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:32.212 +08:00 [INF] Executing endpoint '/Index' +2024-08-15 13:48:32.224 +08:00 [INF] Route matched with {page = "/Index", area = "", action = "", controller = ""}. Executing page /Index +2024-08-15 13:48:32.225 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-15 13:48:32.264 +08:00 [INF] Executing handler method AElfScanServer.Pages.IndexModel.OnGetAsync - ModelState is "Valid" +2024-08-15 13:48:32.314 +08:00 [INF] Executed handler method OnGetAsync, returned result . +2024-08-15 13:48:32.317 +08:00 [INF] Executing an implicit handler method - ModelState is "Valid" +2024-08-15 13:48:32.317 +08:00 [INF] Executed an implicit handler method, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2024-08-15 13:48:32.597 +08:00 [DBG] Added bundle 'LeptonXLite.Global' to the page in 27.68 ms. +2024-08-15 13:48:32.635 +08:00 [DBG] Added bundle 'LeptonXLite.Global' to the page in 14.29 ms. +2024-08-15 13:48:32.665 +08:00 [INF] Executed page /Index in 436.4784ms +2024-08-15 13:48:32.666 +08:00 [INF] Executed endpoint '/Index' +2024-08-15 13:48:32.687 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/core/abp.css?_v=638592886740000000 - null null +2024-08-15 13:48:32.689 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/bootstrap-dim.css?_v=638550048240000000 - null null +2024-08-15 13:48:32.690 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/@fortawesome/fontawesome-free/css/all.css?_v=638592886740000000 - null null +2024-08-15 13:48:32.690 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/@fortawesome/fontawesome-free/css/v4-shims.css?_v=638592886740000000 - null null +2024-08-15 13:48:32.690 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/toastr/toastr.min.css?_v=638560452480000000 - null null +2024-08-15 13:48:32.692 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/select2/css/select2.min.css?_v=638560452460000000 - null null +2024-08-15 13:48:32.694 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css?_v=638560452470000000 - null null +2024-08-15 13:48:32.699 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/bootstrap-datepicker/bootstrap-datepicker.min.css?_v=638560452450000000 - null null +2024-08-15 13:48:32.699 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/datatables.net-bs5/css/dataTables.bootstrap5.css?_v=638560452460000000 - null null +2024-08-15 13:48:32.701 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/bootstrap-daterangepicker/daterangepicker.css?_v=638560452450000000 - null null +2024-08-15 13:48:32.701 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/js-bundle.css?_v=638550048240000000 - null null +2024-08-15 13:48:32.701 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-styles.css?_v=638592122120000000 - null null +2024-08-15 13:48:32.701 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-styles.css?_v=638592122120000000 - null null +2024-08-15 13:48:32.702 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/abp-bundle.css?_v=638550048240000000 - null null +2024-08-15 13:48:32.702 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/layout-bundle.css?_v=638550048240000000 - null null +2024-08-15 13:48:32.702 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/font-bundle.css?_v=638550048240000000 - null null +2024-08-15 13:48:32.702 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/libs/bootstrap-icons/font/bootstrap-icons.css?_v=638550048240000000 - null null +2024-08-15 13:48:32.702 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-styles.css'. Physical path: 'N/A' +2024-08-15 13:48:32.702 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-styles.css'. Physical path: 'N/A' +2024-08-15 13:48:32.702 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/css/font-bundle.css'. Physical path: 'N/A' +2024-08-15 13:48:32.702 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/css/abp-bundle.css'. Physical path: 'N/A' +2024-08-15 13:48:32.702 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/images/clients/angular.svg - null null +2024-08-15 13:48:32.702 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/global-styles.css?_v=638592883640000000 - null null +2024-08-15 13:48:32.702 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-styles.css?_v=638592122120000000 - 200 338 text/css 1.1289ms +2024-08-15 13:48:32.702 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/abp-bundle.css?_v=638550048240000000 - 200 3385 text/css 0.77ms +2024-08-15 13:48:32.702 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/font-bundle.css?_v=638550048240000000 - 200 48 text/css 0.426ms +2024-08-15 13:48:32.702 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-styles.css?_v=638592122120000000 - 200 266 text/css 1.1937ms +2024-08-15 13:48:32.703 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/images/clients/swagger.svg - null null +2024-08-15 13:48:32.705 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/ - 200 null text/html; charset=utf-8 3536.8197ms +2024-08-15 13:48:32.705 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.705 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:32.706 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:32.707 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.708 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.708 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:32.709 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:32.709 +08:00 [INF] Sending file. Request path: '/libs/abp/core/abp.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.css' +2024-08-15 13:48:32.709 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/core/abp.css?_v=638592886740000000 - 200 1331 text/css 22.6654ms +2024-08-15 13:48:32.709 +08:00 [INF] Sending file. Request path: '/libs/select2/css/select2.min.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/select2/css/select2.min.css' +2024-08-15 13:48:32.710 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/select2/css/select2.min.css?_v=638560452460000000 - 200 14966 text/css 17.1206ms +2024-08-15 13:48:32.710 +08:00 [INF] Sending file. Request path: '/global-styles.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/global-styles.css' +2024-08-15 13:48:32.710 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/global-styles.css?_v=638592883640000000 - 200 186 text/css 8.1498ms +2024-08-15 13:48:32.711 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/images/clients/swagger.svg - 404 0 null 8.7907ms +2024-08-15 13:48:32.712 +08:00 [INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44336/images/clients/swagger.svg, Response status code: 404 +2024-08-15 13:48:32.713 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/images/clients/angular.svg - 404 0 null 10.2917ms +2024-08-15 13:48:32.713 +08:00 [INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44336/images/clients/angular.svg, Response status code: 404 +2024-08-15 13:48:32.715 +08:00 [INF] Sending file. Request path: '/libs/bootstrap-datepicker/bootstrap-datepicker.min.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css' +2024-08-15 13:48:32.715 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/bootstrap-datepicker/bootstrap-datepicker.min.css?_v=638560452450000000 - 200 15733 text/css 15.926ms +2024-08-15 13:48:32.716 +08:00 [INF] Sending file. Request path: '/libs/datatables.net-bs5/css/dataTables.bootstrap5.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css' +2024-08-15 13:48:32.716 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/datatables.net-bs5/css/dataTables.bootstrap5.css?_v=638560452460000000 - 200 13900 text/css 16.396ms +2024-08-15 13:48:32.716 +08:00 [INF] Sending file. Request path: '/libs/bootstrap-daterangepicker/daterangepicker.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css' +2024-08-15 13:48:32.716 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/bootstrap-daterangepicker/daterangepicker.css?_v=638560452450000000 - 200 8069 text/css 14.7334ms +2024-08-15 13:48:32.716 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/css/layout-bundle.css'. Physical path: 'N/A' +2024-08-15 13:48:32.716 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/layout-bundle.css?_v=638550048240000000 - 200 25953 text/css 14.3071ms +2024-08-15 13:48:32.716 +08:00 [INF] Sending file. Request path: '/libs/toastr/toastr.min.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/toastr/toastr.min.css' +2024-08-15 13:48:32.716 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/css/js-bundle.css'. Physical path: 'N/A' +2024-08-15 13:48:32.716 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/toastr/toastr.min.css?_v=638560452480000000 - 200 6454 text/css 25.95ms +2024-08-15 13:48:32.716 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/js-bundle.css?_v=638550048240000000 - 200 27971 text/css 14.85ms +2024-08-15 13:48:32.718 +08:00 [INF] Sending file. Request path: '/libs/@fortawesome/fontawesome-free/css/v4-shims.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css' +2024-08-15 13:48:32.718 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/@fortawesome/fontawesome-free/css/v4-shims.css?_v=638592886740000000 - 200 41574 text/css 27.9795ms +2024-08-15 13:48:32.718 +08:00 [INF] Sending file. Request path: '/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css' +2024-08-15 13:48:32.718 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css?_v=638560452470000000 - 200 54850 text/css 24.3163ms +2024-08-15 13:48:32.718 +08:00 [INF] Sending file. Request path: '/libs/@fortawesome/fontawesome-free/css/all.css'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css' +2024-08-15 13:48:32.718 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/@fortawesome/fontawesome-free/css/all.css?_v=638592886740000000 - 200 132658 text/css 28.6326ms +2024-08-15 13:48:32.720 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/libs/bootstrap-icons/font/bootstrap-icons.css'. Physical path: 'N/A' +2024-08-15 13:48:32.721 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/libs/bootstrap-icons/font/bootstrap-icons.css?_v=638550048240000000 - 200 74827 text/css 18.5692ms +2024-08-15 13:48:32.721 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/css/bootstrap-dim.css'. Physical path: 'N/A' +2024-08-15 13:48:32.721 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/css/bootstrap-dim.css?_v=638550048240000000 - 200 262392 text/css 32.0032ms +2024-08-15 13:48:32.742 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/utils/abp-utils.umd.min.js?_v=638592886070000000 - null null +2024-08-15 13:48:32.745 +08:00 [INF] Sending file. Request path: '/libs/abp/utils/abp-utils.umd.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js' +2024-08-15 13:48:32.745 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/utils/abp-utils.umd.min.js?_v=638592886070000000 - 200 8256 application/javascript 2.9188ms +2024-08-15 13:48:32.746 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/core/abp.js?_v=638592886740000000 - null null +2024-08-15 13:48:32.746 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/jquery/abp.jquery.js?_v=638592886740000000 - null null +2024-08-15 13:48:32.746 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/jquery/jquery.js?_v=638560452460000000 - null null +2024-08-15 13:48:32.748 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/bootstrap/js/bootstrap.bundle.js?_v=638560452460000000 - null null +2024-08-15 13:48:32.748 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/lodash/lodash.min.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.748 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/jquery-validation/jquery.validate.js?_v=638592886740000000 - null null +2024-08-15 13:48:32.748 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js?_v=638560452450000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/jquery-form/jquery.form.min.js?_v=638592886740000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/select2/js/select2.min.js?_v=638560452460000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/datatables.net/js/jquery.dataTables.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/datatables.net-bs5/js/dataTables.bootstrap5.js?_v=638560452460000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/sweetalert2/sweetalert2.all.min.js?_v=638592886740000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/toastr/toastr.min.js?_v=638560452480000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/timeago/jquery.timeago.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.749 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/luxon/abp.luxon.js?_v=638592886730000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/moment/moment.min.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/bootstrap-daterangepicker/daterangepicker.js?_v=638560452450000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/luxon/luxon.min.js?_v=638560452480000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery-form/jquery-form-extensions.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/bootstrap-datepicker/bootstrap-datepicker.min.js?_v=638560452450000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery-form/jquery-form-extensions.js'. Physical path: 'N/A' +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/widget-manager.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Sending file. Request path: '/libs/abp/luxon/abp.luxon.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/abp/luxon/abp.luxon.js' +2024-08-15 13:48:32.750 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery-form/jquery-form-extensions.js?_v=638592122120000000 - 200 3605 application/javascript 0.438ms +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/luxon/abp.luxon.js?_v=638592886730000000 - 200 1361 application/javascript 0.9293ms +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/toastr/abp-toastr.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.750 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/authentication-state/authentication-state-listener.js?_v=638592122120000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Pages/Abp/MultiTenancy/tenant-switch.js?_v=638549833820000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/toastr/abp-toastr.js'. Physical path: 'N/A' +2024-08-15 13:48:32.751 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/authentication-state/authentication-state-listener.js'. Physical path: 'N/A' +2024-08-15 13:48:32.751 +08:00 [INF] Sending file. Request path: '/Pages/Abp/MultiTenancy/tenant-switch.js'. Physical path: 'N/A' +2024-08-15 13:48:32.751 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Pages/Abp/MultiTenancy/tenant-switch.js?_v=638549833820000000 - 200 414 application/javascript 0.2281ms +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/js/lepton-x.bundle.min.js?_v=638550048240000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/scripts/leptonx-mvc-ui-initializer.js?_v=638550048240000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/scripts/leptonx-mvc-ui-initializer.js'. Physical path: 'N/A' +2024-08-15 13:48:32.751 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/scripts/leptonx-mvc-ui-initializer.js?_v=638550048240000000 - 200 143 application/javascript 0.2615ms +2024-08-15 13:48:32.751 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/authentication-state/authentication-state-listener.js?_v=638592122120000000 - 200 776 application/javascript 0.8182ms +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/jquery-validation/localization/messages_zh.js?_v=638592886740000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/timeago/locales/jquery.timeago.zh-CN.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/toastr/abp-toastr.js?_v=638592122120000000 - 200 951 application/javascript 0.9783ms +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js?_v=638560452450000000 - null null +2024-08-15 13:48:32.751 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/moment/locale/zh-cn.js?_v=638560452470000000 - null null +2024-08-15 13:48:32.752 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js'. Physical path: 'N/A' +2024-08-15 13:48:32.752 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/sweetalert2/abp-sweetalert2.js?_v=638592122120000000 - 200 3680 application/javascript 1.2529ms +2024-08-15 13:48:32.752 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Abp/ApplicationLocalizationScript?cultureName=zh-Hans - null null +2024-08-15 13:48:32.752 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Abp/ApplicationConfigurationScript - null null +2024-08-15 13:48:32.752 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Abp/ServiceProxyScript - null null +2024-08-15 13:48:32.752 +08:00 [INF] Sending file. Request path: '/libs/jquery-validation/localization/messages_zh.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/jquery-validation/localization/messages_zh.js' +2024-08-15 13:48:32.752 +08:00 [INF] Sending file. Request path: '/libs/timeago/locales/jquery.timeago.zh-CN.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/timeago/locales/jquery.timeago.zh-CN.js' +2024-08-15 13:48:32.752 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/jquery-validation/localization/messages_zh.js?_v=638592886740000000 - 200 1401 application/javascript 0.5354ms +2024-08-15 13:48:32.752 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/timeago/locales/jquery.timeago.zh-CN.js?_v=638560452470000000 - 200 759 application/javascript 0.6899ms +2024-08-15 13:48:32.752 +08:00 [INF] Sending file. Request path: '/libs/abp/jquery/abp.jquery.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/abp/jquery/abp.jquery.js' +2024-08-15 13:48:32.752 +08:00 [INF] Sending file. Request path: '/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js' +2024-08-15 13:48:32.752 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js?_v=638560452450000000 - 200 613 application/javascript 0.8776ms +2024-08-15 13:48:32.753 +08:00 [INF] Sending file. Request path: '/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js' +2024-08-15 13:48:32.753 +08:00 [INF] Sending file. Request path: '/libs/datatables.net-bs5/js/dataTables.bootstrap5.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/datatables.net-bs5/js/dataTables.bootstrap5.js' +2024-08-15 13:48:32.753 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/jquery/abp.jquery.js?_v=638592886740000000 - 200 13489 application/javascript 5.9451ms +2024-08-15 13:48:32.753 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/datatables.net-bs5/js/dataTables.bootstrap5.js?_v=638560452460000000 - 200 5282 application/javascript 4.1972ms +2024-08-15 13:48:32.753 +08:00 [INF] Sending file. Request path: '/libs/toastr/toastr.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/toastr/toastr.min.js' +2024-08-15 13:48:32.753 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/toastr/toastr.min.js?_v=638560452480000000 - 200 5251 application/javascript 4.2425ms +2024-08-15 13:48:32.754 +08:00 [INF] Sending file. Request path: '/libs/jquery-form/jquery.form.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/jquery-form/jquery.form.min.js' +2024-08-15 13:48:32.754 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/jquery-form/jquery.form.min.js?_v=638592886740000000 - 200 17239 application/javascript 5.6114ms +2024-08-15 13:48:32.755 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js'. Physical path: 'N/A' +2024-08-15 13:48:32.755 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js?_v=638592122120000000 - 200 5965 application/javascript 5.7506ms +2024-08-15 13:48:32.755 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js'. Physical path: 'N/A' +2024-08-15 13:48:32.755 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/ui-extensions.js?_v=638592122120000000 - 200 10589 application/javascript 5.1822ms +2024-08-15 13:48:32.755 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/widget-manager.js'. Physical path: 'N/A' +2024-08-15 13:48:32.756 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/widget-manager.js?_v=638592122120000000 - 200 4790 application/javascript 5.7068ms +2024-08-15 13:48:32.756 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js?_v=638560452450000000 - 200 19798 application/javascript 4.5177ms +2024-08-15 13:48:32.756 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js'. Physical path: 'N/A' +2024-08-15 13:48:32.756 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js'. Physical path: 'N/A' +2024-08-15 13:48:32.756 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js?_v=638592122120000000 - 200 22351 application/javascript 5.3027ms +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.756 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js'. Physical path: 'N/A' +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:32.756 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/dom-event-handlers.js?_v=638592122120000000 - 200 9938 application/javascript 6.209ms +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:32.756 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.757 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:32.756 +08:00 [INF] Sending file. Request path: '/libs/timeago/jquery.timeago.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/timeago/jquery.timeago.js' +2024-08-15 13:48:32.757 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/timeago/jquery.timeago.js?_v=638560452470000000 - 200 7404 application/javascript 7.4677ms +2024-08-15 13:48:32.757 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/bootstrap/modal-manager.js?_v=638592122120000000 - 200 8329 application/javascript 7.0333ms +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.757 +08:00 [INF] Sending file. Request path: '/libs/moment/locale/zh-cn.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/moment/locale/zh-cn.js' +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:32.757 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/moment/locale/zh-cn.js?_v=638560452470000000 - 200 4507 application/javascript 5.5906ms +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.757 +08:00 [INF] Sending file. Request path: '/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js'. Physical path: 'N/A' +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:32.757 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/aspnetcore-mvc-ui-theme-shared/date-range-picker/date-range-picker-extensions.js?_v=638592122120000000 - 200 29160 application/javascript 6.7811ms +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:32.757 +08:00 [INF] Sending file. Request path: '/libs/abp/core/abp.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.js' +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:32.757 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/abp/core/abp.js?_v=638592886740000000 - 200 25156 application/javascript 11.545ms +2024-08-15 13:48:32.757 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/js/lepton-x.bundle.min.js'. Physical path: 'N/A' +2024-08-15 13:48:32.757 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/js/lepton-x.bundle.min.js?_v=638550048240000000 - 200 31189 application/javascript 6.5057ms +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.757 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.757 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:32.758 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:32.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:32.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:32.760 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:32.761 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.761 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:32.762 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:32.763 +08:00 [INF] Sending file. Request path: '/libs/bootstrap-datepicker/bootstrap-datepicker.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js' +2024-08-15 13:48:32.763 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/bootstrap-datepicker/bootstrap-datepicker.min.js?_v=638560452450000000 - 200 33871 application/javascript 13.9326ms +2024-08-15 13:48:32.764 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:32.764 +08:00 [INF] Sending file. Request path: '/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js' +2024-08-15 13:48:32.764 +08:00 [INF] Sending file. Request path: '/libs/jquery-validation/jquery.validate.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/jquery-validation/jquery.validate.js' +2024-08-15 13:48:32.764 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.concat.min.js?_v=638560452470000000 - 200 45483 application/javascript 15.0097ms +2024-08-15 13:48:32.764 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/jquery-validation/jquery.validate.js?_v=638592886740000000 - 200 52536 application/javascript 16.1476ms +2024-08-15 13:48:32.765 +08:00 [INF] Sending file. Request path: '/libs/moment/moment.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/moment/moment.min.js' +2024-08-15 13:48:32.765 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/moment/moment.min.js?_v=638560452470000000 - 200 58890 application/javascript 15.1522ms +2024-08-15 13:48:32.765 +08:00 [INF] Sending file. Request path: '/libs/bootstrap-daterangepicker/daterangepicker.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js' +2024-08-15 13:48:32.765 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/bootstrap-daterangepicker/daterangepicker.js?_v=638560452450000000 - 200 67842 application/javascript 15.6932ms +2024-08-15 13:48:32.765 +08:00 [INF] Sending file. Request path: '/libs/lodash/lodash.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/lodash/lodash.min.js' +2024-08-15 13:48:32.765 +08:00 [INF] Sending file. Request path: '/libs/select2/js/select2.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/select2/js/select2.min.js' +2024-08-15 13:48:32.765 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/lodash/lodash.min.js?_v=638560452470000000 - 200 73015 application/javascript 17.6813ms +2024-08-15 13:48:32.765 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/select2/js/select2.min.js?_v=638560452460000000 - 200 70851 application/javascript 16.8234ms +2024-08-15 13:48:32.766 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:32.766 +08:00 [INF] Sending file. Request path: '/libs/luxon/luxon.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/luxon/luxon.min.js' +2024-08-15 13:48:32.766 +08:00 [INF] Sending file. Request path: '/libs/sweetalert2/sweetalert2.all.min.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/sweetalert2/sweetalert2.all.min.js' +2024-08-15 13:48:32.766 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/sweetalert2/sweetalert2.all.min.js?_v=638592886740000000 - 200 77219 application/javascript 16.9472ms +2024-08-15 13:48:32.766 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/luxon/luxon.min.js?_v=638560452480000000 - 200 71248 application/javascript 16.5192ms +2024-08-15 13:48:32.770 +08:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationConfigurationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.ActionResult] Get() on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController (Volo.Abp.AspNetCore.Mvc). +2024-08-15 13:48:32.778 +08:00 [INF] Sending file. Request path: '/libs/bootstrap/js/bootstrap.bundle.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/js/bootstrap.bundle.js' +2024-08-15 13:48:32.779 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/bootstrap/js/bootstrap.bundle.js?_v=638560452460000000 - 200 207819 application/javascript 30.8665ms +2024-08-15 13:48:32.781 +08:00 [INF] Sending file. Request path: '/libs/jquery/jquery.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/jquery/jquery.js' +2024-08-15 13:48:32.782 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/jquery/jquery.js?_v=638560452460000000 - 200 285314 application/javascript 35.223ms +2024-08-15 13:48:32.782 +08:00 [INF] Sending file. Request path: '/libs/datatables.net/js/jquery.dataTables.js'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/datatables.net/js/jquery.dataTables.js' +2024-08-15 13:48:32.782 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/datatables.net/js/jquery.dataTables.js?_v=638560452470000000 - 200 457711 application/javascript 33.1847ms +2024-08-15 13:48:32.783 +08:00 [INF] Route matched with {area = "Abp", action = "GetAll", controller = "AbpServiceProxyScript", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult GetAll(Volo.Abp.AspNetCore.Mvc.ProxyScripting.ServiceProxyGenerationModel) on controller Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController (Volo.Abp.AspNetCore.Mvc). +2024-08-15 13:48:32.783 +08:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationLocalizationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.ActionResult] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto) on controller Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController (Volo.Abp.AspNetCore.Mvc). +2024-08-15 13:48:32.850 +08:00 [DBG] Executing AbpApplicationConfigurationAppService.GetAsync()... +2024-08-15 13:48:32.853 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.RegisterAsyncByInput +2024-08-15 13:48:32.858 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.SendPasswordResetCodeAsyncByInput +2024-08-15 13:48:32.859 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.VerifyPasswordResetTokenAsyncByInput +2024-08-15 13:48:32.859 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.ResetPasswordAsyncByInput +2024-08-15 13:48:32.860 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.LoginByLogin +2024-08-15 13:48:32.860 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.Logout +2024-08-15 13:48:32.860 +08:00 [DBG] ActionApiDescriptionModel.Create: Account.CheckPasswordByLogin +2024-08-15 13:48:32.861 +08:00 [DBG] ActionApiDescriptionModel.Create: DynamicClaims.RefreshAsync +2024-08-15 13:48:32.862 +08:00 [DBG] ActionApiDescriptionModel.Create: Profile.GetAsync +2024-08-15 13:48:32.862 +08:00 [DBG] ActionApiDescriptionModel.Create: Profile.UpdateAsyncByInput +2024-08-15 13:48:32.862 +08:00 [DBG] ActionApiDescriptionModel.Create: Profile.ChangePasswordAsyncByInput +2024-08-15 13:48:32.862 +08:00 [DBG] ActionApiDescriptionModel.Create: AbpTenant.FindTenantByNameAsyncByName +2024-08-15 13:48:32.862 +08:00 [DBG] ActionApiDescriptionModel.Create: AbpTenant.FindTenantByIdAsyncById +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityRole.GetAllListAsync +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityRole.GetListAsyncByInput +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityRole.GetAsyncById +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityRole.CreateAsyncByInput +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityRole.UpdateAsyncByIdAndInput +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityRole.DeleteAsyncById +2024-08-15 13:48:32.863 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.GetAsyncById +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.GetListAsyncByInput +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.CreateAsyncByInput +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.UpdateAsyncByIdAndInput +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.DeleteAsyncById +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.GetRolesAsyncById +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.GetAssignableRolesAsync +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.UpdateRolesAsyncByIdAndInput +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.FindByUsernameAsyncByUserName +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUser.FindByEmailAsyncByEmail +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUserLookup.FindByIdAsyncById +2024-08-15 13:48:32.864 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUserLookup.FindByUserNameAsyncByUserName +2024-08-15 13:48:32.865 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUserLookup.SearchAsyncByInput +2024-08-15 13:48:32.865 +08:00 [DBG] ActionApiDescriptionModel.Create: IdentityUserLookup.GetCountAsyncByInput +2024-08-15 13:48:32.865 +08:00 [DBG] ActionApiDescriptionModel.Create: AbpApplicationConfiguration.GetAsyncByOptions +2024-08-15 13:48:32.865 +08:00 [DBG] ActionApiDescriptionModel.Create: AbpApplicationLocalization.GetAsyncByInput +2024-08-15 13:48:32.865 +08:00 [DBG] ActionApiDescriptionModel.Create: AbpApiDefinition.GetByModel +2024-08-15 13:48:32.883 +08:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript +2024-08-15 13:48:32.886 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc) in 102.4472ms +2024-08-15 13:48:32.886 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:32.886 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Abp/ServiceProxyScript - 200 6240 application/javascript 134.5827ms +2024-08-15 13:48:32.888 +08:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript +2024-08-15 13:48:32.889 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 103.514ms +2024-08-15 13:48:32.889 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:32.889 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Abp/ApplicationLocalizationScript?cultureName=zh-Hans - 200 36669 application/javascript 137.1283ms +2024-08-15 13:48:33.422 +08:00 [DBG] Executed AbpApplicationConfigurationAppService.GetAsync(). +2024-08-15 13:48:33.471 +08:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript +2024-08-15 13:48:33.471 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc) in 701.0351ms +2024-08-15 13:48:33.472 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:33.473 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Abp/ApplicationConfigurationScript - 200 7383 application/javascript 721.0377ms +2024-08-15 13:48:33.664 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/favicon.svg - null null +2024-08-15 13:48:33.664 +08:00 [INF] Sending file. Request path: '/favicon.svg'. Physical path: 'N/A' +2024-08-15 13:48:33.664 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/favicon.svg - 200 2827 image/svg+xml 0.866ms +2024-08-15 13:48:44.120 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Account/Login - null null +2024-08-15 13:48:44.140 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.141 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.142 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:44.142 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:44.142 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.144 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.144 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:44.156 +08:00 [INF] Executing endpoint '/Account/Login' +2024-08-15 13:48:44.172 +08:00 [INF] Route matched with {page = "/Account/Login", area = "", action = "", controller = ""}. Executing page /Account/Login +2024-08-15 13:48:44.172 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-15 13:48:44.380 +08:00 [INF] Executing handler method Volo.Abp.Account.Web.Pages.Account.LoginModel.OnGetAsync - ModelState is "Valid" +2024-08-15 13:48:44.389 +08:00 [INF] Executed handler method OnGetAsync, returned result Microsoft.AspNetCore.Mvc.RazorPages.PageResult. +2024-08-15 13:48:44.446 +08:00 [DBG] Added bundle 'LeptonXLite.Global' to the page in 1.15 ms. +2024-08-15 13:48:44.490 +08:00 [DBG] Added bundle 'LeptonXLite.Global' to the page in 1.53 ms. +2024-08-15 13:48:44.496 +08:00 [DBG] Added bundle 'Volo.Abp.Account.Web.Pages.Account.LoginModel' to the page in 0.81 ms. +2024-08-15 13:48:44.496 +08:00 [INF] Executed page /Account/Login in 324.6153ms +2024-08-15 13:48:44.497 +08:00 [INF] Executed endpoint '/Account/Login' +2024-08-15 13:48:44.498 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Account/Login - 200 null text/html; charset=utf-8 378.0406ms +2024-08-15 13:48:44.527 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Abp/ApplicationLocalizationScript?cultureName=zh-Hans - null null +2024-08-15 13:48:44.527 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Abp/ApplicationConfigurationScript - null null +2024-08-15 13:48:44.527 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Abp/ServiceProxyScript - null null +2024-08-15 13:48:44.527 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Pages/Account/Login.js?_v=638592129220000000 - null null +2024-08-15 13:48:44.528 +08:00 [INF] Sending file. Request path: '/Pages/Account/Login.js'. Physical path: 'N/A' +2024-08-15 13:48:44.528 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Pages/Account/Login.js?_v=638592129220000000 - 200 585 application/javascript 0.4617ms +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.529 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.530 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:44.530 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:44.530 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-15 13:48:44.531 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-15 13:48:44.531 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-15 13:48:44.531 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-15 13:48:44.531 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-15 13:48:44.531 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.531 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-15 13:48:44.531 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-15 13:48:44.533 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:44.533 +08:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationLocalizationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.ActionResult] GetAsync(Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.ApplicationLocalizationRequestDto) on controller Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController (Volo.Abp.AspNetCore.Mvc). +2024-08-15 13:48:44.534 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:44.534 +08:00 [INF] Route matched with {area = "Abp", action = "GetAll", controller = "AbpServiceProxyScript", page = ""}. Executing controller action with signature Microsoft.AspNetCore.Mvc.ActionResult GetAll(Volo.Abp.AspNetCore.Mvc.ProxyScripting.ServiceProxyGenerationModel) on controller Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController (Volo.Abp.AspNetCore.Mvc). +2024-08-15 13:48:44.535 +08:00 [INF] Executing endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:44.536 +08:00 [INF] Route matched with {area = "Abp", action = "Get", controller = "AbpApplicationConfigurationScript", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.ActionResult] Get() on controller Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController (Volo.Abp.AspNetCore.Mvc). +2024-08-15 13:48:44.536 +08:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript +2024-08-15 13:48:44.536 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc) in 2.0879ms +2024-08-15 13:48:44.536 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ProxyScripting.AbpServiceProxyScriptController.GetAll (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:44.536 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Abp/ServiceProxyScript - 200 6240 application/javascript 9.461ms +2024-08-15 13:48:44.542 +08:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript +2024-08-15 13:48:44.543 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc) in 9.4262ms +2024-08-15 13:48:44.543 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.Localization.AbpApplicationLocalizationScriptController.GetAsync (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:44.543 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Abp/ApplicationLocalizationScript?cultureName=zh-Hans - 200 36669 application/javascript 15.9864ms +2024-08-15 13:48:44.544 +08:00 [DBG] Executing AbpApplicationConfigurationAppService.GetAsync()... +2024-08-15 13:48:44.558 +08:00 [DBG] Executed AbpApplicationConfigurationAppService.GetAsync(). +2024-08-15 13:48:44.559 +08:00 [INF] Executing ContentResult with HTTP Response ContentType of application/javascript +2024-08-15 13:48:44.560 +08:00 [INF] Executed action Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc) in 23.9245ms +2024-08-15 13:48:44.560 +08:00 [INF] Executed endpoint 'Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations.AbpApplicationConfigurationScriptController.Get (Volo.Abp.AspNetCore.Mvc)' +2024-08-15 13:48:44.560 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Abp/ApplicationConfigurationScript - 200 7383 application/javascript 32.8357ms +2024-08-15 13:48:44.573 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d - null null +2024-08-15 13:48:44.573 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 - null null +2024-08-15 13:48:44.575 +08:00 [INF] Sending file. Request path: '/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2'. Physical path: '/Users/wuhaoxuan/Downloads/AElfScanServer/aspnet-core/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2' +2024-08-15 13:48:44.576 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 - 200 25464 font/woff2 2.5174ms +2024-08-15 13:48:44.577 +08:00 [INF] Sending file. Request path: '/Themes/LeptonXLite/Global/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2'. Physical path: 'N/A' +2024-08-15 13:48:44.577 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/Themes/LeptonXLite/Global/side-menu/libs/bootstrap-icons/font/fonts/bootstrap-icons.woff2?30af91bf14e37666a085fb8a161ff36d - 200 92064 font/woff2 3.5881ms +2024-08-15 13:48:46.670 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-15 13:48:48.642 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-15 13:48:51.635 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-15 13:49:11.085 +08:00 [INF] Application is shutting down... +2024-08-15 13:49:11.104 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-15 14:01:43.649 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-15 14:01:44.824 +08:00 [INF] Loaded ABP modules: +2024-08-15 14:01:44.825 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-15 14:01:44.825 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-15 14:01:44.825 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-15 14:01:44.983 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-15 14:01:45.120 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 221 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-15 14:29:53.853 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-15 14:29:54.946 +08:00 [INF] Loaded ABP modules: +2024-08-15 14:29:54.946 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-15 14:29:54.946 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-15 14:29:54.946 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-15 14:29:55.089 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-15 14:29:55.253 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 221 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 13:57:00.079 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 13:57:01.940 +08:00 [INF] Loaded ABP modules: +2024-08-19 13:57:01.941 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 13:57:01.941 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 13:57:01.941 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 13:57:02.133 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 13:57:02.340 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 221 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 14:01:33.575 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:01:35.368 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:01:35.368 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:01:35.368 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:01:35.369 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:01:35.369 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:01:35.588 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:01:35.744 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 221 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 14:05:25.285 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:05:27.071 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:05:27.072 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:05:27.072 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:05:27.073 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:05:27.073 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:05:27.297 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:05:27.464 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 219 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 14:09:02.943 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:09:04.092 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:09:04.093 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:09:04.093 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:09:04.093 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:09:04.416 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:09:04.566 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 219 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 14:19:18.396 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:19:19.637 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:19:19.637 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:19:19.637 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:19:19.637 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:19:19.865 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:19:20.087 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 219 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 14:38:24.208 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:38:26.528 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:38:26.529 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:38:26.529 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:38:26.529 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:38:26.981 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:39:26.878 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:39:27.852 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:39:27.853 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:39:27.853 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:39:27.853 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:39:28.012 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:39:28.166 +08:00 [FTL] AElfScanServer.AuthServer terminated unexpectedly! +Volo.Abp.AbpInitializationException: An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module AElfScanServer.AElfScanServerAuthServerModule, AElfScanServer.AuthServer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.. See the inner exception for details. + ---> Autofac.Core.DependencyResolutionException: An exception was thrown while activating Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionEndpointDataSourceFactory -> Microsoft.AspNetCore.Mvc.Infrastructure.DefaultActionDescriptorCollectionProvider -> λ:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorChangeProvider[] -> Microsoft.AspNetCore.Mvc.HotReload.HotReloadService -> Microsoft.AspNetCore.Mvc.Razor.RazorHotReload -> Microsoft.AspNetCore.Mvc.Razor.RazorViewEngine -> Microsoft.AspNetCore.Mvc.Razor.Compilation.DefaultRazorPageFactoryProvider -> Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.RuntimeViewCompilerProvider -> λ:Microsoft.AspNetCore.Razor.Language.RazorProjectEngine. + ---> System.TypeLoadException: Declaration referenced in a method implementation cannot be a final method. Type: 'Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions'. Assembly: 'Microsoft.CodeAnalysis.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.EnsureOptions() + at Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.CSharpCompiler.get_ParseOptions() + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c__DisplayClass2_0.b__3(RazorProjectEngineBuilder builder) + at Microsoft.AspNetCore.Razor.Language.RazorProjectEngine.Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem, Action`1 configure) + at Microsoft.Extensions.DependencyInjection.RazorRuntimeCompilationMvcCoreBuilderExtensions.<>c.b__2_2(IServiceProvider s) + at Autofac.Extensions.DependencyInjection.AutofacRegistration.<>c__DisplayClass4_0.b__1(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.ActivateInstance(IComponentContext context, IEnumerable`1 parameters) + at Autofac.Core.Activators.Delegate.DelegateActivator.b__2_0(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Middleware.DelegateMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.DisposalTrackingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + --- End of inner exception stack trace --- + at Autofac.Core.Resolving.Middleware.ActivatorErrorHandlingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.RegistrationPipelineInvokeMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.<>c__DisplayClass5_0.b__0() + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid id, Func`1 creator) + at Autofac.Core.Lifetime.LifetimeScope.CreateSharedInstance(Guid primaryId, Nullable`1 qualifyingId, Func`1 creator) + at Autofac.Core.Resolving.Middleware.SharingMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Resolving.Middleware.CircularDependencyDetectorMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Extensions.DependencyInjection.KeyedServiceMiddleware.Execute(ResolveRequestContext context, Action`1 next) + at Autofac.Core.Resolving.Pipeline.ResolvePipelineBuilder.<>c__DisplayClass14_0.b__1(ResolveRequestContext context) + at Autofac.Core.Pipeline.ResolvePipeline.Invoke(ResolveRequestContext context) + at Autofac.Core.Resolving.ResolveOperation.GetOrCreateInstance(ISharingLifetimeScope currentOperationScope, ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.ExecuteOperation(ResolveRequest& request) + at Autofac.Core.Resolving.ResolveOperation.Execute(ResolveRequest& request) + at Autofac.Core.Lifetime.LifetimeScope.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.ResolveComponent(ResolveRequest& request) + at Autofac.Core.Container.Autofac.IComponentContext.ResolveComponent(ResolveRequest& request) + at Autofac.ResolutionExtensions.TryResolveService(IComponentContext context, Service service, IEnumerable`1 parameters, Object& instance) + at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType, IEnumerable`1 parameters) + at Autofac.ResolutionExtensions.Resolve(IComponentContext context, Type serviceType) + at Autofac.Extensions.DependencyInjection.AutofacServiceProvider.GetRequiredService(Type serviceType) + at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.GetOrCreateDataSource(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute(IEndpointRouteBuilder endpoints, String name, String pattern, Object defaults, Object constraints, Object dataTokens) + at Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule.<>c.b__1_13(EndpointRouteBuilderContext endpointContext) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.<>c__DisplayClass0_0.b__0(IEndpointRouteBuilder endpoints) + at Microsoft.AspNetCore.Builder.EndpointRoutingApplicationBuilderExtensions.UseEndpoints(IApplicationBuilder builder, Action`1 configure) + at Microsoft.AspNetCore.Builder.AbpAspNetCoreApplicationBuilderExtensions.UseConfiguredEndpoints(IApplicationBuilder app, Action`1 additionalConfigurationAction) + at AElfScanServer.AElfScanServerAuthServerModule.OnApplicationInitialization(ApplicationInitializationContext context) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/AElfScanServerAuthServerModule.cs:line 219 + at Volo.Abp.Modularity.AbpModule.OnApplicationInitializationAsync(ApplicationInitializationContext context) + at Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor.InitializeAsync(ApplicationInitializationContext context, IAbpModule module) + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + --- End of inner exception stack trace --- + at Volo.Abp.Modularity.ModuleManager.InitializeModulesAsync(ApplicationInitializationContext context) + at Volo.Abp.AbpApplicationBase.InitializeModulesAsync() + at Volo.Abp.AbpApplicationWithExternalServiceProvider.InitializeAsync(IServiceProvider serviceProvider) + at Microsoft.AspNetCore.Builder.AbpApplicationBuilderExtensions.InitializeApplicationAsync(IApplicationBuilder app) + at AElfScanServer.Program.Main(String[] args) in /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer/Program.cs:line 37 +2024-08-19 14:52:57.552 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 14:52:58.978 +08:00 [INF] Loaded ABP modules: +2024-08-19 14:52:58.978 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 14:52:58.978 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 14:52:58.978 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 14:52:59.159 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 14:52:59.574 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 14:52:59.743 +08:00 [INF] Initialized all ABP modules. +2024-08-19 14:53:00.156 +08:00 [INF] Now listening on: https://localhost:44336 +2024-08-19 14:53:00.157 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 14:53:00.157 +08:00 [INF] Hosting environment: Development +2024-08-19 14:53:00.157 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 14:53:01.369 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/ - null null +2024-08-19 14:53:01.575 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 14:53:01.592 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 14:53:01.601 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 14:53:01.606 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 14:53:01.607 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 14:53:01.630 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 14:53:01.632 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-19 14:53:01.633 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-19 14:53:01.634 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-19 14:53:01.639 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-19 14:53:01.640 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 14:53:01.640 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 14:53:01.641 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-19 14:53:01.984 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/ - 404 0 null 614.9486ms +2024-08-19 14:53:01.986 +08:00 [INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44336/, Response status code: 404 +2024-08-19 14:53:37.503 +08:00 [INF] Application is shutting down... +2024-08-19 14:53:37.532 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 15:37:36.726 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 15:37:39.042 +08:00 [INF] Loaded ABP modules: +2024-08-19 15:37:39.042 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 15:37:39.042 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 15:37:39.042 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 15:37:39.379 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 15:37:39.790 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 15:37:40.284 +08:00 [INF] Initialized all ABP modules. +2024-08-19 15:37:40.627 +08:00 [INF] Now listening on: https://localhost:44336 +2024-08-19 15:37:40.628 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 15:37:40.628 +08:00 [INF] Hosting environment: Development +2024-08-19 15:37:40.629 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 15:37:43.724 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/ - null null +2024-08-19 15:37:44.444 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 15:37:44.456 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 15:37:44.461 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 15:37:44.463 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 15:37:44.464 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 15:37:44.473 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 15:37:44.474 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-19 15:37:44.475 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-19 15:37:44.476 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-19 15:37:44.484 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-19 15:37:44.486 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 15:37:44.486 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 15:37:44.486 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-19 15:37:44.885 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/ - 404 0 null 1160.7438ms +2024-08-19 15:37:44.890 +08:00 [INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44336/, Response status code: 404 +2024-08-19 17:41:02.251 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 17:41:03.572 +08:00 [INF] Loaded ABP modules: +2024-08-19 17:41:03.572 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 17:41:03.572 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 17:41:03.573 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 17:41:03.573 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 17:41:03.778 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 17:41:04.136 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 17:41:04.198 +08:00 [INF] Initialized all ABP modules. +2024-08-19 17:41:04.628 +08:00 [INF] Now listening on: https://localhost:44336 +2024-08-19 17:41:04.629 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 17:41:04.629 +08:00 [INF] Hosting environment: Development +2024-08-19 17:41:04.629 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 17:41:06.417 +08:00 [INF] Request starting HTTP/2 GET https://localhost:44336/ - null null +2024-08-19 17:41:07.409 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 17:41:07.420 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 17:41:07.422 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 17:41:07.423 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 17:41:07.424 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 17:41:07.432 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 17:41:07.433 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-19 17:41:07.434 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-19 17:41:07.434 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-19 17:41:07.437 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-19 17:41:07.439 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 17:41:07.439 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 17:41:07.440 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-19 17:41:07.725 +08:00 [INF] Request finished HTTP/2 GET https://localhost:44336/ - 404 0 null 1311.0318ms +2024-08-19 17:41:07.727 +08:00 [INF] Request reached the end of the middleware pipeline without being handled by application code. Request path: GET https://localhost:44336/, Response status code: 404 +2024-08-19 17:42:17.707 +08:00 [INF] Application is shutting down... +2024-08-19 17:42:17.724 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 18:34:08.574 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 18:34:09.711 +08:00 [INF] Loaded ABP modules: +2024-08-19 18:34:09.712 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 18:34:09.712 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 18:34:09.712 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 18:34:09.871 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 18:34:10.273 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 18:34:10.331 +08:00 [INF] Initialized all ABP modules. +2024-08-19 18:34:10.387 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-19 18:34:10.396 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-19 18:34:10.396 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 18:34:10.396 +08:00 [INF] Hosting environment: Development +2024-08-19 18:34:10.396 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 18:44:15.361 +08:00 [INF] Request starting HTTP/1.1 POST http://localhost:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - null 0 +2024-08-19 18:44:15.624 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:44:15.634 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:44:15.637 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:44:15.637 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:44:15.639 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:44:15.639 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:44:15.644 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-19 18:44:15.645 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-19 18:44:15.649 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:44:15.650 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.650 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.651 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.655 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "This server only accepts HTTPS requests.", + "error_uri": "https://documentation.openiddict.com/errors/ID2083" +}. +2024-08-19 18:44:15.659 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.659 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.659 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.659 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:15.664 +08:00 [INF] Request finished HTTP/1.1 POST http://localhost:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 400 168 application/json;charset=UTF-8 305.1128ms +2024-08-19 18:44:44.481 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - null 0 +2024-08-19 18:44:44.494 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:44:44.495 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:44:44.495 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:44:44.495 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:44:44.496 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:44:44.496 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:44:44.496 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-19 18:44:44.496 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-19 18:44:44.496 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:44:44.497 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.497 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.497 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.497 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "This server only accepts HTTPS requests.", + "error_uri": "https://documentation.openiddict.com/errors/ID2083" +}. +2024-08-19 18:44:44.498 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.498 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.498 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.498 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:44:44.498 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 400 168 application/json;charset=UTF-8 17.7987ms +2024-08-19 18:45:55.714 +08:00 [INF] Application is shutting down... +2024-08-19 18:45:55.760 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 18:46:03.818 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 18:46:04.874 +08:00 [INF] Loaded ABP modules: +2024-08-19 18:46:04.875 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 18:46:04.875 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 18:46:04.875 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 18:46:05.034 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 18:46:05.423 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 18:46:05.484 +08:00 [INF] Initialized all ABP modules. +2024-08-19 18:46:05.524 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-19 18:46:05.529 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-19 18:46:05.529 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 18:46:05.529 +08:00 [INF] Hosting environment: Development +2024-08-19 18:46:05.529 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 18:46:15.599 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - null 0 +2024-08-19 18:46:15.743 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:46:15.754 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:46:15.757 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:46:15.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:46:15.759 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:46:15.759 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:46:15.764 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-19 18:46:15.764 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-19 18:46:15.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:46:15.769 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.771 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.772 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.777 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "This server only accepts HTTPS requests.", + "error_uri": "https://documentation.openiddict.com/errors/ID2083" +}. +2024-08-19 18:46:15.782 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.782 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.782 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.782 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:15.791 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 400 168 application/json;charset=UTF-8 191.576ms +2024-08-19 18:46:16.796 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - null 0 +2024-08-19 18:46:16.803 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:46:16.805 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:46:16.806 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:46:16.806 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:46:16.806 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:46:16.806 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateTransportSecurityRequirement. +2024-08-19 18:46:16.806 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-19 18:46:16.806 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-19 18:46:16.807 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:46:16.807 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.808 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.808 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.809 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "This server only accepts HTTPS requests.", + "error_uri": "https://documentation.openiddict.com/errors/ID2083" +}. +2024-08-19 18:46:16.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:46:16.810 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 400 168 application/json;charset=UTF-8 13.5993ms +2024-08-19 18:48:44.920 +08:00 [INF] Application is shutting down... +2024-08-19 18:48:44.941 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 18:48:49.984 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 18:48:50.957 +08:00 [INF] Loaded ABP modules: +2024-08-19 18:48:50.957 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 18:48:50.957 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 18:48:50.957 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 18:48:51.108 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 18:48:51.435 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 18:48:51.483 +08:00 [INF] Initialized all ABP modules. +2024-08-19 18:48:51.521 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-19 18:48:51.526 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-19 18:48:51.526 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 18:48:51.526 +08:00 [INF] Hosting environment: Development +2024-08-19 18:48:51.526 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 18:48:58.652 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - null 0 +2024-08-19 18:48:58.788 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:48:58.791 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:48:58.791 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:48:58.792 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 18:48:58.795 +08:00 [INF] The request was rejected because the mandatory 'Content-Type' header was missing. +2024-08-19 18:48:58.796 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.796 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was marked as rejected by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.797 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-19 18:48:58.797 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-19 18:48:58.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-19 18:48:58.801 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-19 18:48:58.803 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:48:58.804 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.804 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.805 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.809 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "The mandatory 'Content-Type' header is missing.", + "error_uri": "https://documentation.openiddict.com/errors/ID2081" +}. +2024-08-19 18:48:58.814 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.814 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.814 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.814 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:48:58.820 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 400 175 application/json;charset=UTF-8 168.1223ms +2024-08-19 18:49:59.436 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 0 +2024-08-19 18:49:59.444 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:49:59.444 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:49:59.445 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:49:59.445 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 18:49:59.448 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.450 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.452 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.453 +08:00 [INF] The token request was successfully extracted: {}. +2024-08-19 18:49:59.453 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-19 18:49:59.456 +08:00 [INF] The token request was rejected because the mandatory 'grant_type' parameter was missing. +2024-08-19 18:49:59.457 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-19 18:49:59.457 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was marked as rejected by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-19 18:49:59.457 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-19 18:49:59.457 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-19 18:49:59.457 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-19 18:49:59.458 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-19 18:49:59.458 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:49:59.458 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.458 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.458 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.458 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "The mandatory 'grant_type' parameter is missing.", + "error_uri": "https://documentation.openiddict.com/errors/ID2029" +}. +2024-08-19 18:49:59.459 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.459 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.459 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.459 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:49:59.459 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 400 176 application/json;charset=UTF-8 24.0056ms +2024-08-19 18:50:45.795 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-19 18:50:45.803 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:50:45.803 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 18:50:45.803 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 18:50:45.803 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 18:50:45.818 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:45.818 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:45.818 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:45.818 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-19 18:50:45.818 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-19 18:50:45.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-19 18:50:45.820 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-19 18:50:45.820 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-19 18:50:45.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-19 18:50:45.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-19 18:50:45.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-19 18:50:45.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-19 18:50:45.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-19 18:50:45.822 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-19 18:50:46.244 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-19 18:50:46.245 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-19 18:50:46.247 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-19 18:50:46.248 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-19 18:50:46.249 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-19 18:50:46.250 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-19 18:50:46.402 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-19 18:50:46.408 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-19 18:50:46.410 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-19 18:50:46.410 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-19 18:50:46.411 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-19 18:50:46.415 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-19 18:50:46.417 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-19 18:50:46.419 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-19 18:50:46.419 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-19 18:50:46.420 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-19 18:50:46.420 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-19 18:50:46.420 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-19 18:50:46.420 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-19 18:50:46.421 +08:00 [INF] The token request was successfully validated. +2024-08-19 18:50:46.421 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-19 18:50:46.422 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-19 18:50:46.423 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:46.423 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:46.423 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-19 18:50:46.423 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-19 18:50:46.438 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 18:50:46.443 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 18:50:46.444 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-19 18:50:46.445 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-19 18:50:46.445 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-19 18:50:46.445 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-19 18:50:46.446 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 18:50:46.446 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 18:50:46.446 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-19 18:50:46.647 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-19 18:50:46.657 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-19 18:50:46.658 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-19 18:50:46.996 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-19 18:50:47.112 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-19 18:50:47.114 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-19 18:50:47.311 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-19 18:50:47.315 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-19 18:50:47.318 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-19 18:50:47.354 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-19 18:50:47.355 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-19 18:50:47.356 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-19 18:50:47.357 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-19 18:50:47.358 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-19 18:50:47.358 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-19 18:50:47.361 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-19 18:50:47.373 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-19 18:50:47.374 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-19 18:50:47.381 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-19 18:50:47.405 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-19 18:50:47.407 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-19 18:50:47.411 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-19 18:50:47.518 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-19 18:50:53.286 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-19 18:50:53.289 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-19 18:50:53.291 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-19 18:50:53.294 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-19 18:50:53.295 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 18:50:53.296 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.296 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.296 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.296 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3594 +}. +2024-08-19 18:50:53.300 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.300 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.300 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.300 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 18:50:53.308 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 6647.185ms +2024-08-19 18:50:53.309 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-19 18:50:53.383 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 7588.8015ms +2024-08-19 18:54:55.222 +08:00 [INF] Application is shutting down... +2024-08-19 18:54:55.271 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 19:49:10.819 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 19:49:13.044 +08:00 [INF] Loaded ABP modules: +2024-08-19 19:49:13.044 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 19:49:13.044 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 19:49:13.044 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 19:49:13.045 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 19:49:13.348 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 19:49:13.753 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 19:49:13.814 +08:00 [INF] Initialized all ABP modules. +2024-08-19 19:49:13.850 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-19 19:49:13.855 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-19 19:49:13.855 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 19:49:13.855 +08:00 [INF] Hosting environment: Development +2024-08-19 19:49:13.855 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 19:50:06.007 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-19 19:50:06.487 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 19:50:06.489 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-19 19:50:06.489 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-19 19:50:06.491 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 19:50:06.499 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:06.501 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:06.501 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:06.504 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-19 19:50:06.504 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-19 19:50:06.507 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-19 19:50:06.507 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-19 19:50:06.508 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-19 19:50:06.508 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-19 19:50:06.508 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-19 19:50:06.508 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-19 19:50:06.509 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-19 19:50:06.509 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-19 19:50:06.509 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-19 19:50:06.623 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-19 19:50:06.624 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-19 19:50:06.626 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-19 19:50:06.627 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-19 19:50:06.628 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-19 19:50:06.629 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-19 19:50:06.718 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-19 19:50:06.725 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-19 19:50:06.727 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-19 19:50:06.728 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-19 19:50:06.728 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-19 19:50:06.747 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-19 19:50:06.750 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-19 19:50:06.753 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-19 19:50:06.754 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-19 19:50:06.754 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-19 19:50:06.754 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-19 19:50:06.755 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-19 19:50:06.755 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-19 19:50:06.756 +08:00 [INF] The token request was successfully validated. +2024-08-19 19:50:06.756 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-19 19:50:06.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-19 19:50:06.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:06.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:06.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-19 19:50:06.758 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-19 19:50:06.778 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-19 19:50:06.785 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-19 19:50:06.786 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-19 19:50:06.786 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-19 19:50:06.787 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-19 19:50:06.787 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-19 19:50:06.788 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 19:50:06.788 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-19 19:50:06.789 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-19 19:50:07.083 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-19 19:50:07.097 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-19 19:50:07.098 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-19 19:50:07.421 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-19 19:50:07.541 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-19 19:50:07.542 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-19 19:50:07.745 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-19 19:50:07.749 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-19 19:50:07.753 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-19 19:50:07.789 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-19 19:50:07.790 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-19 19:50:07.791 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-19 19:50:07.791 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-19 19:50:07.792 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-19 19:50:07.793 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-19 19:50:07.796 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-19 19:50:07.807 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-19 19:50:07.808 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-19 19:50:07.812 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-19 19:50:07.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-19 19:50:07.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-19 19:50:07.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-19 19:50:07.884 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-19 19:50:13.172 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-19 19:50:13.180 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-19 19:50:13.181 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-19 19:50:13.185 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-19 19:50:13.187 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-19 19:50:13.188 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.189 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.190 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.191 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3594 +}. +2024-08-19 19:50:13.195 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.195 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.196 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.196 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-19 19:50:13.203 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 6102.5537ms +2024-08-19 19:50:13.204 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-19 19:50:13.266 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 7260.7239ms +2024-08-19 19:59:33.359 +08:00 [INF] Application is shutting down... +2024-08-19 19:59:33.403 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 19:59:43.822 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 19:59:44.990 +08:00 [INF] Loaded ABP modules: +2024-08-19 19:59:44.990 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 19:59:44.990 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 19:59:44.991 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 19:59:44.991 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 19:59:44.991 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 19:59:45.147 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 19:59:45.451 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 19:59:45.496 +08:00 [INF] Initialized all ABP modules. +2024-08-19 19:59:45.533 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-19 19:59:45.538 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-19 19:59:45.538 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 19:59:45.538 +08:00 [INF] Hosting environment: Development +2024-08-19 19:59:45.538 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 20:19:36.400 +08:00 [INF] Application is shutting down... +2024-08-19 20:19:36.468 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 20:22:39.923 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-19 20:22:41.097 +08:00 [INF] Loaded ABP modules: +2024-08-19 20:22:41.098 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-19 20:22:41.098 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-19 20:22:41.098 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-19 20:22:41.268 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-19 20:22:41.611 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-19 20:22:41.669 +08:00 [INF] Initialized all ABP modules. +2024-08-19 20:22:41.706 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-19 20:22:41.713 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-19 20:22:41.713 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-19 20:22:41.713 +08:00 [INF] Hosting environment: Development +2024-08-19 20:22:41.713 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-19 21:22:41.344 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-19 21:22:41.499 +08:00 [INF] Start cleanup. +2024-08-19 21:22:41.499 +08:00 [INF] Start cleanup tokens. +2024-08-19 21:22:41.913 +08:00 [ERR] This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. +MongoDB.Driver.MongoCommandException: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. + ---> MongoDB.Driver.MongoCommandException: Command aggregate failed: Transaction numbers are only allowed on a replica set member or mongos. + --- End of inner exception stack trace --- + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) + at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) + at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExecutableQuery`3.ExecuteAsync(IClientSessionHandle session, CancellationToken cancellationToken) + at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) + at Volo.Abp.OpenIddict.Tokens.MongoOpenIddictTokenRepository.PruneAsync(DateTime date, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.OpenIddict.Tokens.AbpOpenIddictTokenStore.PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) + at Volo.Abp.OpenIddict.Tokens.TokenCleanupService.CleanAsync() +2024-08-19 21:22:41.914 +08:00 [INF] Start cleanup authorizations. +2024-08-19 21:22:41.920 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-19 21:22:41.999 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-19 22:22:42.159 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-19 22:22:42.201 +08:00 [INF] Start cleanup. +2024-08-19 22:22:42.201 +08:00 [INF] Start cleanup tokens. +2024-08-19 22:22:42.222 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-19 22:22:42.315 +08:00 [INF] Start cleanup authorizations. +2024-08-19 22:22:42.316 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-19 22:22:42.321 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-19 23:22:42.384 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-19 23:22:42.426 +08:00 [INF] Start cleanup. +2024-08-19 23:22:42.426 +08:00 [INF] Start cleanup tokens. +2024-08-19 23:22:42.445 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-19 23:22:42.476 +08:00 [INF] Start cleanup authorizations. +2024-08-19 23:22:42.476 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-19 23:22:42.487 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 00:22:42.432 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 00:22:42.469 +08:00 [INF] Start cleanup. +2024-08-20 00:22:42.470 +08:00 [INF] Start cleanup tokens. +2024-08-20 00:22:42.480 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 00:22:42.499 +08:00 [INF] Start cleanup authorizations. +2024-08-20 00:22:42.499 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 00:22:42.509 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 01:22:42.616 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 01:22:42.665 +08:00 [INF] Start cleanup. +2024-08-20 01:22:42.666 +08:00 [INF] Start cleanup tokens. +2024-08-20 01:22:42.700 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 01:22:42.750 +08:00 [INF] Start cleanup authorizations. +2024-08-20 01:22:42.750 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 01:22:42.756 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 02:22:42.850 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 02:22:42.883 +08:00 [INF] Start cleanup. +2024-08-20 02:22:42.883 +08:00 [INF] Start cleanup tokens. +2024-08-20 02:22:42.897 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 02:22:42.933 +08:00 [INF] Start cleanup authorizations. +2024-08-20 02:22:42.935 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 02:22:42.943 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 03:22:42.902 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 03:22:42.929 +08:00 [INF] Start cleanup. +2024-08-20 03:22:42.929 +08:00 [INF] Start cleanup tokens. +2024-08-20 03:22:42.948 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 03:22:43.019 +08:00 [INF] Start cleanup authorizations. +2024-08-20 03:22:43.020 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 03:22:43.031 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 04:22:42.982 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 04:22:42.999 +08:00 [INF] Start cleanup. +2024-08-20 04:22:42.999 +08:00 [INF] Start cleanup tokens. +2024-08-20 04:22:43.007 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 04:22:43.049 +08:00 [INF] Start cleanup authorizations. +2024-08-20 04:22:43.051 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 04:22:43.067 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 05:22:42.968 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 05:22:42.997 +08:00 [INF] Start cleanup. +2024-08-20 05:22:42.997 +08:00 [INF] Start cleanup tokens. +2024-08-20 05:22:43.014 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 05:22:43.108 +08:00 [INF] Start cleanup authorizations. +2024-08-20 05:22:43.109 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 05:22:43.131 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 06:22:43.099 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 06:22:43.133 +08:00 [INF] Start cleanup. +2024-08-20 06:22:43.133 +08:00 [INF] Start cleanup tokens. +2024-08-20 06:22:43.146 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 06:22:43.208 +08:00 [INF] Start cleanup authorizations. +2024-08-20 06:22:43.209 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 06:22:43.216 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 07:22:43.458 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 07:22:43.496 +08:00 [INF] Start cleanup. +2024-08-20 07:22:43.496 +08:00 [INF] Start cleanup tokens. +2024-08-20 07:22:43.517 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 07:22:43.595 +08:00 [INF] Start cleanup authorizations. +2024-08-20 07:22:43.596 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 07:22:43.613 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 08:22:43.640 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 08:22:43.676 +08:00 [INF] Start cleanup. +2024-08-20 08:22:43.676 +08:00 [INF] Start cleanup tokens. +2024-08-20 08:22:43.689 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 08:22:43.719 +08:00 [INF] Start cleanup authorizations. +2024-08-20 08:22:43.720 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 08:22:43.735 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 09:22:43.880 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 09:22:43.905 +08:00 [INF] Start cleanup. +2024-08-20 09:22:43.905 +08:00 [INF] Start cleanup tokens. +2024-08-20 09:22:43.921 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 09:22:43.964 +08:00 [INF] Start cleanup authorizations. +2024-08-20 09:22:43.965 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 09:22:43.974 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 10:22:43.947 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 10:22:43.983 +08:00 [INF] Start cleanup. +2024-08-20 10:22:43.983 +08:00 [INF] Start cleanup tokens. +2024-08-20 10:22:44.005 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 10:22:44.062 +08:00 [INF] Start cleanup authorizations. +2024-08-20 10:22:44.064 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 10:22:44.079 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 10:26:42.847 +08:00 [INF] Application is shutting down... +2024-08-20 10:26:42.994 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 10:26:54.078 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 10:26:55.496 +08:00 [INF] Loaded ABP modules: +2024-08-20 10:26:55.496 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 10:26:55.496 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 10:26:55.497 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 10:26:55.497 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 10:26:55.671 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 10:26:56.141 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 10:26:56.258 +08:00 [INF] Initialized all ABP modules. +2024-08-20 10:26:56.411 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 10:26:56.422 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 10:26:56.423 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 10:26:56.423 +08:00 [INF] Hosting environment: Development +2024-08-20 10:26:56.423 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 10:27:36.020 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 10:27:37.021 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 10:27:37.025 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 10:27:37.025 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 10:27:37.027 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 10:27:37.040 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:37.041 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:37.042 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:37.045 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 10:27:37.045 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 10:27:37.048 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 10:27:37.049 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 10:27:37.049 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 10:27:37.050 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 10:27:37.051 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 10:27:37.051 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 10:27:37.052 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 10:27:37.052 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 10:27:37.052 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 10:27:37.230 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 10:27:37.232 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 10:27:37.238 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 10:27:37.240 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 10:27:37.241 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 10:27:37.243 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 10:27:37.426 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 10:27:37.434 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 10:27:37.436 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 10:27:37.436 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 10:27:37.437 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 10:27:37.441 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 10:27:37.444 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 10:27:37.447 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 10:27:37.448 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 10:27:37.448 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 10:27:37.448 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 10:27:37.449 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 10:27:37.449 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 10:27:37.449 +08:00 [INF] The token request was successfully validated. +2024-08-20 10:27:37.450 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 10:27:37.453 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 10:27:37.454 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:37.454 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:37.454 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 10:27:37.454 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 10:27:37.479 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 10:27:37.489 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 10:27:37.490 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 10:27:37.490 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 10:27:37.491 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 10:27:37.491 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 10:27:37.492 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 10:27:37.492 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 10:27:37.494 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 10:27:37.912 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 10:27:37.925 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 10:27:37.927 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 10:27:38.388 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 10:27:38.473 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 10:27:38.475 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 10:27:38.727 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 10:27:38.733 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 10:27:38.737 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 10:27:38.820 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 10:27:38.825 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 10:27:38.826 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 10:27:38.829 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 10:27:38.831 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 10:27:38.832 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 10:27:38.837 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 10:27:38.856 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 10:27:38.858 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 10:27:38.862 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 10:27:38.868 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 10:27:38.870 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 10:27:38.871 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 10:27:39.005 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 10:27:39.123 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 10:27:39.127 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 10:27:39.129 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 10:27:39.136 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 10:27:39.141 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 10:27:39.142 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.143 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.145 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.152 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3599 +}. +2024-08-20 10:27:39.163 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.163 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.164 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.164 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:27:39.176 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 1246.0994ms +2024-08-20 10:27:39.179 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 10:27:39.314 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 3298.7657ms +2024-08-20 10:30:23.760 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - null 0 +2024-08-20 10:30:23.771 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 10:30:23.772 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 10:30:23.772 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 10:30:23.772 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 10:30:23.773 +08:00 [INF] The request was rejected because the mandatory 'Content-Type' header was missing. +2024-08-20 10:30:23.773 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.773 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was marked as rejected by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.775 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 10:30:23.775 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as rejected by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 10:30:23.780 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachErrorParameters. +2024-08-20 10:30:23.783 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomErrorParameters. +2024-08-20 10:30:23.786 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 10:30:23.786 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.786 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.787 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.787 +08:00 [INF] The response was successfully returned as a JSON document: { + "error": "invalid_request", + "error_description": "The mandatory 'Content-Type' header is missing.", + "error_uri": "https://documentation.openiddict.com/errors/ID2081" +}. +2024-08-20 10:30:23.788 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.788 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.788 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.788 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessErrorContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:23.788 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 400 175 application/json;charset=UTF-8 30.7072ms +2024-08-20 10:30:52.752 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - application/x-www-form-urlencoded 103 +2024-08-20 10:30:52.760 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 10:30:52.760 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 10:30:52.760 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 10:30:52.761 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 10:30:52.766 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:52.766 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:52.767 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:52.767 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "whx", + "password": "[redacted]" +}. +2024-08-20 10:30:52.767 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 10:30:52.767 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 10:30:52.768 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 10:30:52.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 10:30:52.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 10:30:52.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 10:30:52.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 10:30:52.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 10:30:52.800 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 10:30:52.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 10:30:52.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 10:30:52.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 10:30:52.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 10:30:52.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 10:30:52.813 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 10:30:52.815 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 10:30:52.817 +08:00 [INF] The token request was successfully validated. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 10:30:52.817 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 10:30:52.819 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 10:30:52.820 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 10:30:52.820 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 10:30:52.820 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 10:30:52.821 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 10:30:52.821 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 10:30:52.821 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 10:30:52.821 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 10:30:52.821 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 10:30:52.829 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 10:30:52.831 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 10:30:52.831 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 10:30:52.905 +08:00 [DBG] Remove dynamic claims cache for user: 9cfa2326-fcd1-b20e-a0d4-3a147fca9801 +2024-08-20 10:30:52.929 +08:00 [DBG] Get dynamic claims cache for user: 9cfa2326-fcd1-b20e-a0d4-3a147fca9801 +2024-08-20 10:30:52.930 +08:00 [DBG] Filling dynamic claims cache for user: 9cfa2326-fcd1-b20e-a0d4-3a147fca9801 +2024-08-20 10:30:52.975 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 10:30:52.976 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 10:30:52.976 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 10:30:52.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 10:30:52.978 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 10:30:52.978 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 10:30:52.979 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 10:30:52.980 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 10:30:52.981 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 10:30:52.981 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 10:30:52.996 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 10:30:53.018 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 10:30:53.018 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 10:30:53.018 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.019 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3599 +}. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.019 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 10:30:53.020 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 188.9375ms +2024-08-20 10:30:53.020 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 10:30:53.032 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 200 1188 application/json;charset=UTF-8 280.7559ms +2024-08-20 10:51:26.888 +08:00 [INF] Application is shutting down... +2024-08-20 10:51:27.677 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 10:51:42.557 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 10:51:44.937 +08:00 [INF] Loaded ABP modules: +2024-08-20 10:51:44.938 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 10:51:44.938 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 10:51:44.939 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 10:51:44.939 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 10:51:45.284 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 10:51:45.805 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 10:51:45.903 +08:00 [INF] Initialized all ABP modules. +2024-08-20 10:51:46.003 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 10:51:46.008 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 10:51:46.008 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 10:51:46.008 +08:00 [INF] Hosting environment: Development +2024-08-20 10:51:46.008 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 11:51:45.420 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 11:51:45.657 +08:00 [INF] Start cleanup. +2024-08-20 11:51:45.657 +08:00 [INF] Start cleanup tokens. +2024-08-20 11:51:46.316 +08:00 [ERR] This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. +MongoDB.Driver.MongoCommandException: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. + ---> MongoDB.Driver.MongoCommandException: Command aggregate failed: Transaction numbers are only allowed on a replica set member or mongos. + --- End of inner exception stack trace --- + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) + at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) + at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExecutableQuery`3.ExecuteAsync(IClientSessionHandle session, CancellationToken cancellationToken) + at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) + at Volo.Abp.OpenIddict.Tokens.MongoOpenIddictTokenRepository.PruneAsync(DateTime date, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.OpenIddict.Tokens.AbpOpenIddictTokenStore.PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) + at Volo.Abp.OpenIddict.Tokens.TokenCleanupService.CleanAsync() +2024-08-20 11:51:46.317 +08:00 [INF] Start cleanup authorizations. +2024-08-20 11:51:46.325 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 11:51:46.476 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 11:55:41.155 +08:00 [INF] Application is shutting down... +2024-08-20 11:55:41.198 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 11:55:46.660 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 11:55:48.126 +08:00 [INF] Loaded ABP modules: +2024-08-20 11:55:48.127 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 11:55:48.127 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 11:55:48.127 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 11:55:48.328 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 11:55:48.738 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 11:55:48.807 +08:00 [INF] Initialized all ABP modules. +2024-08-20 11:55:48.870 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 11:55:48.881 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 11:55:48.881 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 11:55:48.881 +08:00 [INF] Hosting environment: Development +2024-08-20 11:55:48.881 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 11:57:26.821 +08:00 [INF] Application is shutting down... +2024-08-20 11:57:26.834 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 11:57:49.621 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 11:57:52.635 +08:00 [INF] Loaded ABP modules: +2024-08-20 11:57:52.635 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 11:57:52.635 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 11:57:52.636 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 11:57:52.636 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 11:57:53.302 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 11:57:53.794 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 11:57:54.279 +08:00 [INF] Initialized all ABP modules. +2024-08-20 11:57:54.397 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 11:57:54.405 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 11:57:54.405 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 11:57:54.405 +08:00 [INF] Hosting environment: Development +2024-08-20 11:57:54.405 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 11:58:30.135 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 14:27:04.797 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 14:27:08.128 +08:00 [INF] Loaded ABP modules: +2024-08-20 14:27:08.129 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 14:27:08.129 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 14:27:08.130 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 14:27:08.130 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 14:27:08.349 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 14:27:08.756 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 14:27:08.814 +08:00 [INF] Initialized all ABP modules. +2024-08-20 14:27:08.866 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 14:27:08.872 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 14:27:08.872 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 14:27:08.872 +08:00 [INF] Hosting environment: Development +2024-08-20 14:27:08.872 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 14:27:26.148 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 14:27:26.704 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 14:27:26.707 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 14:27:26.707 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 14:27:26.708 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 14:27:26.717 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:26.719 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:26.720 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:26.723 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 14:27:26.723 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 14:27:26.726 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 14:27:26.727 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 14:27:26.727 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 14:27:26.728 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 14:27:26.728 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 14:27:26.728 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 14:27:26.728 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 14:27:26.729 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 14:27:26.729 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 14:27:26.864 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 14:27:26.865 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 14:27:26.867 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 14:27:26.868 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 14:27:26.868 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 14:27:26.869 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 14:27:26.963 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 14:27:26.970 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 14:27:26.971 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 14:27:26.972 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 14:27:26.972 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 14:27:26.976 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 14:27:26.979 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 14:27:26.981 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 14:27:26.981 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 14:27:26.982 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 14:27:26.982 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 14:27:26.982 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 14:27:26.983 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 14:27:26.983 +08:00 [INF] The token request was successfully validated. +2024-08-20 14:27:26.983 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 14:27:26.984 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 14:27:26.986 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:26.987 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:26.987 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 14:27:26.987 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 14:27:27.013 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 14:27:27.020 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 14:27:27.021 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 14:27:27.022 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 14:27:27.022 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 14:27:27.023 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 14:27:27.024 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 14:27:27.024 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 14:27:27.024 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 14:27:27.313 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 14:27:27.324 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 14:27:27.325 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 14:27:27.674 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 14:27:27.775 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 14:27:27.777 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 14:27:28.012 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 14:27:28.016 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 14:27:28.021 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 14:27:28.057 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 14:27:28.058 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 14:27:28.059 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 14:27:28.060 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 14:27:28.061 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 14:27:28.061 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 14:27:28.064 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 14:27:28.077 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 14:27:28.078 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 14:27:28.082 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 14:27:28.087 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 14:27:28.087 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 14:27:28.089 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 14:27:28.166 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 14:27:28.220 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 14:27:28.221 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 14:27:28.221 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 14:27:28.223 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 14:27:28.224 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 14:27:28.225 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.225 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.226 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.226 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3600 +}. +2024-08-20 14:27:28.228 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.229 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.229 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.229 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 14:27:28.234 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 907.146ms +2024-08-20 14:27:28.234 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 14:27:28.319 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2171.2808ms +2024-08-20 15:21:19.323 +08:00 [INF] Application is shutting down... +2024-08-20 15:21:19.550 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 15:27:45.499 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 15:27:48.443 +08:00 [INF] Loaded ABP modules: +2024-08-20 15:27:48.444 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 15:27:48.444 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 15:27:48.445 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 15:27:48.445 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 15:27:48.799 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 15:27:49.338 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 15:27:49.468 +08:00 [INF] Initialized all ABP modules. +2024-08-20 15:27:49.596 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 15:27:49.626 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 15:27:49.626 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 15:27:49.626 +08:00 [INF] Hosting environment: Development +2024-08-20 15:27:49.626 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 15:28:31.596 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 15:28:31.939 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 15:28:31.944 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 15:28:31.944 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 15:28:31.946 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 15:28:31.960 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:31.962 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:31.963 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:31.969 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 15:28:31.969 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 15:28:31.972 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 15:28:31.972 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 15:28:31.972 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 15:28:31.973 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 15:28:31.973 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 15:28:31.974 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 15:28:31.974 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 15:28:31.974 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 15:28:31.974 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 15:28:32.745 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 15:28:32.746 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 15:28:32.749 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 15:28:32.751 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 15:28:32.752 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 15:28:32.753 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 15:28:32.841 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 15:28:32.848 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 15:28:32.850 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 15:28:32.851 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 15:28:32.852 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 15:28:32.856 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 15:28:32.858 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 15:28:32.860 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 15:28:32.861 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 15:28:32.861 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 15:28:32.861 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 15:28:32.862 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 15:28:32.862 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 15:28:32.862 +08:00 [INF] The token request was successfully validated. +2024-08-20 15:28:32.862 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 15:28:32.863 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 15:28:32.864 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:32.864 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:32.864 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 15:28:32.864 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 15:28:32.890 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 15:28:32.900 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 15:28:32.900 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 15:28:32.901 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 15:28:32.902 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 15:28:32.902 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 15:28:32.902 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 15:28:32.902 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 15:28:32.903 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 15:28:33.207 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 15:28:33.245 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 15:28:33.250 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 15:28:33.728 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 15:28:33.838 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 15:28:33.840 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 15:28:34.063 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 15:28:34.068 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 15:28:34.073 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 15:28:34.125 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 15:28:34.126 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 15:28:34.128 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 15:28:34.128 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 15:28:34.130 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 15:28:34.130 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 15:28:34.134 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 15:28:34.147 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 15:28:34.148 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 15:28:34.155 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 15:28:34.161 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 15:28:34.162 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 15:28:34.163 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 15:28:34.251 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 15:28:34.313 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 15:28:34.313 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 15:28:34.314 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 15:28:34.316 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 15:28:34.317 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 15:28:34.318 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.318 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.319 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.320 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3600 +}. +2024-08-20 15:28:34.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 15:28:34.328 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 1080.1845ms +2024-08-20 15:28:34.329 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 15:28:34.439 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2843.9904ms +2024-08-20 15:46:01.892 +08:00 [INF] Application is shutting down... +2024-08-20 15:46:01.996 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 15:46:52.463 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 15:46:54.000 +08:00 [INF] Loaded ABP modules: +2024-08-20 15:46:54.001 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 15:46:54.001 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 15:46:54.001 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 15:46:54.198 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 15:46:54.585 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 15:46:54.734 +08:00 [INF] Initialized all ABP modules. +2024-08-20 15:46:54.798 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 15:46:54.808 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 15:46:54.808 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 15:46:54.808 +08:00 [INF] Hosting environment: Development +2024-08-20 15:46:54.808 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 15:49:58.671 +08:00 [INF] Application is shutting down... +2024-08-20 15:49:58.712 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 15:50:04.841 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 15:50:05.894 +08:00 [INF] Loaded ABP modules: +2024-08-20 15:50:05.895 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 15:50:05.895 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 15:50:05.895 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 15:50:06.064 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 15:50:06.401 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 15:50:06.483 +08:00 [INF] Initialized all ABP modules. +2024-08-20 15:50:06.531 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 15:50:06.539 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 15:50:06.539 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 15:50:06.539 +08:00 [INF] Hosting environment: Development +2024-08-20 15:50:06.539 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 16:07:30.953 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 16:07:31.335 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 16:07:31.338 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 16:07:31.339 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 16:07:31.341 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 16:07:31.355 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:31.356 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:31.357 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:31.360 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 16:07:31.360 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 16:07:31.363 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 16:07:31.364 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 16:07:31.364 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 16:07:31.365 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 16:07:31.365 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 16:07:31.365 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 16:07:31.366 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 16:07:31.366 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 16:07:31.367 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 16:07:31.979 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 16:07:31.980 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 16:07:31.983 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 16:07:31.984 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 16:07:31.985 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 16:07:31.986 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 16:07:32.099 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 16:07:32.107 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 16:07:32.110 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 16:07:32.110 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 16:07:32.111 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 16:07:32.118 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 16:07:32.121 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 16:07:32.124 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 16:07:32.125 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 16:07:32.125 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 16:07:32.125 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 16:07:32.126 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 16:07:32.126 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 16:07:32.128 +08:00 [INF] The token request was successfully validated. +2024-08-20 16:07:32.128 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 16:07:32.130 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 16:07:32.131 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:32.131 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:32.131 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 16:07:32.131 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 16:07:32.152 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 16:07:32.161 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 16:07:32.162 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 16:07:32.162 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 16:07:32.163 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 16:07:32.163 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 16:07:32.164 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 16:07:32.164 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 16:07:32.164 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 16:07:32.452 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 16:07:32.468 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 16:07:32.469 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 16:07:32.938 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 16:07:33.039 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 16:07:33.041 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 16:07:33.249 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 16:07:33.254 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 16:07:33.258 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 16:07:33.296 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 16:07:33.297 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 16:07:33.298 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 16:07:33.298 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 16:07:33.300 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 16:07:33.300 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 16:07:33.303 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 16:07:33.315 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 16:07:33.316 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 16:07:33.321 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 16:07:33.325 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 16:07:33.326 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 16:07:33.327 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 16:07:33.414 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 16:07:33.482 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 16:07:33.483 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 16:07:33.484 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 16:07:33.486 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 16:07:33.487 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 16:07:33.487 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.488 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.488 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.489 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3600 +}. +2024-08-20 16:07:33.491 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.491 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.491 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.491 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 16:07:33.498 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 1026.5192ms +2024-08-20 16:07:33.498 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 16:07:33.581 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2634.884ms +2024-08-20 16:49:09.376 +08:00 [INF] Application is shutting down... +2024-08-20 16:49:10.366 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 16:50:31.478 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 16:50:33.867 +08:00 [INF] Loaded ABP modules: +2024-08-20 16:50:33.868 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 16:50:33.868 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 16:50:33.868 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 16:50:34.133 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 16:50:34.700 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 16:50:34.799 +08:00 [INF] Initialized all ABP modules. +2024-08-20 16:50:34.902 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 16:50:34.914 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 16:50:34.915 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 16:50:34.915 +08:00 [INF] Hosting environment: Development +2024-08-20 16:50:34.915 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 16:54:18.197 +08:00 [INF] Application is shutting down... +2024-08-20 16:54:18.254 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:18:00.719 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 17:18:02.321 +08:00 [INF] Loaded ABP modules: +2024-08-20 17:18:02.322 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 17:18:02.322 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 17:18:02.322 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 17:18:02.505 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:18:02.923 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 17:18:03.106 +08:00 [INF] Initialized all ABP modules. +2024-08-20 17:18:03.492 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 17:18:03.521 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 17:18:03.522 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 17:18:03.522 +08:00 [INF] Hosting environment: Development +2024-08-20 17:18:03.522 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 17:19:34.056 +08:00 [INF] Application is shutting down... +2024-08-20 17:19:34.138 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:21:02.429 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 17:21:03.813 +08:00 [INF] Loaded ABP modules: +2024-08-20 17:21:03.813 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 17:21:03.813 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 17:21:03.813 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 17:21:03.813 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 17:21:03.813 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 17:21:03.814 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 17:21:03.814 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 17:21:03.975 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:21:04.331 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 17:21:04.413 +08:00 [INF] Initialized all ABP modules. +2024-08-20 17:21:04.472 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 17:21:04.481 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 17:21:04.481 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 17:21:04.481 +08:00 [INF] Hosting environment: Development +2024-08-20 17:21:04.481 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 17:28:54.359 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 17:28:54.826 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 17:28:54.830 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 17:28:54.830 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 17:28:54.833 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 17:28:54.852 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:54.858 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:54.859 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:54.871 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 17:28:54.872 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 17:28:54.878 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 17:28:54.878 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 17:28:54.879 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 17:28:54.881 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 17:28:54.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 17:28:54.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 17:28:54.886 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 17:28:54.886 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 17:28:54.886 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 17:28:55.716 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 17:28:55.721 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 17:28:55.727 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 17:28:55.733 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 17:28:55.734 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 17:28:55.737 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 17:28:55.855 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 17:28:55.862 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 17:28:55.864 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 17:28:55.865 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 17:28:55.866 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 17:28:55.869 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 17:28:55.870 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 17:28:55.872 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 17:28:55.872 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 17:28:55.873 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 17:28:55.873 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 17:28:55.873 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 17:28:55.873 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 17:28:55.874 +08:00 [INF] The token request was successfully validated. +2024-08-20 17:28:55.874 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 17:28:55.875 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 17:28:55.875 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:55.876 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:55.876 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 17:28:55.876 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 17:28:55.893 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 17:28:55.901 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 17:28:55.901 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 17:28:55.902 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 17:28:55.903 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 17:28:55.903 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 17:28:55.904 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 17:28:55.904 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 17:28:55.904 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 17:28:56.203 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 17:28:56.218 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 17:28:56.219 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 17:28:56.589 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 17:28:56.681 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 17:28:56.683 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 17:28:56.891 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 17:28:56.895 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 17:28:56.899 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 17:28:56.936 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 17:28:56.936 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 17:28:56.937 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 17:28:56.938 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 17:28:56.939 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 17:28:56.940 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 17:28:56.944 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 17:28:56.957 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 17:28:56.958 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 17:28:56.962 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 17:28:56.969 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 17:28:56.969 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 17:28:56.971 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 17:28:57.044 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 17:28:57.111 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 17:28:57.112 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 17:28:57.113 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 17:28:57.118 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 17:28:57.121 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 17:28:57.121 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.122 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.123 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.125 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3599 +}. +2024-08-20 17:28:57.132 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.132 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.132 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.132 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:28:57.144 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 919.6753ms +2024-08-20 17:28:57.145 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 17:28:57.275 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2921.2716ms +2024-08-20 17:33:06.056 +08:00 [INF] Application is shutting down... +2024-08-20 17:33:06.134 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:36:55.095 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 17:36:56.283 +08:00 [INF] Loaded ABP modules: +2024-08-20 17:36:56.284 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 17:36:56.284 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 17:36:56.284 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 17:36:56.503 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:36:56.874 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 17:36:56.963 +08:00 [INF] Initialized all ABP modules. +2024-08-20 17:36:57.023 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 17:36:57.037 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 17:36:57.037 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 17:36:57.037 +08:00 [INF] Hosting environment: Development +2024-08-20 17:36:57.038 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 17:37:20.733 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 17:37:20.882 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 17:37:20.885 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 17:37:20.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 17:37:20.887 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 17:37:20.897 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:20.898 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:20.898 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:20.903 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 17:37:20.903 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 17:37:20.910 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 17:37:20.911 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 17:37:20.911 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 17:37:20.912 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 17:37:20.912 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 17:37:20.913 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 17:37:20.914 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 17:37:20.914 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 17:37:20.914 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 17:37:21.513 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 17:37:21.514 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 17:37:21.516 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 17:37:21.517 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 17:37:21.518 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 17:37:21.519 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 17:37:21.581 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 17:37:21.583 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 17:37:21.585 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 17:37:21.585 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 17:37:21.586 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 17:37:21.590 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 17:37:21.591 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 17:37:21.593 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 17:37:21.594 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 17:37:21.594 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 17:37:21.595 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 17:37:21.595 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 17:37:21.595 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 17:37:21.595 +08:00 [INF] The token request was successfully validated. +2024-08-20 17:37:21.595 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 17:37:21.596 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 17:37:21.597 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:21.597 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:21.597 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 17:37:21.597 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 17:37:21.614 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 17:37:21.620 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 17:37:21.620 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 17:37:21.621 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 17:37:21.621 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 17:37:21.621 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 17:37:21.622 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 17:37:21.622 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 17:37:21.622 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 17:37:21.857 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 17:37:21.867 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 17:37:21.868 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 17:37:22.236 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 17:37:22.337 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 17:37:22.339 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 17:37:22.544 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 17:37:22.549 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 17:37:22.553 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 17:37:22.590 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 17:37:22.591 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 17:37:22.592 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 17:37:22.593 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 17:37:22.594 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 17:37:22.595 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 17:37:22.598 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 17:37:22.615 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 17:37:22.616 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 17:37:22.622 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 17:37:22.630 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 17:37:22.631 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 17:37:22.635 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 17:37:22.720 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 17:37:22.788 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 17:37:22.789 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 17:37:22.790 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 17:37:22.792 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 17:37:22.793 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 17:37:22.794 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.794 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.795 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.795 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3599 +}. +2024-08-20 17:37:22.798 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.798 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.798 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.798 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 17:37:22.803 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 933.3686ms +2024-08-20 17:37:22.804 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 17:37:22.866 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2133.7365ms +2024-08-20 17:44:31.885 +08:00 [INF] Application is shutting down... +2024-08-20 17:44:31.977 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:44:37.558 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 17:44:38.527 +08:00 [INF] Loaded ABP modules: +2024-08-20 17:44:38.528 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 17:44:38.528 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 17:44:38.528 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 17:44:38.678 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:44:39.068 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 17:44:39.168 +08:00 [INF] Initialized all ABP modules. +2024-08-20 17:44:39.210 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 17:44:39.216 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 17:44:39.216 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 17:44:39.216 +08:00 [INF] Hosting environment: Development +2024-08-20 17:44:39.216 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 17:51:37.953 +08:00 [INF] Application is shutting down... +2024-08-20 17:51:38.042 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:51:47.761 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 17:51:49.050 +08:00 [INF] Loaded ABP modules: +2024-08-20 17:51:49.050 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 17:51:49.051 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 17:51:49.051 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 17:51:49.268 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:51:49.759 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 17:51:49.860 +08:00 [INF] Initialized all ABP modules. +2024-08-20 17:51:49.945 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 17:51:49.951 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 17:51:49.951 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 17:51:49.951 +08:00 [INF] Hosting environment: Development +2024-08-20 17:51:49.951 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 17:56:49.978 +08:00 [INF] Application is shutting down... +2024-08-20 17:56:50.022 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:57:53.012 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 17:57:54.431 +08:00 [INF] Loaded ABP modules: +2024-08-20 17:57:54.432 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 17:57:54.432 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 17:57:54.432 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 17:57:54.433 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 17:57:54.433 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 17:57:54.433 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 17:57:54.433 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 17:57:54.650 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 17:57:55.093 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 17:57:55.150 +08:00 [INF] Initialized all ABP modules. +2024-08-20 17:57:55.230 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 17:57:55.236 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 17:57:55.236 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 17:57:55.236 +08:00 [INF] Hosting environment: Development +2024-08-20 17:57:55.236 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 18:01:30.579 +08:00 [INF] Application is shutting down... +2024-08-20 18:01:30.623 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 18:06:07.549 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 18:06:08.942 +08:00 [INF] Loaded ABP modules: +2024-08-20 18:06:08.943 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 18:06:08.943 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 18:06:08.943 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 18:06:08.943 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 18:06:08.944 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 18:06:09.330 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 18:06:10.650 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 18:06:10.857 +08:00 [INF] Initialized all ABP modules. +2024-08-20 18:06:10.935 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 18:06:10.944 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 18:06:10.944 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 18:06:10.944 +08:00 [INF] Hosting environment: Development +2024-08-20 18:06:10.944 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 18:32:08.781 +08:00 [INF] Application is shutting down... +2024-08-20 18:32:08.937 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 20:25:59.891 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 20:26:03.310 +08:00 [INF] Loaded ABP modules: +2024-08-20 20:26:03.313 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 20:26:03.313 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 20:26:03.314 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 20:26:03.315 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 20:26:03.315 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 20:26:03.964 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 20:26:05.324 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 20:26:06.012 +08:00 [INF] Initialized all ABP modules. +2024-08-20 20:26:06.214 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 20:26:06.220 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 20:26:06.220 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 20:26:06.220 +08:00 [INF] Hosting environment: Development +2024-08-20 20:26:06.220 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 20:27:20.424 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 20:27:20.955 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 20:27:20.958 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 20:27:20.958 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 20:27:20.959 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 20:27:20.969 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:20.971 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:20.972 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:20.975 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 20:27:20.975 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 20:27:20.977 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 20:27:20.978 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 20:27:20.978 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 20:27:20.979 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 20:27:20.979 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 20:27:20.980 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 20:27:20.980 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 20:27:20.980 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 20:27:20.980 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 20:27:21.097 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 20:27:21.098 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 20:27:21.100 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 20:27:21.101 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 20:27:21.101 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 20:27:21.102 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 20:27:21.192 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 20:27:21.200 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 20:27:21.204 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 20:27:21.205 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 20:27:21.206 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 20:27:21.209 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 20:27:21.212 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 20:27:21.214 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 20:27:21.215 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 20:27:21.215 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 20:27:21.216 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 20:27:21.217 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 20:27:21.217 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 20:27:21.218 +08:00 [INF] The token request was successfully validated. +2024-08-20 20:27:21.218 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 20:27:21.219 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 20:27:21.220 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:21.220 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:21.220 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 20:27:21.220 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 20:27:21.240 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 20:27:21.265 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 20:27:21.265 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 20:27:21.266 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 20:27:21.266 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 20:27:21.267 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 20:27:21.268 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 20:27:21.268 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 20:27:21.268 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 20:27:21.504 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 20:27:21.516 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 20:27:21.517 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 20:27:21.915 +08:00 [DBG] Remove dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 20:27:22.008 +08:00 [DBG] Get dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 20:27:22.010 +08:00 [DBG] Filling dynamic claims cache for user: 66039ab9-04e6-8fba-e5ca-3a146290a0c6 +2024-08-20 20:27:22.202 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 20:27:22.207 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 20:27:22.212 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 20:27:22.247 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 20:27:22.247 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 20:27:22.248 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 20:27:22.249 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 20:27:22.250 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 20:27:22.250 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 20:27:22.254 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 20:27:22.264 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 20:27:22.265 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 20:27:22.269 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 20:27:22.274 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 20:27:22.274 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 20:27:22.275 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 20:27:22.358 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 20:27:22.421 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 20:27:22.422 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 20:27:22.423 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 20:27:22.426 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 20:27:22.428 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 20:27:22.428 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.429 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.429 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.431 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3600 +}. +2024-08-20 20:27:22.434 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.434 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.434 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.434 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 20:27:22.442 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 921.8747ms +2024-08-20 20:27:22.444 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 20:27:22.544 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=admin&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2122.108ms +2024-08-20 20:57:32.002 +08:00 [INF] Application is shutting down... +2024-08-20 20:57:32.131 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 21:38:46.868 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 21:38:48.016 +08:00 [INF] Loaded ABP modules: +2024-08-20 21:38:48.016 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 21:38:48.016 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 21:38:48.017 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 21:38:48.017 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 21:38:48.176 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 21:38:48.569 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 21:38:48.634 +08:00 [INF] Initialized all ABP modules. +2024-08-20 21:38:48.675 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 21:38:48.680 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 21:38:48.681 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 21:38:48.681 +08:00 [INF] Hosting environment: Development +2024-08-20 21:38:48.681 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 21:40:01.642 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:8099/.well-known/openid-configuration - null null +2024-08-20 21:40:01.794 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 21:40:01.797 +08:00 [INF] The request URI matched a server endpoint: "Configuration". +2024-08-20 21:40:01.797 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 21:40:01.799 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 21:40:01.803 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractConfigurationRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractConfigurationRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:01.806 +08:00 [INF] The configuration request was successfully extracted: {}. +2024-08-20 21:40:01.806 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ExtractConfigurationRequest. +2024-08-20 21:40:01.807 +08:00 [INF] The configuration request was successfully validated. +2024-08-20 21:40:01.807 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ValidateConfigurationRequest. +2024-08-20 21:40:01.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachIssuer. +2024-08-20 21:40:01.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachEndpoints. +2024-08-20 21:40:01.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachGrantTypes. +2024-08-20 21:40:01.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachResponseModes. +2024-08-20 21:40:01.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachResponseTypes. +2024-08-20 21:40:01.812 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachClientAuthenticationMethods. +2024-08-20 21:40:01.812 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachCodeChallengeMethods. +2024-08-20 21:40:01.813 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachScopes. +2024-08-20 21:40:02.280 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by Volo.Abp.OpenIddict.Scopes.AttachScopes. +2024-08-20 21:40:02.281 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachClaims. +2024-08-20 21:40:02.281 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSubjectTypes. +2024-08-20 21:40:02.282 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSigningAlgorithms. +2024-08-20 21:40:02.283 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachAdditionalMetadata. +2024-08-20 21:40:02.285 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+HandleConfigurationRequest. +2024-08-20 21:40:02.287 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.288 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.289 +08:00 [INF] The response was successfully returned as a JSON document: { + "issuer": "http://localhost:8099/", + "authorization_endpoint": "http://localhost:8099/connect/authorize", + "token_endpoint": "http://localhost:8099/connect/token", + "introspection_endpoint": "http://localhost:8099/connect/introspect", + "end_session_endpoint": "http://localhost:8099/connect/logout", + "revocation_endpoint": "http://localhost:8099/connect/revocat", + "userinfo_endpoint": "http://localhost:8099/connect/userinfo", + "device_authorization_endpoint": "http://localhost:8099/device", + "jwks_uri": "http://localhost:8099/.well-known/jwks", + "grant_types_supported": [ + "client_credentials", + "authorization_code", + "implicit", + "password", + "refresh_token", + "urn:ietf:params:oauth:grant-type:device_code", + "login_credentials" + ], + "response_types_supported": [ + "code", + "code id_token", + "code id_token token", + "code token", + "id_token", + "id_token token", + "token", + "none" + ], + "response_modes_supported": [ + "form_post", + "fragment", + "query" + ], + "scopes_supported": [ + "openid", + "offline_access", + "email", + "profile", + "phone", + "roles", + "address", + "AElfScanServer" + ], + "claims_supported": [ + "aud", + "exp", + "iat", + "iss", + "sub" + ], + "id_token_signing_alg_values_supported": [ + "RS256" + ], + "code_challenge_methods_supported": [ + "plain", + "S256" + ], + "subject_types_supported": [ + "public" + ], + "token_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "introspection_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "revocation_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "device_authorization_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "claims_parameter_supported": false, + "request_parameter_supported": false, + "request_uri_parameter_supported": false, + "authorization_response_iss_parameter_supported": true +}. +2024-08-20 21:40:02.293 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.293 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.294 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyConfigurationResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.294 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyConfigurationResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.298 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:8099/.well-known/openid-configuration - 200 2163 application/json;charset=UTF-8 657.0458ms +2024-08-20 21:40:02.311 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:8099/.well-known/jwks - null null +2024-08-20 21:40:02.312 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 21:40:02.312 +08:00 [INF] The request URI matched a server endpoint: "Cryptography". +2024-08-20 21:40:02.312 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 21:40:02.312 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 21:40:02.313 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractCryptographyRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractCryptographyRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.313 +08:00 [INF] The cryptography request was successfully extracted: {}. +2024-08-20 21:40:02.313 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ExtractCryptographyRequest. +2024-08-20 21:40:02.314 +08:00 [INF] The cryptography request was successfully validated. +2024-08-20 21:40:02.314 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ValidateCryptographyRequest. +2024-08-20 21:40:02.320 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleCryptographyRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSigningKeys. +2024-08-20 21:40:02.321 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+HandleCryptographyRequest. +2024-08-20 21:40:02.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.322 +08:00 [INF] The response was successfully returned as a JSON document: { + "keys": [ + { + "kid": "C81BF52089DF1C3C6E021A959CE81D30E68FE759", + "use": "sig", + "kty": "RSA", + "alg": "RS256", + "e": "AQAB", + "n": "qfePedhEYUUF1J32RfcJVgVXb-g2uaaC-XDEoimf-2IHMtMNOUZw23XZU3pN9QJ2YuZPjGLFPms0I2G5Sp3P-jyckTQpxLdPAurqvzdZIZR33JUfZ44pO7zBupiQa4dvusFDMjqTx0YuW3KKHEFQCVllQseQV2Uy-U4clHu9b_VAiiMl4_n5WvxWqgKXCksPREoJLoDYyAR3Yk4nx9F6O944RLlp1172EuVvSKURTtdejms3F6N3-eAHdLlqv5otaPFFZ8_Ac0mlmG2mHywTeNjs4oM3kHxkwkmZs9_LxIxNDfxk39VBT6BIDv-6OCGFkwmVdfJvyCEqG2WS0XzRrw", + "x5t": "yBv1IInfHDxuAhqVnOgdMOaP51k", + "x5c": [ + "MIIC9DCCAdygAwIBAgIIQDFO8N5AZHMwDQYJKoZIhvcNAQELBQAwMDEuMCwGA1UEAxMlT3BlbklkZGljdCBTZXJ2ZXIgU2lnbmluZyBDZXJ0aWZpY2F0ZTAeFw0yMzA5MDgwMjQ1MDZaFw0yNTA5MDgwMjQ1MDZaMDAxLjAsBgNVBAMTJU9wZW5JZGRpY3QgU2VydmVyIFNpZ25pbmcgQ2VydGlmaWNhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp94952ERhRQXUnfZF9wlWBVdv6Da5poL5cMSiKZ/7Ygcy0w05RnDbddlTek31AnZi5k+MYsU+azQjYblKnc/6PJyRNCnEt08C6uq/N1khlHfclR9njik7vMG6mJBrh2+6wUMyOpPHRi5bcoocQVAJWWVCx5BXZTL5ThyUe71v9UCKIyXj+fla/FaqApcKSw9ESgkugNjIBHdiTifH0Xo73jhEuWnXXvYS5W9IpRFO116OazcXo3f54Ad0uWq/mi1o8UVnz8BzSaWYbaYfLBN42OzigzeQfGTCSZmz38vEjE0N/GTf1UFPoEgO/7o4IYWTCZV18m/IISobZZLRfNGvAgMBAAGjEjAQMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAV76exWrOFsACD/cOd7j7ANVD13RPLAJ6RhCp5w7ADHGf/BRpmUb9GrKVK/8aQtXLVKpgRqiFEZRsOHyoPUszowK1A5GMkNZEDdp1yzGlVchQXJOShz2KmuZJOCoJK7+WzVz4Jivnie74PMdrUrk5POb7Mh/XaQXyTZrV78iNA2ab+we90xFHCcvwXaF0sxYTjJRQCn16c76EgllKrB9eEfo54ExEosboiCI9DaxMHymD67RiWeZxj3iJYlc1X8JJeWCrn+D3xDEEx6aHuJ3wI0eWua8utsqluug43m2EsPhHhSBZxumgoEHdQYYUlvlcZebVrV1eNGowm5E+Sw/dGQ==" + ] + } + ] +}. +2024-08-20 21:40:02.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyCryptographyResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.322 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyCryptographyResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:40:02.323 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:8099/.well-known/jwks - 200 1620 application/json;charset=UTF-8 11.7838ms +2024-08-20 21:42:28.614 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:8099/.well-known/openid-configuration - null null +2024-08-20 21:42:28.621 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 21:42:28.622 +08:00 [INF] The request URI matched a server endpoint: "Configuration". +2024-08-20 21:42:28.622 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 21:42:28.622 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 21:42:28.623 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractConfigurationRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractConfigurationRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.623 +08:00 [INF] The configuration request was successfully extracted: {}. +2024-08-20 21:42:28.624 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ExtractConfigurationRequest. +2024-08-20 21:42:28.624 +08:00 [INF] The configuration request was successfully validated. +2024-08-20 21:42:28.624 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ValidateConfigurationRequest. +2024-08-20 21:42:28.625 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachIssuer. +2024-08-20 21:42:28.625 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachEndpoints. +2024-08-20 21:42:28.625 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachGrantTypes. +2024-08-20 21:42:28.625 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachResponseModes. +2024-08-20 21:42:28.625 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachResponseTypes. +2024-08-20 21:42:28.626 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachClientAuthenticationMethods. +2024-08-20 21:42:28.626 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachCodeChallengeMethods. +2024-08-20 21:42:28.626 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachScopes. +2024-08-20 21:42:28.661 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by Volo.Abp.OpenIddict.Scopes.AttachScopes. +2024-08-20 21:42:28.662 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachClaims. +2024-08-20 21:42:28.662 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSubjectTypes. +2024-08-20 21:42:28.662 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSigningAlgorithms. +2024-08-20 21:42:28.662 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachAdditionalMetadata. +2024-08-20 21:42:28.662 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+HandleConfigurationRequest. +2024-08-20 21:42:28.663 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.663 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.663 +08:00 [INF] The response was successfully returned as a JSON document: { + "issuer": "http://localhost:8099/", + "authorization_endpoint": "http://localhost:8099/connect/authorize", + "token_endpoint": "http://localhost:8099/connect/token", + "introspection_endpoint": "http://localhost:8099/connect/introspect", + "end_session_endpoint": "http://localhost:8099/connect/logout", + "revocation_endpoint": "http://localhost:8099/connect/revocat", + "userinfo_endpoint": "http://localhost:8099/connect/userinfo", + "device_authorization_endpoint": "http://localhost:8099/device", + "jwks_uri": "http://localhost:8099/.well-known/jwks", + "grant_types_supported": [ + "client_credentials", + "authorization_code", + "implicit", + "password", + "refresh_token", + "urn:ietf:params:oauth:grant-type:device_code", + "login_credentials" + ], + "response_types_supported": [ + "code", + "code id_token", + "code id_token token", + "code token", + "id_token", + "id_token token", + "token", + "none" + ], + "response_modes_supported": [ + "form_post", + "fragment", + "query" + ], + "scopes_supported": [ + "openid", + "offline_access", + "email", + "profile", + "phone", + "roles", + "address", + "AElfScanServer" + ], + "claims_supported": [ + "aud", + "exp", + "iat", + "iss", + "sub" + ], + "id_token_signing_alg_values_supported": [ + "RS256" + ], + "code_challenge_methods_supported": [ + "plain", + "S256" + ], + "subject_types_supported": [ + "public" + ], + "token_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "introspection_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "revocation_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "device_authorization_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "claims_parameter_supported": false, + "request_parameter_supported": false, + "request_uri_parameter_supported": false, + "authorization_response_iss_parameter_supported": true +}. +2024-08-20 21:42:28.664 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.664 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.664 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyConfigurationResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.664 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyConfigurationResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.666 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:8099/.well-known/openid-configuration - 200 2163 application/json;charset=UTF-8 52.7214ms +2024-08-20 21:42:28.679 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:8099/.well-known/jwks - null null +2024-08-20 21:42:28.679 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 21:42:28.679 +08:00 [INF] The request URI matched a server endpoint: "Cryptography". +2024-08-20 21:42:28.679 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 21:42:28.679 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 21:42:28.680 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractCryptographyRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractCryptographyRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.680 +08:00 [INF] The cryptography request was successfully extracted: {}. +2024-08-20 21:42:28.680 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ExtractCryptographyRequest. +2024-08-20 21:42:28.680 +08:00 [INF] The cryptography request was successfully validated. +2024-08-20 21:42:28.680 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ValidateCryptographyRequest. +2024-08-20 21:42:28.681 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleCryptographyRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSigningKeys. +2024-08-20 21:42:28.681 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+HandleCryptographyRequest. +2024-08-20 21:42:28.681 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.681 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.682 +08:00 [INF] The response was successfully returned as a JSON document: { + "keys": [ + { + "kid": "C81BF52089DF1C3C6E021A959CE81D30E68FE759", + "use": "sig", + "kty": "RSA", + "alg": "RS256", + "e": "AQAB", + "n": "qfePedhEYUUF1J32RfcJVgVXb-g2uaaC-XDEoimf-2IHMtMNOUZw23XZU3pN9QJ2YuZPjGLFPms0I2G5Sp3P-jyckTQpxLdPAurqvzdZIZR33JUfZ44pO7zBupiQa4dvusFDMjqTx0YuW3KKHEFQCVllQseQV2Uy-U4clHu9b_VAiiMl4_n5WvxWqgKXCksPREoJLoDYyAR3Yk4nx9F6O944RLlp1172EuVvSKURTtdejms3F6N3-eAHdLlqv5otaPFFZ8_Ac0mlmG2mHywTeNjs4oM3kHxkwkmZs9_LxIxNDfxk39VBT6BIDv-6OCGFkwmVdfJvyCEqG2WS0XzRrw", + "x5t": "yBv1IInfHDxuAhqVnOgdMOaP51k", + "x5c": [ + "MIIC9DCCAdygAwIBAgIIQDFO8N5AZHMwDQYJKoZIhvcNAQELBQAwMDEuMCwGA1UEAxMlT3BlbklkZGljdCBTZXJ2ZXIgU2lnbmluZyBDZXJ0aWZpY2F0ZTAeFw0yMzA5MDgwMjQ1MDZaFw0yNTA5MDgwMjQ1MDZaMDAxLjAsBgNVBAMTJU9wZW5JZGRpY3QgU2VydmVyIFNpZ25pbmcgQ2VydGlmaWNhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp94952ERhRQXUnfZF9wlWBVdv6Da5poL5cMSiKZ/7Ygcy0w05RnDbddlTek31AnZi5k+MYsU+azQjYblKnc/6PJyRNCnEt08C6uq/N1khlHfclR9njik7vMG6mJBrh2+6wUMyOpPHRi5bcoocQVAJWWVCx5BXZTL5ThyUe71v9UCKIyXj+fla/FaqApcKSw9ESgkugNjIBHdiTifH0Xo73jhEuWnXXvYS5W9IpRFO116OazcXo3f54Ad0uWq/mi1o8UVnz8BzSaWYbaYfLBN42OzigzeQfGTCSZmz38vEjE0N/GTf1UFPoEgO/7o4IYWTCZV18m/IISobZZLRfNGvAgMBAAGjEjAQMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAV76exWrOFsACD/cOd7j7ANVD13RPLAJ6RhCp5w7ADHGf/BRpmUb9GrKVK/8aQtXLVKpgRqiFEZRsOHyoPUszowK1A5GMkNZEDdp1yzGlVchQXJOShz2KmuZJOCoJK7+WzVz4Jivnie74PMdrUrk5POb7Mh/XaQXyTZrV78iNA2ab+we90xFHCcvwXaF0sxYTjJRQCn16c76EgllKrB9eEfo54ExEosboiCI9DaxMHymD67RiWeZxj3iJYlc1X8JJeWCrn+D3xDEEx6aHuJ3wI0eWua8utsqluug43m2EsPhHhSBZxumgoEHdQYYUlvlcZebVrV1eNGowm5E+Sw/dGQ==" + ] + } + ] +}. +2024-08-20 21:42:28.682 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.682 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.682 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyCryptographyResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.682 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyCryptographyResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:28.682 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:8099/.well-known/jwks - 200 1620 application/json;charset=UTF-8 2.8072ms +2024-08-20 21:42:37.539 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-20 21:42:37.563 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 21:42:37.564 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-20 21:42:37.564 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-20 21:42:37.564 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 21:42:37.577 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:37.578 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:37.579 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:37.580 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-20 21:42:37.580 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-20 21:42:37.582 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-20 21:42:37.583 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-20 21:42:37.583 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-20 21:42:37.590 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-20 21:42:37.591 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-20 21:42:37.591 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-20 21:42:37.591 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-20 21:42:37.592 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-20 21:42:37.592 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-20 21:42:37.687 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-20 21:42:37.688 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-20 21:42:37.690 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-20 21:42:37.691 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-20 21:42:37.691 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-20 21:42:37.692 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-20 21:42:37.803 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-20 21:42:37.809 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-20 21:42:37.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-20 21:42:37.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-20 21:42:37.811 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-20 21:42:37.814 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-20 21:42:37.816 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-20 21:42:37.818 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-20 21:42:37.818 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-20 21:42:37.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-20 21:42:37.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-20 21:42:37.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-20 21:42:37.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-20 21:42:37.819 +08:00 [INF] The token request was successfully validated. +2024-08-20 21:42:37.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-20 21:42:37.820 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-20 21:42:37.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:37.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:37.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 21:42:37.821 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-20 21:42:37.839 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-20 21:42:37.846 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-20 21:42:37.846 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-20 21:42:37.847 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-20 21:42:37.847 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-20 21:42:37.848 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-20 21:42:37.848 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 21:42:37.848 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-20 21:42:37.848 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-20 21:42:38.054 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 21:42:38.079 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-20 21:42:38.080 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-20 21:42:38.421 +08:00 [DBG] Remove dynamic claims cache for user: 23b71aef-aa0f-f452-c445-3a14820a22f5 +2024-08-20 21:42:38.504 +08:00 [DBG] Get dynamic claims cache for user: 23b71aef-aa0f-f452-c445-3a14820a22f5 +2024-08-20 21:42:38.506 +08:00 [DBG] Filling dynamic claims cache for user: 23b71aef-aa0f-f452-c445-3a14820a22f5 +2024-08-20 21:42:38.692 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-20 21:42:38.695 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-20 21:42:38.698 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-20 21:42:38.733 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-20 21:42:38.734 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-20 21:42:38.735 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-20 21:42:38.735 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-20 21:42:38.736 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-20 21:42:38.737 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-20 21:42:38.739 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-20 21:42:38.749 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-20 21:42:38.750 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-20 21:42:38.753 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-20 21:42:38.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-20 21:42:38.757 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-20 21:42:38.759 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-20 21:42:38.819 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-20 21:42:38.879 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-20 21:42:38.880 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-20 21:42:38.881 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-20 21:42:38.882 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-20 21:42:38.884 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-20 21:42:38.884 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.884 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.884 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.884 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3599 +}. +2024-08-20 21:42:38.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.885 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-20 21:42:38.889 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 807.9528ms +2024-08-20 21:42:38.890 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-20 21:42:38.934 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 1395.0757ms +2024-08-20 21:46:17.204 +08:00 [INF] Application is shutting down... +2024-08-20 21:46:17.245 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 21:47:55.996 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-20 21:47:57.091 +08:00 [INF] Loaded ABP modules: +2024-08-20 21:47:57.091 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-20 21:47:57.091 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-20 21:47:57.092 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-20 21:47:57.092 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-20 21:47:57.248 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-20 21:47:57.578 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-20 21:47:57.637 +08:00 [INF] Initialized all ABP modules. +2024-08-20 21:47:57.674 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-20 21:47:57.679 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-20 21:47:57.679 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-20 21:47:57.679 +08:00 [INF] Hosting environment: Development +2024-08-20 21:47:57.679 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-20 22:47:57.232 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 22:47:57.383 +08:00 [INF] Start cleanup. +2024-08-20 22:47:57.383 +08:00 [INF] Start cleanup tokens. +2024-08-20 22:47:57.775 +08:00 [ERR] This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. +MongoDB.Driver.MongoCommandException: This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string. + ---> MongoDB.Driver.MongoCommandException: Command aggregate failed: Transaction numbers are only allowed on a replica set member or mongos. + --- End of inner exception stack trace --- + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ProcessResponse(ConnectionId connectionId, CommandMessage responseMessage) + at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol`1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol`1 protocol, ICoreSession session, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.RetryableReadOperationExecutor.ExecuteAsync[TResult](IRetryableReadOperation`1 operation, RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.ReadCommandOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(RetryableReadContext context, CancellationToken cancellationToken) + at MongoDB.Driver.Core.Operations.AggregateOperation`1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken) + at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation`1 operation, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation`1 operation, ReadPreference readPreference, CancellationToken cancellationToken) + at MongoDB.Driver.MongoCollectionImpl`1.AggregateAsync[TResult](IClientSessionHandle session, PipelineDefinition`2 pipeline, AggregateOptions options, CancellationToken cancellationToken) + at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExecutableQuery`3.ExecuteAsync(IClientSessionHandle session, CancellationToken cancellationToken) + at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource`1 source, CancellationToken cancellationToken) + at Volo.Abp.OpenIddict.Tokens.MongoOpenIddictTokenRepository.PruneAsync(DateTime date, CancellationToken cancellationToken) + at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) + at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() + at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation) + at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) + at Volo.Abp.OpenIddict.Tokens.AbpOpenIddictTokenStore.PruneAsync(DateTimeOffset threshold, CancellationToken cancellationToken) + at Volo.Abp.OpenIddict.Tokens.TokenCleanupService.CleanAsync() +2024-08-20 22:47:57.776 +08:00 [INF] Start cleanup authorizations. +2024-08-20 22:47:57.783 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 22:47:57.852 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-20 23:47:57.806 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-20 23:47:57.847 +08:00 [INF] Start cleanup. +2024-08-20 23:47:57.847 +08:00 [INF] Start cleanup tokens. +2024-08-20 23:47:57.871 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 23:47:57.970 +08:00 [INF] Start cleanup authorizations. +2024-08-20 23:47:57.971 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-20 23:47:57.976 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 00:47:58.191 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 00:47:58.230 +08:00 [INF] Start cleanup. +2024-08-21 00:47:58.230 +08:00 [INF] Start cleanup tokens. +2024-08-21 00:47:58.251 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 00:47:58.300 +08:00 [INF] Start cleanup authorizations. +2024-08-21 00:47:58.301 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 00:47:58.306 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 01:47:58.468 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 01:47:58.517 +08:00 [INF] Start cleanup. +2024-08-21 01:47:58.517 +08:00 [INF] Start cleanup tokens. +2024-08-21 01:47:58.541 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 01:47:58.588 +08:00 [INF] Start cleanup authorizations. +2024-08-21 01:47:58.590 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 01:47:58.597 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 02:47:58.710 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 02:47:58.754 +08:00 [INF] Start cleanup. +2024-08-21 02:47:58.754 +08:00 [INF] Start cleanup tokens. +2024-08-21 02:47:58.773 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 02:47:58.828 +08:00 [INF] Start cleanup authorizations. +2024-08-21 02:47:58.829 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 02:47:58.839 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 03:47:58.828 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 03:47:58.863 +08:00 [INF] Start cleanup. +2024-08-21 03:47:58.863 +08:00 [INF] Start cleanup tokens. +2024-08-21 03:47:58.900 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 03:47:58.960 +08:00 [INF] Start cleanup authorizations. +2024-08-21 03:47:58.962 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 03:47:58.969 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 04:47:58.970 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 04:47:58.999 +08:00 [INF] Start cleanup. +2024-08-21 04:47:58.999 +08:00 [INF] Start cleanup tokens. +2024-08-21 04:47:59.019 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 04:47:59.137 +08:00 [INF] Start cleanup authorizations. +2024-08-21 04:47:59.137 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 04:47:59.144 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 05:47:59.158 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 05:47:59.177 +08:00 [INF] Start cleanup. +2024-08-21 05:47:59.177 +08:00 [INF] Start cleanup tokens. +2024-08-21 05:47:59.198 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 05:47:59.265 +08:00 [INF] Start cleanup authorizations. +2024-08-21 05:47:59.266 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 05:47:59.286 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 06:47:59.289 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 06:47:59.311 +08:00 [INF] Start cleanup. +2024-08-21 06:47:59.311 +08:00 [INF] Start cleanup tokens. +2024-08-21 06:47:59.327 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 06:47:59.449 +08:00 [INF] Start cleanup authorizations. +2024-08-21 06:47:59.451 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 06:47:59.467 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 07:47:59.491 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 07:47:59.512 +08:00 [INF] Start cleanup. +2024-08-21 07:47:59.512 +08:00 [INF] Start cleanup tokens. +2024-08-21 07:47:59.529 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 07:47:59.664 +08:00 [INF] Start cleanup authorizations. +2024-08-21 07:47:59.665 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 07:47:59.671 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 08:47:59.752 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 08:47:59.777 +08:00 [INF] Start cleanup. +2024-08-21 08:47:59.777 +08:00 [INF] Start cleanup tokens. +2024-08-21 08:47:59.789 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 08:47:59.916 +08:00 [INF] Start cleanup authorizations. +2024-08-21 08:47:59.916 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 08:47:59.933 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 09:48:00.007 +08:00 [INF] Lock is acquired for TokenCleanupBackgroundWorker +2024-08-21 09:48:00.070 +08:00 [INF] Start cleanup. +2024-08-21 09:48:00.070 +08:00 [INF] Start cleanup tokens. +2024-08-21 09:48:00.093 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 09:48:00.175 +08:00 [INF] Start cleanup authorizations. +2024-08-21 09:48:00.177 +08:00 [WRN] Current database does not support transactions. Your database may remain in an inconsistent state in an error case. +2024-08-21 09:48:00.185 +08:00 [INF] Lock is released for TokenCleanupBackgroundWorker +2024-08-21 10:27:58.514 +08:00 [INF] Application is shutting down... +2024-08-21 10:27:58.652 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-21 10:40:56.630 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-21 10:40:57.797 +08:00 [INF] Loaded ABP modules: +2024-08-21 10:40:57.798 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-21 10:40:57.798 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-21 10:40:57.799 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-21 10:40:57.799 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-21 10:40:57.799 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-21 10:40:57.802 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-21 10:40:58.015 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-21 10:40:58.427 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-21 10:40:58.520 +08:00 [INF] Initialized all ABP modules. +2024-08-21 10:40:58.564 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-21 10:40:58.573 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-21 10:40:58.574 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-21 10:40:58.574 +08:00 [INF] Hosting environment: Development +2024-08-21 10:40:58.574 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-21 10:41:46.787 +08:00 [INF] Request starting HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - application/x-www-form-urlencoded 105 +2024-08-21 10:41:46.940 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-21 10:41:46.943 +08:00 [INF] The request URI matched a server endpoint: "Token". +2024-08-21 10:41:46.943 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-21 10:41:46.945 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-21 10:41:46.955 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractPostRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:46.956 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateClientAuthenticationMethod`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:46.957 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractBasicAuthenticationCredentials`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:46.960 +08:00 [INF] The token request was successfully extracted: { + "grant_type": "password", + "scope": "AElfScanServer", + "client_id": "AElfScanServer_App", + "username": "admin", + "password": "[redacted]" +}. +2024-08-21 10:41:46.960 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ExtractTokenRequest. +2024-08-21 10:41:46.963 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantType. +2024-08-21 10:41:46.963 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientIdParameter. +2024-08-21 10:41:46.963 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthorizationCodeParameter. +2024-08-21 10:41:46.964 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateClientCredentialsParameters. +2024-08-21 10:41:46.964 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateDeviceCodeParameter. +2024-08-21 10:41:46.964 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRefreshTokenParameter. +2024-08-21 10:41:46.965 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateResourceOwnerCredentialsParameters. +2024-08-21 10:41:46.965 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeParameters. +2024-08-21 10:41:46.965 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopeParameter. +2024-08-21 10:41:47.507 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopes. +2024-08-21 10:41:47.508 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateAuthenticationDemand. +2024-08-21 10:41:47.511 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateValidatedTokens. +2024-08-21 10:41:47.511 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveValidatedTokens. +2024-08-21 10:41:47.512 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateRequiredTokens. +2024-08-21 10:41:47.513 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientAssertion. +2024-08-21 10:41:47.615 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientId. +2024-08-21 10:41:47.622 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateClientType. +2024-08-21 10:41:47.624 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ResolveHostAuthenticationProperties. +2024-08-21 10:41:47.624 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ReformatValidatedTokens. +2024-08-21 10:41:47.625 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateAuthentication. +2024-08-21 10:41:47.628 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateEndpointPermissions. +2024-08-21 10:41:47.629 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantTypePermissions. +2024-08-21 10:41:47.631 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateScopePermissions. +2024-08-21 10:41:47.632 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateProofKeyForCodeExchangeRequirement. +2024-08-21 10:41:47.632 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidatePresenters. +2024-08-21 10:41:47.633 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateRedirectUri. +2024-08-21 10:41:47.633 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateCodeVerifier. +2024-08-21 10:41:47.633 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ValidateTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateGrantedScopes. +2024-08-21 10:41:47.634 +08:00 [INF] The token request was successfully validated. +2024-08-21 10:41:47.634 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ValidateTokenRequest. +2024-08-21 10:41:47.635 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+AttachPrincipal. +2024-08-21 10:41:47.639 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:47.639 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext was marked as skipped by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+EnablePassthroughMode`2[[OpenIddict.Server.OpenIddictServerEvents+HandleTokenRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f],[OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlerFilters+RequireTokenEndpointPassthroughEnabled, OpenIddict.Server.AspNetCore, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:47.639 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-21 10:41:47.639 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as skipped by OpenIddict.Server.OpenIddictServerHandlers+Exchange+HandleTokenRequest. +2024-08-21 10:41:47.660 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessRequestContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ResolveRequestUri. +2024-08-21 10:41:47.667 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ValidateHostHeader. +2024-08-21 10:41:47.667 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+EvaluateValidatedTokens. +2024-08-21 10:41:47.668 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromAuthorizationHeader. +2024-08-21 10:41:47.669 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromBodyForm. +2024-08-21 10:41:47.669 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.AspNetCore.OpenIddictValidationAspNetCoreHandlers+ExtractAccessTokenFromQueryString. +2024-08-21 10:41:47.670 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was successfully processed by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-21 10:41:47.670 +08:00 [DBG] The event OpenIddict.Validation.OpenIddictValidationEvents+ProcessAuthenticationContext was marked as rejected by OpenIddict.Validation.OpenIddictValidationHandlers+ValidateRequiredTokens. +2024-08-21 10:41:47.670 +08:00 [DBG] AuthenticationScheme: OpenIddict.Validation.AspNetCore was not authenticated. +2024-08-21 10:41:47.909 +08:00 [INF] Executing endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-21 10:41:47.921 +08:00 [INF] Route matched with {action = "Handle", controller = "Token", area = "", page = ""}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] HandleAsync() on controller Volo.Abp.OpenIddict.Controllers.TokenController (Volo.Abp.OpenIddict.AspNetCore). +2024-08-21 10:41:47.922 +08:00 [INF] Skipping the execution of current filter as its not the most effective filter implementing the policy Microsoft.AspNetCore.Mvc.ViewFeatures.IAntiforgeryPolicy +2024-08-21 10:41:48.237 +08:00 [DBG] Remove dynamic claims cache for user: 23b71aef-aa0f-f452-c445-3a14820a22f5 +2024-08-21 10:41:48.333 +08:00 [DBG] Get dynamic claims cache for user: 23b71aef-aa0f-f452-c445-3a14820a22f5 +2024-08-21 10:41:48.335 +08:00 [DBG] Filling dynamic claims cache for user: 23b71aef-aa0f-f452-c445-3a14820a22f5 +2024-08-21 10:41:48.551 +08:00 [INF] Executing SignInResult with authentication scheme (OpenIddict.Server.AspNetCore) and the following principal: System.Security.Claims.ClaimsPrincipal. +2024-08-21 10:41:48.555 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveHostSignInProperties. +2024-08-21 10:41:48.560 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+ValidateSignInDemand. +2024-08-21 10:41:48.600 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RedeemTokenEntry. +2024-08-21 10:41:48.601 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+RestoreInternalClaims. +2024-08-21 10:41:48.602 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachHostProperties. +2024-08-21 10:41:48.602 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultScopes. +2024-08-21 10:41:48.603 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachDefaultPresenters. +2024-08-21 10:41:48.604 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferResources. +2024-08-21 10:41:48.608 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+EvaluateGeneratedTokens. +2024-08-21 10:41:48.621 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachAuthorization. +2024-08-21 10:41:48.623 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by Volo.Abp.OpenIddict.RemoveClaimsFromClientCredentialsGrantType. +2024-08-21 10:41:48.627 +08:00 [DBG] 'AspNet.Identity.SecurityStamp' was excluded from the access token claims. +2024-08-21 10:41:48.632 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+PrepareAccessTokenPrincipal. +2024-08-21 10:41:48.633 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachCustomSignInParameters. +2024-08-21 10:41:48.634 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+AttachSecurityCredentials. +2024-08-21 10:41:48.718 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+CreateTokenEntry. +2024-08-21 10:41:48.769 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+GenerateTokenContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Protection+GenerateIdentityModelToken. +2024-08-21 10:41:48.769 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+GenerateAccessToken. +2024-08-21 10:41:48.770 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+BeautifyGeneratedTokens. +2024-08-21 10:41:48.772 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+AttachSignInParameters. +2024-08-21 10:41:48.774 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+NormalizeErrorResponse. +2024-08-21 10:41:48.774 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.774 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachCacheControlHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.775 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.776 +08:00 [INF] The response was successfully returned as a JSON document: { + "access_token": "[redacted]", + "token_type": "Bearer", + "expires_in": 3599 +}. +2024-08-21 10:41:48.778 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.778 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyTokenResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.778 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.778 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Exchange+ApplyTokenResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessSignInContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:41:48.784 +08:00 [INF] Executed action Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore) in 860.2705ms +2024-08-21 10:41:48.784 +08:00 [INF] Executed endpoint 'Volo.Abp.OpenIddict.Controllers.TokenController.HandleAsync (Volo.Abp.OpenIddict.AspNetCore)' +2024-08-21 10:41:48.843 +08:00 [INF] Request finished HTTP/1.1 POST http://127.0.0.1:8099/connect/token?grant_type=password&scope=AElfScanServer&client_id=AElfScanServer_App&username=whx&password=Xuan123,. - 200 1218 application/json;charset=UTF-8 2057.2297ms +2024-08-21 10:42:03.174 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:8099/.well-known/openid-configuration - null null +2024-08-21 10:42:03.189 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-21 10:42:03.190 +08:00 [INF] The request URI matched a server endpoint: "Configuration". +2024-08-21 10:42:03.190 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-21 10:42:03.190 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-21 10:42:03.193 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractConfigurationRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractConfigurationRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.194 +08:00 [INF] The configuration request was successfully extracted: {}. +2024-08-21 10:42:03.194 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ExtractConfigurationRequest. +2024-08-21 10:42:03.195 +08:00 [INF] The configuration request was successfully validated. +2024-08-21 10:42:03.195 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ValidateConfigurationRequest. +2024-08-21 10:42:03.197 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachIssuer. +2024-08-21 10:42:03.198 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachEndpoints. +2024-08-21 10:42:03.199 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachGrantTypes. +2024-08-21 10:42:03.199 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachResponseModes. +2024-08-21 10:42:03.200 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachResponseTypes. +2024-08-21 10:42:03.200 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachClientAuthenticationMethods. +2024-08-21 10:42:03.201 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachCodeChallengeMethods. +2024-08-21 10:42:03.201 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachScopes. +2024-08-21 10:42:03.227 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by Volo.Abp.OpenIddict.Scopes.AttachScopes. +2024-08-21 10:42:03.228 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachClaims. +2024-08-21 10:42:03.228 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSubjectTypes. +2024-08-21 10:42:03.228 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSigningAlgorithms. +2024-08-21 10:42:03.229 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleConfigurationRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachAdditionalMetadata. +2024-08-21 10:42:03.230 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+HandleConfigurationRequest. +2024-08-21 10:42:03.232 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.232 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.233 +08:00 [INF] The response was successfully returned as a JSON document: { + "issuer": "http://localhost:8099/", + "authorization_endpoint": "http://localhost:8099/connect/authorize", + "token_endpoint": "http://localhost:8099/connect/token", + "introspection_endpoint": "http://localhost:8099/connect/introspect", + "end_session_endpoint": "http://localhost:8099/connect/logout", + "revocation_endpoint": "http://localhost:8099/connect/revocat", + "userinfo_endpoint": "http://localhost:8099/connect/userinfo", + "device_authorization_endpoint": "http://localhost:8099/device", + "jwks_uri": "http://localhost:8099/.well-known/jwks", + "grant_types_supported": [ + "client_credentials", + "authorization_code", + "implicit", + "password", + "refresh_token", + "urn:ietf:params:oauth:grant-type:device_code", + "login_credentials" + ], + "response_types_supported": [ + "code", + "code id_token", + "code id_token token", + "code token", + "id_token", + "id_token token", + "token", + "none" + ], + "response_modes_supported": [ + "form_post", + "fragment", + "query" + ], + "scopes_supported": [ + "openid", + "offline_access", + "email", + "profile", + "phone", + "roles", + "address", + "AElfScanServer" + ], + "claims_supported": [ + "aud", + "exp", + "iat", + "iss", + "sub" + ], + "id_token_signing_alg_values_supported": [ + "RS256" + ], + "code_challenge_methods_supported": [ + "plain", + "S256" + ], + "subject_types_supported": [ + "public" + ], + "token_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "introspection_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "revocation_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "device_authorization_endpoint_auth_methods_supported": [ + "client_secret_post", + "private_key_jwt", + "client_secret_basic" + ], + "claims_parameter_supported": false, + "request_parameter_supported": false, + "request_uri_parameter_supported": false, + "authorization_response_iss_parameter_supported": true +}. +2024-08-21 10:42:03.233 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.233 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyConfigurationResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.233 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyConfigurationResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.233 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyConfigurationResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.234 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:8099/.well-known/openid-configuration - 200 2163 application/json;charset=UTF-8 63.5212ms +2024-08-21 10:42:03.252 +08:00 [INF] Request starting HTTP/1.1 GET http://localhost:8099/.well-known/jwks - null null +2024-08-21 10:42:03.252 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ResolveRequestUri. +2024-08-21 10:42:03.252 +08:00 [INF] The request URI matched a server endpoint: "Cryptography". +2024-08-21 10:42:03.252 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+InferEndpointType. +2024-08-21 10:42:03.252 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ValidateHostHeader. +2024-08-21 10:42:03.254 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ExtractCryptographyRequestContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ExtractGetRequest`1[[OpenIddict.Server.OpenIddictServerEvents+ExtractCryptographyRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.254 +08:00 [INF] The cryptography request was successfully extracted: {}. +2024-08-21 10:42:03.254 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ExtractCryptographyRequest. +2024-08-21 10:42:03.255 +08:00 [INF] The cryptography request was successfully validated. +2024-08-21 10:42:03.255 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ValidateCryptographyRequest. +2024-08-21 10:42:03.261 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+HandleCryptographyRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+AttachSigningKeys. +2024-08-21 10:42:03.262 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+HandleCryptographyRequest. +2024-08-21 10:42:03.263 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachHttpResponseCode`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.263 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+AttachWwwAuthenticateHeader`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.263 +08:00 [INF] The response was successfully returned as a JSON document: { + "keys": [ + { + "kid": "C81BF52089DF1C3C6E021A959CE81D30E68FE759", + "use": "sig", + "kty": "RSA", + "alg": "RS256", + "e": "AQAB", + "n": "qfePedhEYUUF1J32RfcJVgVXb-g2uaaC-XDEoimf-2IHMtMNOUZw23XZU3pN9QJ2YuZPjGLFPms0I2G5Sp3P-jyckTQpxLdPAurqvzdZIZR33JUfZ44pO7zBupiQa4dvusFDMjqTx0YuW3KKHEFQCVllQseQV2Uy-U4clHu9b_VAiiMl4_n5WvxWqgKXCksPREoJLoDYyAR3Yk4nx9F6O944RLlp1172EuVvSKURTtdejms3F6N3-eAHdLlqv5otaPFFZ8_Ac0mlmG2mHywTeNjs4oM3kHxkwkmZs9_LxIxNDfxk39VBT6BIDv-6OCGFkwmVdfJvyCEqG2WS0XzRrw", + "x5t": "yBv1IInfHDxuAhqVnOgdMOaP51k", + "x5c": [ + "MIIC9DCCAdygAwIBAgIIQDFO8N5AZHMwDQYJKoZIhvcNAQELBQAwMDEuMCwGA1UEAxMlT3BlbklkZGljdCBTZXJ2ZXIgU2lnbmluZyBDZXJ0aWZpY2F0ZTAeFw0yMzA5MDgwMjQ1MDZaFw0yNTA5MDgwMjQ1MDZaMDAxLjAsBgNVBAMTJU9wZW5JZGRpY3QgU2VydmVyIFNpZ25pbmcgQ2VydGlmaWNhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCp94952ERhRQXUnfZF9wlWBVdv6Da5poL5cMSiKZ/7Ygcy0w05RnDbddlTek31AnZi5k+MYsU+azQjYblKnc/6PJyRNCnEt08C6uq/N1khlHfclR9njik7vMG6mJBrh2+6wUMyOpPHRi5bcoocQVAJWWVCx5BXZTL5ThyUe71v9UCKIyXj+fla/FaqApcKSw9ESgkugNjIBHdiTifH0Xo73jhEuWnXXvYS5W9IpRFO116OazcXo3f54Ad0uWq/mi1o8UVnz8BzSaWYbaYfLBN42OzigzeQfGTCSZmz38vEjE0N/GTf1UFPoEgO/7o4IYWTCZV18m/IISobZZLRfNGvAgMBAAGjEjAQMA4GA1UdDwEB/wQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAV76exWrOFsACD/cOd7j7ANVD13RPLAJ6RhCp5w7ADHGf/BRpmUb9GrKVK/8aQtXLVKpgRqiFEZRsOHyoPUszowK1A5GMkNZEDdp1yzGlVchQXJOShz2KmuZJOCoJK7+WzVz4Jivnie74PMdrUrk5POb7Mh/XaQXyTZrV78iNA2ab+we90xFHCcvwXaF0sxYTjJRQCn16c76EgllKrB9eEfo54ExEosboiCI9DaxMHymD67RiWeZxj3iJYlc1X8JJeWCrn+D3xDEEx6aHuJ3wI0eWua8utsqluug43m2EsPhHhSBZxumgoEHdQYYUlvlcZebVrV1eNGowm5E+Sw/dGQ==" + ] + } + ] +}. +2024-08-21 10:42:03.263 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was successfully processed by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.263 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext was marked as handled by OpenIddict.Server.AspNetCore.OpenIddictServerAspNetCoreHandlers+ProcessJsonResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ApplyCryptographyResponseContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.263 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was successfully processed by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyCryptographyResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.263 +08:00 [DBG] The event OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext was marked as handled by OpenIddict.Server.OpenIddictServerHandlers+Discovery+ApplyCryptographyResponse`1[[OpenIddict.Server.OpenIddictServerEvents+ProcessRequestContext, OpenIddict.Server, Version=5.5.0.0, Culture=neutral, PublicKeyToken=35a561290d20de2f]]. +2024-08-21 10:42:03.263 +08:00 [INF] Request finished HTTP/1.1 GET http://localhost:8099/.well-known/jwks - 200 1620 application/json;charset=UTF-8 11.8319ms +2024-08-21 10:48:02.233 +08:00 [INF] Application is shutting down... +2024-08-21 10:48:02.260 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-21 15:24:32.171 +08:00 [INF] Starting AElfScanServer.AuthServer. +2024-08-21 15:24:34.509 +08:00 [INF] Loaded ABP modules: +2024-08-21 15:24:34.510 +08:00 [INF] - AElfScanServer.AElfScanServerAuthServerModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Autofac.AbpAutofacModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Castle.AbpCastleCoreModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Caching.StackExchangeRedis.AbpCachingStackExchangeRedisModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Caching.AbpCachingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Threading.AbpThreadingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Serialization.AbpSerializationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Uow.AbpUnitOfWorkModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Data.AbpDataModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.ObjectExtending.AbpObjectExtendingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Validation.AbpValidationAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.EventBus.Abstractions.AbpEventBusAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Security.AbpSecurityModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Settings.AbpSettingsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.MultiTenancy.AbpMultiTenancyAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.VirtualFileSystem.AbpVirtualFileSystemModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Localization.AbpLocalizationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Json.AbpJsonModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Json.SystemTextJson.AbpJsonSystemTextJsonModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Json.AbpJsonAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Timing.AbpTimingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.DistributedLocking.AbpDistributedLockingAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebOpenIddictModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Account.Web.AbpAccountWebModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationContractsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationContractsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Validation.AbpValidationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Features.AbpFeaturesModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Users.AbpUsersAbstractionModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.EventBus.AbpEventBusModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Guids.AbpGuidsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.BackgroundWorkers.AbpBackgroundWorkersModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Authorization.AbpAuthorizationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationContractsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationContractsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingContractsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.AspNetCore.AbpIdentityAspNetCoreModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Auditing.AbpAuditingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.ObjectMapping.AbpObjectMappingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.ExceptionHandling.AbpExceptionHandlingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Specifications.AbpSpecificationsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Domain.AbpDddDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Users.AbpUsersDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AutoMapper.AbpAutoMapperModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.AbpAspNetCoreMvcUiThemeSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.AbpAspNetCoreMvcUiBootstrapModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.AbpAspNetCoreMvcUiModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Http.AbpHttpModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Http.AbpHttpAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Minify.AbpMinifyModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.AbpAspNetCoreAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.ApiVersioning.AbpApiVersioningAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.AbpAspNetCoreMvcContractsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.UI.Navigation.AbpUiNavigationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.UI.AbpUiModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.GlobalFeatures.AbpGlobalFeaturesModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Application.AbpDddApplicationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Packages.AbpAspNetCoreMvcUiPackagesModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Widgets.AbpAspNetCoreMvcUiWidgetsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Bundling.AbpAspNetCoreMvcUiBundlingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictAspNetCoreModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.MultiTenancy.AbpAspNetCoreMultiTenancyModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.OpenIddict.AbpOpenIddictDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Account.AbpAccountApplicationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityApplicationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementApplicationModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.PermissionManagement.AbpPermissionManagementDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Emailing.AbpEmailingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsAbstractionsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.TextTemplating.Scriban.AbpTextTemplatingScribanModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.TextTemplating.AbpTextTemplatingCoreModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Account.AbpAccountHttpApiModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.AbpIdentityHttpApiModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.AbpAspNetCoreMvcUiLeptonXLiteThemeModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.AbpAspNetCoreMvcUiMultiTenancyModule +2024-08-21 15:24:34.510 +08:00 [INF] - AElfScanServer.MongoDB.AElfScanServerMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - AElfScanServer.AElfScanServerDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - AElfScanServer.Domain.Shared.AElfScanServerDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainSharedModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AuditLogging.AbpAuditLoggingDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.BackgroundJobs.AbpBackgroundJobsModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.FeatureManagement.AbpFeatureManagementDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.PermissionManagement.Identity.AbpPermissionManagementDomainIdentityModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.SettingManagement.AbpSettingManagementDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.TenantManagement.AbpTenantManagementDomainModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.PermissionManagement.MongoDB.AbpPermissionManagementMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.MongoDB.AbpMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.SettingManagement.MongoDB.AbpSettingManagementMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Identity.MongoDB.AbpIdentityMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.Users.MongoDB.AbpUsersMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.OpenIddict.MongoDB.AbpOpenIddictMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.BackgroundJobs.MongoDB.AbpBackgroundJobsMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AuditLogging.MongoDB.AbpAuditLoggingMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.TenantManagement.MongoDB.AbpTenantManagementMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.FeatureManagement.MongoDB.AbpFeatureManagementMongoDbModule +2024-08-21 15:24:34.510 +08:00 [INF] - Volo.Abp.AspNetCore.Serilog.AbpAspNetCoreSerilogModule +2024-08-21 15:24:34.767 +08:00 [DBG] Started background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker +2024-08-21 15:24:35.254 +08:00 [INF] User profile is available. Using '/Users/wuhaoxuan/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. +2024-08-21 15:24:35.358 +08:00 [INF] Initialized all ABP modules. +2024-08-21 15:24:35.459 +08:00 [WRN] Overriding address(es) 'https://localhost:44336'. Binding to endpoints defined via IConfiguration and/or UseKestrel() instead. +2024-08-21 15:24:35.466 +08:00 [INF] Now listening on: http://[::]:8099 +2024-08-21 15:24:35.466 +08:00 [INF] Application started. Press Ctrl+C to shut down. +2024-08-21 15:24:35.466 +08:00 [INF] Hosting environment: Development +2024-08-21 15:24:35.466 +08:00 [INF] Content root path: /Users/wuhaoxuan/RiderProjects/aelfscan-server/src/AElfScanServer.AuthServer +2024-08-21 16:05:39.577 +08:00 [INF] Application is shutting down... +2024-08-21 16:05:39.693 +08:00 [DBG] Stopped background worker: Volo.Abp.OpenIddict.Tokens.TokenCleanupBackgroundWorker diff --git a/src/AElfScanServer.AuthServer/Program.cs b/src/AElfScanServer.AuthServer/Program.cs new file mode 100644 index 00000000..d2b84c0b --- /dev/null +++ b/src/AElfScanServer.AuthServer/Program.cs @@ -0,0 +1,56 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Events; + +namespace AElfScanServer; + +public class Program +{ + public async static Task Main(string[] args) + { + Log.Logger = new LoggerConfiguration() +#if DEBUG + .MinimumLevel.Debug() +#else + .MinimumLevel.Information() +#endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .CreateLogger(); + + try + { + Log.Information("Starting AElfScanServer.AuthServer."); + var builder = WebApplication.CreateBuilder(args); + builder.Host.AddAppSettingsSecretsJson() + .UseAutofac() + .UseSerilog(); + await builder.AddApplicationAsync(); + var app = builder.Build(); + await app.InitializeApplicationAsync(); + await app.RunAsync(); + return 0; + } + catch (Exception ex) + { + if (ex is HostAbortedException) + { + throw; + } + + Log.Fatal(ex, "AElfScanServer.AuthServer terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } + } +} diff --git a/src/AElfScanServer.AuthServer/abp.resourcemapping.js b/src/AElfScanServer.AuthServer/abp.resourcemapping.js new file mode 100644 index 00000000..98822e49 --- /dev/null +++ b/src/AElfScanServer.AuthServer/abp.resourcemapping.js @@ -0,0 +1,11 @@ +module.exports = { + aliases: { + + }, + clean: [ + + ], + mappings: { + + } +}; \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/appsettings.json b/src/AElfScanServer.AuthServer/appsettings.json new file mode 100644 index 00000000..f1a857d8 --- /dev/null +++ b/src/AElfScanServer.AuthServer/appsettings.json @@ -0,0 +1,27 @@ +{ + "App": { + "SelfUrl": "https://localhost:44336", + "ClientUrl": "http://localhost:4200", + "CorsOrigins": "https://*.AElfScanServer.com,http://localhost:4200,https://localhost:44348,https://localhost:44311", + "RedirectAllowedUrls": "http://localhost:4200,https://localhost:44329,https://localhost:44348,https://localhost:44394" + }, + "Kestrel": { + "EndPoints": { + "Http": { + "Url": "http://*:8099/" + } + } + }, + "AuthServer": { + "IssuerUri": "http://localhost:8099" + }, + "ConnectionStrings": { + "Default": "mongodb://localhost:27017/AElfScanServer" + }, + "Redis": { + "Configuration": "127.0.0.1" + }, + "StringEncryption": { + "DefaultPassPhrase": "lXZpxTjcxFYcYSZP" + } +} diff --git a/src/AElfScanServer.AuthServer/appsettings.secrets.json b/src/AElfScanServer.AuthServer/appsettings.secrets.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/src/AElfScanServer.AuthServer/appsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/package.json b/src/AElfScanServer.AuthServer/package.json new file mode 100644 index 00000000..370a7c9b --- /dev/null +++ b/src/AElfScanServer.AuthServer/package.json @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "name": "my-app-authserver", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~3.2.2" + } +} diff --git a/src/AElfScanServer.AuthServer/web.config b/src/AElfScanServer.AuthServer/web.config new file mode 100644 index 00000000..c40b834f --- /dev/null +++ b/src/AElfScanServer.AuthServer/web.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/AElfScanServer.AuthServer/wwwroot/global-styles.css b/src/AElfScanServer.AuthServer/wwwroot/global-styles.css new file mode 100644 index 00000000..74db4bd5 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/global-styles.css @@ -0,0 +1,6 @@ +/* Your Global Styles */ + +:root .lpx-brand-logo { + --lpx-logo: url('/images/logo/leptonx/logo-light.png'); + --lpx-logo-icon: url('/images/logo/leptonx/logo-light-thumbnail.png'); +} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png new file mode 100644 index 00000000..9734a07a Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-dark-thumbnail.png differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png new file mode 100644 index 00000000..a3bbe822 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-dark.png differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png new file mode 100644 index 00000000..ca391848 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-light-thumbnail.png differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-light.png b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-light.png new file mode 100644 index 00000000..761fb444 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/images/logo/leptonx/logo-light.png differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css new file mode 100644 index 00000000..c093364e --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css @@ -0,0 +1,7876 @@ +/*! + * Font Awesome Free 6.6.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 2024 Fonticons, Inc. + */ +.fa { + font-family: var(--fa-style-family, "Font Awesome 6 Free"); + font-weight: var(--fa-style, 900); } + +.fa-solid, +.fa-regular, +.fa-brands, +.fas, +.far, +.fab, +.fa-sharp-solid, +.fa-classic, +.fa { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + display: var(--fa-display, inline-block); + font-style: normal; + font-variant: normal; + line-height: 1; + text-rendering: auto; } + +.fas, +.fa-classic, +.fa-solid, +.far, +.fa-regular { + font-family: 'Font Awesome 6 Free'; } + +.fab, +.fa-brands { + font-family: 'Font Awesome 6 Brands'; } + +.fa-1x { + font-size: 1em; } + +.fa-2x { + font-size: 2em; } + +.fa-3x { + font-size: 3em; } + +.fa-4x { + font-size: 4em; } + +.fa-5x { + font-size: 5em; } + +.fa-6x { + font-size: 6em; } + +.fa-7x { + font-size: 7em; } + +.fa-8x { + font-size: 8em; } + +.fa-9x { + font-size: 9em; } + +.fa-10x { + font-size: 10em; } + +.fa-2xs { + font-size: 0.625em; + line-height: 0.1em; + vertical-align: 0.225em; } + +.fa-xs { + font-size: 0.75em; + line-height: 0.08333em; + vertical-align: 0.125em; } + +.fa-sm { + font-size: 0.875em; + line-height: 0.07143em; + vertical-align: 0.05357em; } + +.fa-lg { + font-size: 1.25em; + line-height: 0.05em; + vertical-align: -0.075em; } + +.fa-xl { + font-size: 1.5em; + line-height: 0.04167em; + vertical-align: -0.125em; } + +.fa-2xl { + font-size: 2em; + line-height: 0.03125em; + vertical-align: -0.1875em; } + +.fa-fw { + text-align: center; + width: 1.25em; } + +.fa-ul { + list-style-type: none; + margin-left: var(--fa-li-margin, 2.5em); + padding-left: 0; } + .fa-ul > li { + position: relative; } + +.fa-li { + left: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; } + +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.08em); + padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); } + +.fa-pull-left { + float: left; + margin-right: var(--fa-pull-margin, 0.3em); } + +.fa-pull-right { + float: right; + margin-left: var(--fa-pull-margin, 0.3em); } + +.fa-beat { + 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(0.28, 0.84, 0.42, 1)); } + +.fa-fade { + animation-name: fa-fade; + 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(0.4, 0, 0.6, 1)); } + +.fa-beat-fade { + animation-name: fa-beat-fade; + 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(0.4, 0, 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-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, linear); } + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + 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-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + animation-delay: -1ms; + animation-duration: 1ms; + animation-iteration-count: 1; + transition-delay: 0s; + transition-duration: 0s; } } + +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); } } + +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); } + 64% { + transform: scale(1, 1) translateY(0); } + 100% { + transform: scale(1, 1) translateY(0); } } + +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); } } + +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.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%, 100% { + transform: rotate(0deg); } } + +@keyframes fa-spin { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +.fa-rotate-90 { + transform: rotate(90deg); } + +.fa-rotate-180 { + transform: rotate(180deg); } + +.fa-rotate-270 { + transform: rotate(270deg); } + +.fa-flip-horizontal { + transform: scale(-1, 1); } + +.fa-flip-vertical { + transform: scale(1, -1); } + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -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 { + left: 0; + position: absolute; + text-align: center; + width: 100%; + z-index: var(--fa-stack-z-index, auto); } + +.fa-stack-1x { + line-height: inherit; } + +.fa-stack-2x { + font-size: 2em; } + +.fa-inverse { + color: var(--fa-inverse, #fff); } + +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen +readers do not read off random characters that represent icons */ + +.fa-0::before { + content: "\30"; } + +.fa-1::before { + content: "\31"; } + +.fa-2::before { + content: "\32"; } + +.fa-3::before { + content: "\33"; } + +.fa-4::before { + content: "\34"; } + +.fa-5::before { + content: "\35"; } + +.fa-6::before { + content: "\36"; } + +.fa-7::before { + content: "\37"; } + +.fa-8::before { + content: "\38"; } + +.fa-9::before { + content: "\39"; } + +.fa-fill-drip::before { + content: "\f576"; } + +.fa-arrows-to-circle::before { + content: "\e4bd"; } + +.fa-circle-chevron-right::before { + content: "\f138"; } + +.fa-chevron-circle-right::before { + content: "\f138"; } + +.fa-at::before { + content: "\40"; } + +.fa-trash-can::before { + content: "\f2ed"; } + +.fa-trash-alt::before { + content: "\f2ed"; } + +.fa-text-height::before { + content: "\f034"; } + +.fa-user-xmark::before { + content: "\f235"; } + +.fa-user-times::before { + content: "\f235"; } + +.fa-stethoscope::before { + content: "\f0f1"; } + +.fa-message::before { + content: "\f27a"; } + +.fa-comment-alt::before { + content: "\f27a"; } + +.fa-info::before { + content: "\f129"; } + +.fa-down-left-and-up-right-to-center::before { + content: "\f422"; } + +.fa-compress-alt::before { + content: "\f422"; } + +.fa-explosion::before { + content: "\e4e9"; } + +.fa-file-lines::before { + content: "\f15c"; } + +.fa-file-alt::before { + content: "\f15c"; } + +.fa-file-text::before { + content: "\f15c"; } + +.fa-wave-square::before { + content: "\f83e"; } + +.fa-ring::before { + content: "\f70b"; } + +.fa-building-un::before { + content: "\e4d9"; } + +.fa-dice-three::before { + content: "\f527"; } + +.fa-calendar-days::before { + content: "\f073"; } + +.fa-calendar-alt::before { + content: "\f073"; } + +.fa-anchor-circle-check::before { + content: "\e4aa"; } + +.fa-building-circle-arrow-right::before { + content: "\e4d1"; } + +.fa-volleyball::before { + content: "\f45f"; } + +.fa-volleyball-ball::before { + content: "\f45f"; } + +.fa-arrows-up-to-line::before { + content: "\e4c2"; } + +.fa-sort-down::before { + content: "\f0dd"; } + +.fa-sort-desc::before { + content: "\f0dd"; } + +.fa-circle-minus::before { + content: "\f056"; } + +.fa-minus-circle::before { + content: "\f056"; } + +.fa-door-open::before { + content: "\f52b"; } + +.fa-right-from-bracket::before { + content: "\f2f5"; } + +.fa-sign-out-alt::before { + content: "\f2f5"; } + +.fa-atom::before { + content: "\f5d2"; } + +.fa-soap::before { + content: "\e06e"; } + +.fa-icons::before { + content: "\f86d"; } + +.fa-heart-music-camera-bolt::before { + content: "\f86d"; } + +.fa-microphone-lines-slash::before { + content: "\f539"; } + +.fa-microphone-alt-slash::before { + content: "\f539"; } + +.fa-bridge-circle-check::before { + content: "\e4c9"; } + +.fa-pump-medical::before { + content: "\e06a"; } + +.fa-fingerprint::before { + content: "\f577"; } + +.fa-hand-point-right::before { + content: "\f0a4"; } + +.fa-magnifying-glass-location::before { + content: "\f689"; } + +.fa-search-location::before { + content: "\f689"; } + +.fa-forward-step::before { + content: "\f051"; } + +.fa-step-forward::before { + content: "\f051"; } + +.fa-face-smile-beam::before { + content: "\f5b8"; } + +.fa-smile-beam::before { + content: "\f5b8"; } + +.fa-flag-checkered::before { + content: "\f11e"; } + +.fa-football::before { + content: "\f44e"; } + +.fa-football-ball::before { + content: "\f44e"; } + +.fa-school-circle-exclamation::before { + content: "\e56c"; } + +.fa-crop::before { + content: "\f125"; } + +.fa-angles-down::before { + content: "\f103"; } + +.fa-angle-double-down::before { + content: "\f103"; } + +.fa-users-rectangle::before { + content: "\e594"; } + +.fa-people-roof::before { + content: "\e537"; } + +.fa-people-line::before { + content: "\e534"; } + +.fa-beer-mug-empty::before { + content: "\f0fc"; } + +.fa-beer::before { + content: "\f0fc"; } + +.fa-diagram-predecessor::before { + content: "\e477"; } + +.fa-arrow-up-long::before { + content: "\f176"; } + +.fa-long-arrow-up::before { + content: "\f176"; } + +.fa-fire-flame-simple::before { + content: "\f46a"; } + +.fa-burn::before { + content: "\f46a"; } + +.fa-person::before { + content: "\f183"; } + +.fa-male::before { + content: "\f183"; } + +.fa-laptop::before { + content: "\f109"; } + +.fa-file-csv::before { + content: "\f6dd"; } + +.fa-menorah::before { + content: "\f676"; } + +.fa-truck-plane::before { + content: "\e58f"; } + +.fa-record-vinyl::before { + content: "\f8d9"; } + +.fa-face-grin-stars::before { + content: "\f587"; } + +.fa-grin-stars::before { + content: "\f587"; } + +.fa-bong::before { + content: "\f55c"; } + +.fa-spaghetti-monster-flying::before { + content: "\f67b"; } + +.fa-pastafarianism::before { + content: "\f67b"; } + +.fa-arrow-down-up-across-line::before { + content: "\e4af"; } + +.fa-spoon::before { + content: "\f2e5"; } + +.fa-utensil-spoon::before { + content: "\f2e5"; } + +.fa-jar-wheat::before { + content: "\e517"; } + +.fa-envelopes-bulk::before { + content: "\f674"; } + +.fa-mail-bulk::before { + content: "\f674"; } + +.fa-file-circle-exclamation::before { + content: "\e4eb"; } + +.fa-circle-h::before { + content: "\f47e"; } + +.fa-hospital-symbol::before { + content: "\f47e"; } + +.fa-pager::before { + content: "\f815"; } + +.fa-address-book::before { + content: "\f2b9"; } + +.fa-contact-book::before { + content: "\f2b9"; } + +.fa-strikethrough::before { + content: "\f0cc"; } + +.fa-k::before { + content: "\4b"; } + +.fa-landmark-flag::before { + content: "\e51c"; } + +.fa-pencil::before { + content: "\f303"; } + +.fa-pencil-alt::before { + content: "\f303"; } + +.fa-backward::before { + content: "\f04a"; } + +.fa-caret-right::before { + content: "\f0da"; } + +.fa-comments::before { + content: "\f086"; } + +.fa-paste::before { + content: "\f0ea"; } + +.fa-file-clipboard::before { + content: "\f0ea"; } + +.fa-code-pull-request::before { + content: "\e13c"; } + +.fa-clipboard-list::before { + content: "\f46d"; } + +.fa-truck-ramp-box::before { + content: "\f4de"; } + +.fa-truck-loading::before { + content: "\f4de"; } + +.fa-user-check::before { + content: "\f4fc"; } + +.fa-vial-virus::before { + content: "\e597"; } + +.fa-sheet-plastic::before { + content: "\e571"; } + +.fa-blog::before { + content: "\f781"; } + +.fa-user-ninja::before { + content: "\f504"; } + +.fa-person-arrow-up-from-line::before { + content: "\e539"; } + +.fa-scroll-torah::before { + content: "\f6a0"; } + +.fa-torah::before { + content: "\f6a0"; } + +.fa-broom-ball::before { + content: "\f458"; } + +.fa-quidditch::before { + content: "\f458"; } + +.fa-quidditch-broom-ball::before { + content: "\f458"; } + +.fa-toggle-off::before { + content: "\f204"; } + +.fa-box-archive::before { + content: "\f187"; } + +.fa-archive::before { + content: "\f187"; } + +.fa-person-drowning::before { + content: "\e545"; } + +.fa-arrow-down-9-1::before { + content: "\f886"; } + +.fa-sort-numeric-desc::before { + content: "\f886"; } + +.fa-sort-numeric-down-alt::before { + content: "\f886"; } + +.fa-face-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-grin-tongue-squint::before { + content: "\f58a"; } + +.fa-spray-can::before { + content: "\f5bd"; } + +.fa-truck-monster::before { + content: "\f63b"; } + +.fa-w::before { + content: "\57"; } + +.fa-earth-africa::before { + content: "\f57c"; } + +.fa-globe-africa::before { + content: "\f57c"; } + +.fa-rainbow::before { + content: "\f75b"; } + +.fa-circle-notch::before { + content: "\f1ce"; } + +.fa-tablet-screen-button::before { + content: "\f3fa"; } + +.fa-tablet-alt::before { + content: "\f3fa"; } + +.fa-paw::before { + content: "\f1b0"; } + +.fa-cloud::before { + content: "\f0c2"; } + +.fa-trowel-bricks::before { + content: "\e58a"; } + +.fa-face-flushed::before { + content: "\f579"; } + +.fa-flushed::before { + content: "\f579"; } + +.fa-hospital-user::before { + content: "\f80d"; } + +.fa-tent-arrow-left-right::before { + content: "\e57f"; } + +.fa-gavel::before { + content: "\f0e3"; } + +.fa-legal::before { + content: "\f0e3"; } + +.fa-binoculars::before { + content: "\f1e5"; } + +.fa-microphone-slash::before { + content: "\f131"; } + +.fa-box-tissue::before { + content: "\e05b"; } + +.fa-motorcycle::before { + content: "\f21c"; } + +.fa-bell-concierge::before { + content: "\f562"; } + +.fa-concierge-bell::before { + content: "\f562"; } + +.fa-pen-ruler::before { + content: "\f5ae"; } + +.fa-pencil-ruler::before { + content: "\f5ae"; } + +.fa-people-arrows::before { + content: "\e068"; } + +.fa-people-arrows-left-right::before { + content: "\e068"; } + +.fa-mars-and-venus-burst::before { + content: "\e523"; } + +.fa-square-caret-right::before { + content: "\f152"; } + +.fa-caret-square-right::before { + content: "\f152"; } + +.fa-scissors::before { + content: "\f0c4"; } + +.fa-cut::before { + content: "\f0c4"; } + +.fa-sun-plant-wilt::before { + content: "\e57a"; } + +.fa-toilets-portable::before { + content: "\e584"; } + +.fa-hockey-puck::before { + content: "\f453"; } + +.fa-table::before { + content: "\f0ce"; } + +.fa-magnifying-glass-arrow-right::before { + content: "\e521"; } + +.fa-tachograph-digital::before { + content: "\f566"; } + +.fa-digital-tachograph::before { + content: "\f566"; } + +.fa-users-slash::before { + content: "\e073"; } + +.fa-clover::before { + content: "\e139"; } + +.fa-reply::before { + content: "\f3e5"; } + +.fa-mail-reply::before { + content: "\f3e5"; } + +.fa-star-and-crescent::before { + content: "\f699"; } + +.fa-house-fire::before { + content: "\e50c"; } + +.fa-square-minus::before { + content: "\f146"; } + +.fa-minus-square::before { + content: "\f146"; } + +.fa-helicopter::before { + content: "\f533"; } + +.fa-compass::before { + content: "\f14e"; } + +.fa-square-caret-down::before { + content: "\f150"; } + +.fa-caret-square-down::before { + content: "\f150"; } + +.fa-file-circle-question::before { + content: "\e4ef"; } + +.fa-laptop-code::before { + content: "\f5fc"; } + +.fa-swatchbook::before { + content: "\f5c3"; } + +.fa-prescription-bottle::before { + content: "\f485"; } + +.fa-bars::before { + content: "\f0c9"; } + +.fa-navicon::before { + content: "\f0c9"; } + +.fa-people-group::before { + content: "\e533"; } + +.fa-hourglass-end::before { + content: "\f253"; } + +.fa-hourglass-3::before { + content: "\f253"; } + +.fa-heart-crack::before { + content: "\f7a9"; } + +.fa-heart-broken::before { + content: "\f7a9"; } + +.fa-square-up-right::before { + content: "\f360"; } + +.fa-external-link-square-alt::before { + content: "\f360"; } + +.fa-face-kiss-beam::before { + content: "\f597"; } + +.fa-kiss-beam::before { + content: "\f597"; } + +.fa-film::before { + content: "\f008"; } + +.fa-ruler-horizontal::before { + content: "\f547"; } + +.fa-people-robbery::before { + content: "\e536"; } + +.fa-lightbulb::before { + content: "\f0eb"; } + +.fa-caret-left::before { + content: "\f0d9"; } + +.fa-circle-exclamation::before { + content: "\f06a"; } + +.fa-exclamation-circle::before { + content: "\f06a"; } + +.fa-school-circle-xmark::before { + content: "\e56d"; } + +.fa-arrow-right-from-bracket::before { + content: "\f08b"; } + +.fa-sign-out::before { + content: "\f08b"; } + +.fa-circle-chevron-down::before { + content: "\f13a"; } + +.fa-chevron-circle-down::before { + content: "\f13a"; } + +.fa-unlock-keyhole::before { + content: "\f13e"; } + +.fa-unlock-alt::before { + content: "\f13e"; } + +.fa-cloud-showers-heavy::before { + content: "\f740"; } + +.fa-headphones-simple::before { + content: "\f58f"; } + +.fa-headphones-alt::before { + content: "\f58f"; } + +.fa-sitemap::before { + content: "\f0e8"; } + +.fa-circle-dollar-to-slot::before { + content: "\f4b9"; } + +.fa-donate::before { + content: "\f4b9"; } + +.fa-memory::before { + content: "\f538"; } + +.fa-road-spikes::before { + content: "\e568"; } + +.fa-fire-burner::before { + content: "\e4f1"; } + +.fa-flag::before { + content: "\f024"; } + +.fa-hanukiah::before { + content: "\f6e6"; } + +.fa-feather::before { + content: "\f52d"; } + +.fa-volume-low::before { + content: "\f027"; } + +.fa-volume-down::before { + content: "\f027"; } + +.fa-comment-slash::before { + content: "\f4b3"; } + +.fa-cloud-sun-rain::before { + content: "\f743"; } + +.fa-compress::before { + content: "\f066"; } + +.fa-wheat-awn::before { + content: "\e2cd"; } + +.fa-wheat-alt::before { + content: "\e2cd"; } + +.fa-ankh::before { + content: "\f644"; } + +.fa-hands-holding-child::before { + content: "\e4fa"; } + +.fa-asterisk::before { + content: "\2a"; } + +.fa-square-check::before { + content: "\f14a"; } + +.fa-check-square::before { + content: "\f14a"; } + +.fa-peseta-sign::before { + content: "\e221"; } + +.fa-heading::before { + content: "\f1dc"; } + +.fa-header::before { + content: "\f1dc"; } + +.fa-ghost::before { + content: "\f6e2"; } + +.fa-list::before { + content: "\f03a"; } + +.fa-list-squares::before { + content: "\f03a"; } + +.fa-square-phone-flip::before { + content: "\f87b"; } + +.fa-phone-square-alt::before { + content: "\f87b"; } + +.fa-cart-plus::before { + content: "\f217"; } + +.fa-gamepad::before { + content: "\f11b"; } + +.fa-circle-dot::before { + content: "\f192"; } + +.fa-dot-circle::before { + content: "\f192"; } + +.fa-face-dizzy::before { + content: "\f567"; } + +.fa-dizzy::before { + content: "\f567"; } + +.fa-egg::before { + content: "\f7fb"; } + +.fa-house-medical-circle-xmark::before { + content: "\e513"; } + +.fa-campground::before { + content: "\f6bb"; } + +.fa-folder-plus::before { + content: "\f65e"; } + +.fa-futbol::before { + content: "\f1e3"; } + +.fa-futbol-ball::before { + content: "\f1e3"; } + +.fa-soccer-ball::before { + content: "\f1e3"; } + +.fa-paintbrush::before { + content: "\f1fc"; } + +.fa-paint-brush::before { + content: "\f1fc"; } + +.fa-lock::before { + content: "\f023"; } + +.fa-gas-pump::before { + content: "\f52f"; } + +.fa-hot-tub-person::before { + content: "\f593"; } + +.fa-hot-tub::before { + content: "\f593"; } + +.fa-map-location::before { + content: "\f59f"; } + +.fa-map-marked::before { + content: "\f59f"; } + +.fa-house-flood-water::before { + content: "\e50e"; } + +.fa-tree::before { + content: "\f1bb"; } + +.fa-bridge-lock::before { + content: "\e4cc"; } + +.fa-sack-dollar::before { + content: "\f81d"; } + +.fa-pen-to-square::before { + content: "\f044"; } + +.fa-edit::before { + content: "\f044"; } + +.fa-car-side::before { + content: "\f5e4"; } + +.fa-share-nodes::before { + content: "\f1e0"; } + +.fa-share-alt::before { + content: "\f1e0"; } + +.fa-heart-circle-minus::before { + content: "\e4ff"; } + +.fa-hourglass-half::before { + content: "\f252"; } + +.fa-hourglass-2::before { + content: "\f252"; } + +.fa-microscope::before { + content: "\f610"; } + +.fa-sink::before { + content: "\e06d"; } + +.fa-bag-shopping::before { + content: "\f290"; } + +.fa-shopping-bag::before { + content: "\f290"; } + +.fa-arrow-down-z-a::before { + content: "\f881"; } + +.fa-sort-alpha-desc::before { + content: "\f881"; } + +.fa-sort-alpha-down-alt::before { + content: "\f881"; } + +.fa-mitten::before { + content: "\f7b5"; } + +.fa-person-rays::before { + content: "\e54d"; } + +.fa-users::before { + content: "\f0c0"; } + +.fa-eye-slash::before { + content: "\f070"; } + +.fa-flask-vial::before { + content: "\e4f3"; } + +.fa-hand::before { + content: "\f256"; } + +.fa-hand-paper::before { + content: "\f256"; } + +.fa-om::before { + content: "\f679"; } + +.fa-worm::before { + content: "\e599"; } + +.fa-house-circle-xmark::before { + content: "\e50b"; } + +.fa-plug::before { + content: "\f1e6"; } + +.fa-chevron-up::before { + content: "\f077"; } + +.fa-hand-spock::before { + content: "\f259"; } + +.fa-stopwatch::before { + content: "\f2f2"; } + +.fa-face-kiss::before { + content: "\f596"; } + +.fa-kiss::before { + content: "\f596"; } + +.fa-bridge-circle-xmark::before { + content: "\e4cb"; } + +.fa-face-grin-tongue::before { + content: "\f589"; } + +.fa-grin-tongue::before { + content: "\f589"; } + +.fa-chess-bishop::before { + content: "\f43a"; } + +.fa-face-grin-wink::before { + content: "\f58c"; } + +.fa-grin-wink::before { + content: "\f58c"; } + +.fa-ear-deaf::before { + content: "\f2a4"; } + +.fa-deaf::before { + content: "\f2a4"; } + +.fa-deafness::before { + content: "\f2a4"; } + +.fa-hard-of-hearing::before { + content: "\f2a4"; } + +.fa-road-circle-check::before { + content: "\e564"; } + +.fa-dice-five::before { + content: "\f523"; } + +.fa-square-rss::before { + content: "\f143"; } + +.fa-rss-square::before { + content: "\f143"; } + +.fa-land-mine-on::before { + content: "\e51b"; } + +.fa-i-cursor::before { + content: "\f246"; } + +.fa-stamp::before { + content: "\f5bf"; } + +.fa-stairs::before { + content: "\e289"; } + +.fa-i::before { + content: "\49"; } + +.fa-hryvnia-sign::before { + content: "\f6f2"; } + +.fa-hryvnia::before { + content: "\f6f2"; } + +.fa-pills::before { + content: "\f484"; } + +.fa-face-grin-wide::before { + content: "\f581"; } + +.fa-grin-alt::before { + content: "\f581"; } + +.fa-tooth::before { + content: "\f5c9"; } + +.fa-v::before { + content: "\56"; } + +.fa-bangladeshi-taka-sign::before { + content: "\e2e6"; } + +.fa-bicycle::before { + content: "\f206"; } + +.fa-staff-snake::before { + content: "\e579"; } + +.fa-rod-asclepius::before { + content: "\e579"; } + +.fa-rod-snake::before { + content: "\e579"; } + +.fa-staff-aesculapius::before { + content: "\e579"; } + +.fa-head-side-cough-slash::before { + content: "\e062"; } + +.fa-truck-medical::before { + content: "\f0f9"; } + +.fa-ambulance::before { + content: "\f0f9"; } + +.fa-wheat-awn-circle-exclamation::before { + content: "\e598"; } + +.fa-snowman::before { + content: "\f7d0"; } + +.fa-mortar-pestle::before { + content: "\f5a7"; } + +.fa-road-barrier::before { + content: "\e562"; } + +.fa-school::before { + content: "\f549"; } + +.fa-igloo::before { + content: "\f7ae"; } + +.fa-joint::before { + content: "\f595"; } + +.fa-angle-right::before { + content: "\f105"; } + +.fa-horse::before { + content: "\f6f0"; } + +.fa-q::before { + content: "\51"; } + +.fa-g::before { + content: "\47"; } + +.fa-notes-medical::before { + content: "\f481"; } + +.fa-temperature-half::before { + content: "\f2c9"; } + +.fa-temperature-2::before { + content: "\f2c9"; } + +.fa-thermometer-2::before { + content: "\f2c9"; } + +.fa-thermometer-half::before { + content: "\f2c9"; } + +.fa-dong-sign::before { + content: "\e169"; } + +.fa-capsules::before { + content: "\f46b"; } + +.fa-poo-storm::before { + content: "\f75a"; } + +.fa-poo-bolt::before { + content: "\f75a"; } + +.fa-face-frown-open::before { + content: "\f57a"; } + +.fa-frown-open::before { + content: "\f57a"; } + +.fa-hand-point-up::before { + content: "\f0a6"; } + +.fa-money-bill::before { + content: "\f0d6"; } + +.fa-bookmark::before { + content: "\f02e"; } + +.fa-align-justify::before { + content: "\f039"; } + +.fa-umbrella-beach::before { + content: "\f5ca"; } + +.fa-helmet-un::before { + content: "\e503"; } + +.fa-bullseye::before { + content: "\f140"; } + +.fa-bacon::before { + content: "\f7e5"; } + +.fa-hand-point-down::before { + content: "\f0a7"; } + +.fa-arrow-up-from-bracket::before { + content: "\e09a"; } + +.fa-folder::before { + content: "\f07b"; } + +.fa-folder-blank::before { + content: "\f07b"; } + +.fa-file-waveform::before { + content: "\f478"; } + +.fa-file-medical-alt::before { + content: "\f478"; } + +.fa-radiation::before { + content: "\f7b9"; } + +.fa-chart-simple::before { + content: "\e473"; } + +.fa-mars-stroke::before { + content: "\f229"; } + +.fa-vial::before { + content: "\f492"; } + +.fa-gauge::before { + content: "\f624"; } + +.fa-dashboard::before { + content: "\f624"; } + +.fa-gauge-med::before { + content: "\f624"; } + +.fa-tachometer-alt-average::before { + content: "\f624"; } + +.fa-wand-magic-sparkles::before { + content: "\e2ca"; } + +.fa-magic-wand-sparkles::before { + content: "\e2ca"; } + +.fa-e::before { + content: "\45"; } + +.fa-pen-clip::before { + content: "\f305"; } + +.fa-pen-alt::before { + content: "\f305"; } + +.fa-bridge-circle-exclamation::before { + content: "\e4ca"; } + +.fa-user::before { + content: "\f007"; } + +.fa-school-circle-check::before { + content: "\e56b"; } + +.fa-dumpster::before { + content: "\f793"; } + +.fa-van-shuttle::before { + content: "\f5b6"; } + +.fa-shuttle-van::before { + content: "\f5b6"; } + +.fa-building-user::before { + content: "\e4da"; } + +.fa-square-caret-left::before { + content: "\f191"; } + +.fa-caret-square-left::before { + content: "\f191"; } + +.fa-highlighter::before { + content: "\f591"; } + +.fa-key::before { + content: "\f084"; } + +.fa-bullhorn::before { + content: "\f0a1"; } + +.fa-globe::before { + content: "\f0ac"; } + +.fa-synagogue::before { + content: "\f69b"; } + +.fa-person-half-dress::before { + content: "\e548"; } + +.fa-road-bridge::before { + content: "\e563"; } + +.fa-location-arrow::before { + content: "\f124"; } + +.fa-c::before { + content: "\43"; } + +.fa-tablet-button::before { + content: "\f10a"; } + +.fa-building-lock::before { + content: "\e4d6"; } + +.fa-pizza-slice::before { + content: "\f818"; } + +.fa-money-bill-wave::before { + content: "\f53a"; } + +.fa-chart-area::before { + content: "\f1fe"; } + +.fa-area-chart::before { + content: "\f1fe"; } + +.fa-house-flag::before { + content: "\e50d"; } + +.fa-person-circle-minus::before { + content: "\e540"; } + +.fa-ban::before { + content: "\f05e"; } + +.fa-cancel::before { + content: "\f05e"; } + +.fa-camera-rotate::before { + content: "\e0d8"; } + +.fa-spray-can-sparkles::before { + content: "\f5d0"; } + +.fa-air-freshener::before { + content: "\f5d0"; } + +.fa-star::before { + content: "\f005"; } + +.fa-repeat::before { + content: "\f363"; } + +.fa-cross::before { + content: "\f654"; } + +.fa-box::before { + content: "\f466"; } + +.fa-venus-mars::before { + content: "\f228"; } + +.fa-arrow-pointer::before { + content: "\f245"; } + +.fa-mouse-pointer::before { + content: "\f245"; } + +.fa-maximize::before { + content: "\f31e"; } + +.fa-expand-arrows-alt::before { + content: "\f31e"; } + +.fa-charging-station::before { + content: "\f5e7"; } + +.fa-shapes::before { + content: "\f61f"; } + +.fa-triangle-circle-square::before { + content: "\f61f"; } + +.fa-shuffle::before { + content: "\f074"; } + +.fa-random::before { + content: "\f074"; } + +.fa-person-running::before { + content: "\f70c"; } + +.fa-running::before { + content: "\f70c"; } + +.fa-mobile-retro::before { + content: "\e527"; } + +.fa-grip-lines-vertical::before { + content: "\f7a5"; } + +.fa-spider::before { + content: "\f717"; } + +.fa-hands-bound::before { + content: "\e4f9"; } + +.fa-file-invoice-dollar::before { + content: "\f571"; } + +.fa-plane-circle-exclamation::before { + content: "\e556"; } + +.fa-x-ray::before { + content: "\f497"; } + +.fa-spell-check::before { + content: "\f891"; } + +.fa-slash::before { + content: "\f715"; } + +.fa-computer-mouse::before { + content: "\f8cc"; } + +.fa-mouse::before { + content: "\f8cc"; } + +.fa-arrow-right-to-bracket::before { + content: "\f090"; } + +.fa-sign-in::before { + content: "\f090"; } + +.fa-shop-slash::before { + content: "\e070"; } + +.fa-store-alt-slash::before { + content: "\e070"; } + +.fa-server::before { + content: "\f233"; } + +.fa-virus-covid-slash::before { + content: "\e4a9"; } + +.fa-shop-lock::before { + content: "\e4a5"; } + +.fa-hourglass-start::before { + content: "\f251"; } + +.fa-hourglass-1::before { + content: "\f251"; } + +.fa-blender-phone::before { + content: "\f6b6"; } + +.fa-building-wheat::before { + content: "\e4db"; } + +.fa-person-breastfeeding::before { + content: "\e53a"; } + +.fa-right-to-bracket::before { + content: "\f2f6"; } + +.fa-sign-in-alt::before { + content: "\f2f6"; } + +.fa-venus::before { + content: "\f221"; } + +.fa-passport::before { + content: "\f5ab"; } + +.fa-thumbtack-slash::before { + content: "\e68f"; } + +.fa-thumb-tack-slash::before { + content: "\e68f"; } + +.fa-heart-pulse::before { + content: "\f21e"; } + +.fa-heartbeat::before { + content: "\f21e"; } + +.fa-people-carry-box::before { + content: "\f4ce"; } + +.fa-people-carry::before { + content: "\f4ce"; } + +.fa-temperature-high::before { + content: "\f769"; } + +.fa-microchip::before { + content: "\f2db"; } + +.fa-crown::before { + content: "\f521"; } + +.fa-weight-hanging::before { + content: "\f5cd"; } + +.fa-xmarks-lines::before { + content: "\e59a"; } + +.fa-file-prescription::before { + content: "\f572"; } + +.fa-weight-scale::before { + content: "\f496"; } + +.fa-weight::before { + content: "\f496"; } + +.fa-user-group::before { + content: "\f500"; } + +.fa-user-friends::before { + content: "\f500"; } + +.fa-arrow-up-a-z::before { + content: "\f15e"; } + +.fa-sort-alpha-up::before { + content: "\f15e"; } + +.fa-chess-knight::before { + content: "\f441"; } + +.fa-face-laugh-squint::before { + content: "\f59b"; } + +.fa-laugh-squint::before { + content: "\f59b"; } + +.fa-wheelchair::before { + content: "\f193"; } + +.fa-circle-arrow-up::before { + content: "\f0aa"; } + +.fa-arrow-circle-up::before { + content: "\f0aa"; } + +.fa-toggle-on::before { + content: "\f205"; } + +.fa-person-walking::before { + content: "\f554"; } + +.fa-walking::before { + content: "\f554"; } + +.fa-l::before { + content: "\4c"; } + +.fa-fire::before { + content: "\f06d"; } + +.fa-bed-pulse::before { + content: "\f487"; } + +.fa-procedures::before { + content: "\f487"; } + +.fa-shuttle-space::before { + content: "\f197"; } + +.fa-space-shuttle::before { + content: "\f197"; } + +.fa-face-laugh::before { + content: "\f599"; } + +.fa-laugh::before { + content: "\f599"; } + +.fa-folder-open::before { + content: "\f07c"; } + +.fa-heart-circle-plus::before { + content: "\e500"; } + +.fa-code-fork::before { + content: "\e13b"; } + +.fa-city::before { + content: "\f64f"; } + +.fa-microphone-lines::before { + content: "\f3c9"; } + +.fa-microphone-alt::before { + content: "\f3c9"; } + +.fa-pepper-hot::before { + content: "\f816"; } + +.fa-unlock::before { + content: "\f09c"; } + +.fa-colon-sign::before { + content: "\e140"; } + +.fa-headset::before { + content: "\f590"; } + +.fa-store-slash::before { + content: "\e071"; } + +.fa-road-circle-xmark::before { + content: "\e566"; } + +.fa-user-minus::before { + content: "\f503"; } + +.fa-mars-stroke-up::before { + content: "\f22a"; } + +.fa-mars-stroke-v::before { + content: "\f22a"; } + +.fa-champagne-glasses::before { + content: "\f79f"; } + +.fa-glass-cheers::before { + content: "\f79f"; } + +.fa-clipboard::before { + content: "\f328"; } + +.fa-house-circle-exclamation::before { + content: "\e50a"; } + +.fa-file-arrow-up::before { + content: "\f574"; } + +.fa-file-upload::before { + content: "\f574"; } + +.fa-wifi::before { + content: "\f1eb"; } + +.fa-wifi-3::before { + content: "\f1eb"; } + +.fa-wifi-strong::before { + content: "\f1eb"; } + +.fa-bath::before { + content: "\f2cd"; } + +.fa-bathtub::before { + content: "\f2cd"; } + +.fa-underline::before { + content: "\f0cd"; } + +.fa-user-pen::before { + content: "\f4ff"; } + +.fa-user-edit::before { + content: "\f4ff"; } + +.fa-signature::before { + content: "\f5b7"; } + +.fa-stroopwafel::before { + content: "\f551"; } + +.fa-bold::before { + content: "\f032"; } + +.fa-anchor-lock::before { + content: "\e4ad"; } + +.fa-building-ngo::before { + content: "\e4d7"; } + +.fa-manat-sign::before { + content: "\e1d5"; } + +.fa-not-equal::before { + content: "\f53e"; } + +.fa-border-top-left::before { + content: "\f853"; } + +.fa-border-style::before { + content: "\f853"; } + +.fa-map-location-dot::before { + content: "\f5a0"; } + +.fa-map-marked-alt::before { + content: "\f5a0"; } + +.fa-jedi::before { + content: "\f669"; } + +.fa-square-poll-vertical::before { + content: "\f681"; } + +.fa-poll::before { + content: "\f681"; } + +.fa-mug-hot::before { + content: "\f7b6"; } + +.fa-car-battery::before { + content: "\f5df"; } + +.fa-battery-car::before { + content: "\f5df"; } + +.fa-gift::before { + content: "\f06b"; } + +.fa-dice-two::before { + content: "\f528"; } + +.fa-chess-queen::before { + content: "\f445"; } + +.fa-glasses::before { + content: "\f530"; } + +.fa-chess-board::before { + content: "\f43c"; } + +.fa-building-circle-check::before { + content: "\e4d2"; } + +.fa-person-chalkboard::before { + content: "\e53d"; } + +.fa-mars-stroke-right::before { + content: "\f22b"; } + +.fa-mars-stroke-h::before { + content: "\f22b"; } + +.fa-hand-back-fist::before { + content: "\f255"; } + +.fa-hand-rock::before { + content: "\f255"; } + +.fa-square-caret-up::before { + content: "\f151"; } + +.fa-caret-square-up::before { + content: "\f151"; } + +.fa-cloud-showers-water::before { + content: "\e4e4"; } + +.fa-chart-bar::before { + content: "\f080"; } + +.fa-bar-chart::before { + content: "\f080"; } + +.fa-hands-bubbles::before { + content: "\e05e"; } + +.fa-hands-wash::before { + content: "\e05e"; } + +.fa-less-than-equal::before { + content: "\f537"; } + +.fa-train::before { + content: "\f238"; } + +.fa-eye-low-vision::before { + content: "\f2a8"; } + +.fa-low-vision::before { + content: "\f2a8"; } + +.fa-crow::before { + content: "\f520"; } + +.fa-sailboat::before { + content: "\e445"; } + +.fa-window-restore::before { + content: "\f2d2"; } + +.fa-square-plus::before { + content: "\f0fe"; } + +.fa-plus-square::before { + content: "\f0fe"; } + +.fa-torii-gate::before { + content: "\f6a1"; } + +.fa-frog::before { + content: "\f52e"; } + +.fa-bucket::before { + content: "\e4cf"; } + +.fa-image::before { + content: "\f03e"; } + +.fa-microphone::before { + content: "\f130"; } + +.fa-cow::before { + content: "\f6c8"; } + +.fa-caret-up::before { + content: "\f0d8"; } + +.fa-screwdriver::before { + content: "\f54a"; } + +.fa-folder-closed::before { + content: "\e185"; } + +.fa-house-tsunami::before { + content: "\e515"; } + +.fa-square-nfi::before { + content: "\e576"; } + +.fa-arrow-up-from-ground-water::before { + content: "\e4b5"; } + +.fa-martini-glass::before { + content: "\f57b"; } + +.fa-glass-martini-alt::before { + content: "\f57b"; } + +.fa-rotate-left::before { + content: "\f2ea"; } + +.fa-rotate-back::before { + content: "\f2ea"; } + +.fa-rotate-backward::before { + content: "\f2ea"; } + +.fa-undo-alt::before { + content: "\f2ea"; } + +.fa-table-columns::before { + content: "\f0db"; } + +.fa-columns::before { + content: "\f0db"; } + +.fa-lemon::before { + content: "\f094"; } + +.fa-head-side-mask::before { + content: "\e063"; } + +.fa-handshake::before { + content: "\f2b5"; } + +.fa-gem::before { + content: "\f3a5"; } + +.fa-dolly::before { + content: "\f472"; } + +.fa-dolly-box::before { + content: "\f472"; } + +.fa-smoking::before { + content: "\f48d"; } + +.fa-minimize::before { + content: "\f78c"; } + +.fa-compress-arrows-alt::before { + content: "\f78c"; } + +.fa-monument::before { + content: "\f5a6"; } + +.fa-snowplow::before { + content: "\f7d2"; } + +.fa-angles-right::before { + content: "\f101"; } + +.fa-angle-double-right::before { + content: "\f101"; } + +.fa-cannabis::before { + content: "\f55f"; } + +.fa-circle-play::before { + content: "\f144"; } + +.fa-play-circle::before { + content: "\f144"; } + +.fa-tablets::before { + content: "\f490"; } + +.fa-ethernet::before { + content: "\f796"; } + +.fa-euro-sign::before { + content: "\f153"; } + +.fa-eur::before { + content: "\f153"; } + +.fa-euro::before { + content: "\f153"; } + +.fa-chair::before { + content: "\f6c0"; } + +.fa-circle-check::before { + content: "\f058"; } + +.fa-check-circle::before { + content: "\f058"; } + +.fa-circle-stop::before { + content: "\f28d"; } + +.fa-stop-circle::before { + content: "\f28d"; } + +.fa-compass-drafting::before { + content: "\f568"; } + +.fa-drafting-compass::before { + content: "\f568"; } + +.fa-plate-wheat::before { + content: "\e55a"; } + +.fa-icicles::before { + content: "\f7ad"; } + +.fa-person-shelter::before { + content: "\e54f"; } + +.fa-neuter::before { + content: "\f22c"; } + +.fa-id-badge::before { + content: "\f2c1"; } + +.fa-marker::before { + content: "\f5a1"; } + +.fa-face-laugh-beam::before { + content: "\f59a"; } + +.fa-laugh-beam::before { + content: "\f59a"; } + +.fa-helicopter-symbol::before { + content: "\e502"; } + +.fa-universal-access::before { + content: "\f29a"; } + +.fa-circle-chevron-up::before { + content: "\f139"; } + +.fa-chevron-circle-up::before { + content: "\f139"; } + +.fa-lari-sign::before { + content: "\e1c8"; } + +.fa-volcano::before { + content: "\f770"; } + +.fa-person-walking-dashed-line-arrow-right::before { + content: "\e553"; } + +.fa-sterling-sign::before { + content: "\f154"; } + +.fa-gbp::before { + content: "\f154"; } + +.fa-pound-sign::before { + content: "\f154"; } + +.fa-viruses::before { + content: "\e076"; } + +.fa-square-person-confined::before { + content: "\e577"; } + +.fa-user-tie::before { + content: "\f508"; } + +.fa-arrow-down-long::before { + content: "\f175"; } + +.fa-long-arrow-down::before { + content: "\f175"; } + +.fa-tent-arrow-down-to-line::before { + content: "\e57e"; } + +.fa-certificate::before { + content: "\f0a3"; } + +.fa-reply-all::before { + content: "\f122"; } + +.fa-mail-reply-all::before { + content: "\f122"; } + +.fa-suitcase::before { + content: "\f0f2"; } + +.fa-person-skating::before { + content: "\f7c5"; } + +.fa-skating::before { + content: "\f7c5"; } + +.fa-filter-circle-dollar::before { + content: "\f662"; } + +.fa-funnel-dollar::before { + content: "\f662"; } + +.fa-camera-retro::before { + content: "\f083"; } + +.fa-circle-arrow-down::before { + content: "\f0ab"; } + +.fa-arrow-circle-down::before { + content: "\f0ab"; } + +.fa-file-import::before { + content: "\f56f"; } + +.fa-arrow-right-to-file::before { + content: "\f56f"; } + +.fa-square-arrow-up-right::before { + content: "\f14c"; } + +.fa-external-link-square::before { + content: "\f14c"; } + +.fa-box-open::before { + content: "\f49e"; } + +.fa-scroll::before { + content: "\f70e"; } + +.fa-spa::before { + content: "\f5bb"; } + +.fa-location-pin-lock::before { + content: "\e51f"; } + +.fa-pause::before { + content: "\f04c"; } + +.fa-hill-avalanche::before { + content: "\e507"; } + +.fa-temperature-empty::before { + content: "\f2cb"; } + +.fa-temperature-0::before { + content: "\f2cb"; } + +.fa-thermometer-0::before { + content: "\f2cb"; } + +.fa-thermometer-empty::before { + content: "\f2cb"; } + +.fa-bomb::before { + content: "\f1e2"; } + +.fa-registered::before { + content: "\f25d"; } + +.fa-address-card::before { + content: "\f2bb"; } + +.fa-contact-card::before { + content: "\f2bb"; } + +.fa-vcard::before { + content: "\f2bb"; } + +.fa-scale-unbalanced-flip::before { + content: "\f516"; } + +.fa-balance-scale-right::before { + content: "\f516"; } + +.fa-subscript::before { + content: "\f12c"; } + +.fa-diamond-turn-right::before { + content: "\f5eb"; } + +.fa-directions::before { + content: "\f5eb"; } + +.fa-burst::before { + content: "\e4dc"; } + +.fa-house-laptop::before { + content: "\e066"; } + +.fa-laptop-house::before { + content: "\e066"; } + +.fa-face-tired::before { + content: "\f5c8"; } + +.fa-tired::before { + content: "\f5c8"; } + +.fa-money-bills::before { + content: "\e1f3"; } + +.fa-smog::before { + content: "\f75f"; } + +.fa-crutch::before { + content: "\f7f7"; } + +.fa-cloud-arrow-up::before { + content: "\f0ee"; } + +.fa-cloud-upload::before { + content: "\f0ee"; } + +.fa-cloud-upload-alt::before { + content: "\f0ee"; } + +.fa-palette::before { + content: "\f53f"; } + +.fa-arrows-turn-right::before { + content: "\e4c0"; } + +.fa-vest::before { + content: "\e085"; } + +.fa-ferry::before { + content: "\e4ea"; } + +.fa-arrows-down-to-people::before { + content: "\e4b9"; } + +.fa-seedling::before { + content: "\f4d8"; } + +.fa-sprout::before { + content: "\f4d8"; } + +.fa-left-right::before { + content: "\f337"; } + +.fa-arrows-alt-h::before { + content: "\f337"; } + +.fa-boxes-packing::before { + content: "\e4c7"; } + +.fa-circle-arrow-left::before { + content: "\f0a8"; } + +.fa-arrow-circle-left::before { + content: "\f0a8"; } + +.fa-group-arrows-rotate::before { + content: "\e4f6"; } + +.fa-bowl-food::before { + content: "\e4c6"; } + +.fa-candy-cane::before { + content: "\f786"; } + +.fa-arrow-down-wide-short::before { + content: "\f160"; } + +.fa-sort-amount-asc::before { + content: "\f160"; } + +.fa-sort-amount-down::before { + content: "\f160"; } + +.fa-cloud-bolt::before { + content: "\f76c"; } + +.fa-thunderstorm::before { + content: "\f76c"; } + +.fa-text-slash::before { + content: "\f87d"; } + +.fa-remove-format::before { + content: "\f87d"; } + +.fa-face-smile-wink::before { + content: "\f4da"; } + +.fa-smile-wink::before { + content: "\f4da"; } + +.fa-file-word::before { + content: "\f1c2"; } + +.fa-file-powerpoint::before { + content: "\f1c4"; } + +.fa-arrows-left-right::before { + content: "\f07e"; } + +.fa-arrows-h::before { + content: "\f07e"; } + +.fa-house-lock::before { + content: "\e510"; } + +.fa-cloud-arrow-down::before { + content: "\f0ed"; } + +.fa-cloud-download::before { + content: "\f0ed"; } + +.fa-cloud-download-alt::before { + content: "\f0ed"; } + +.fa-children::before { + content: "\e4e1"; } + +.fa-chalkboard::before { + content: "\f51b"; } + +.fa-blackboard::before { + content: "\f51b"; } + +.fa-user-large-slash::before { + content: "\f4fa"; } + +.fa-user-alt-slash::before { + content: "\f4fa"; } + +.fa-envelope-open::before { + content: "\f2b6"; } + +.fa-handshake-simple-slash::before { + content: "\e05f"; } + +.fa-handshake-alt-slash::before { + content: "\e05f"; } + +.fa-mattress-pillow::before { + content: "\e525"; } + +.fa-guarani-sign::before { + content: "\e19a"; } + +.fa-arrows-rotate::before { + content: "\f021"; } + +.fa-refresh::before { + content: "\f021"; } + +.fa-sync::before { + content: "\f021"; } + +.fa-fire-extinguisher::before { + content: "\f134"; } + +.fa-cruzeiro-sign::before { + content: "\e152"; } + +.fa-greater-than-equal::before { + content: "\f532"; } + +.fa-shield-halved::before { + content: "\f3ed"; } + +.fa-shield-alt::before { + content: "\f3ed"; } + +.fa-book-atlas::before { + content: "\f558"; } + +.fa-atlas::before { + content: "\f558"; } + +.fa-virus::before { + content: "\e074"; } + +.fa-envelope-circle-check::before { + content: "\e4e8"; } + +.fa-layer-group::before { + content: "\f5fd"; } + +.fa-arrows-to-dot::before { + content: "\e4be"; } + +.fa-archway::before { + content: "\f557"; } + +.fa-heart-circle-check::before { + content: "\e4fd"; } + +.fa-house-chimney-crack::before { + content: "\f6f1"; } + +.fa-house-damage::before { + content: "\f6f1"; } + +.fa-file-zipper::before { + content: "\f1c6"; } + +.fa-file-archive::before { + content: "\f1c6"; } + +.fa-square::before { + content: "\f0c8"; } + +.fa-martini-glass-empty::before { + content: "\f000"; } + +.fa-glass-martini::before { + content: "\f000"; } + +.fa-couch::before { + content: "\f4b8"; } + +.fa-cedi-sign::before { + content: "\e0df"; } + +.fa-italic::before { + content: "\f033"; } + +.fa-table-cells-column-lock::before { + content: "\e678"; } + +.fa-church::before { + content: "\f51d"; } + +.fa-comments-dollar::before { + content: "\f653"; } + +.fa-democrat::before { + content: "\f747"; } + +.fa-z::before { + content: "\5a"; } + +.fa-person-skiing::before { + content: "\f7c9"; } + +.fa-skiing::before { + content: "\f7c9"; } + +.fa-road-lock::before { + content: "\e567"; } + +.fa-a::before { + content: "\41"; } + +.fa-temperature-arrow-down::before { + content: "\e03f"; } + +.fa-temperature-down::before { + content: "\e03f"; } + +.fa-feather-pointed::before { + content: "\f56b"; } + +.fa-feather-alt::before { + content: "\f56b"; } + +.fa-p::before { + content: "\50"; } + +.fa-snowflake::before { + content: "\f2dc"; } + +.fa-newspaper::before { + content: "\f1ea"; } + +.fa-rectangle-ad::before { + content: "\f641"; } + +.fa-ad::before { + content: "\f641"; } + +.fa-circle-arrow-right::before { + content: "\f0a9"; } + +.fa-arrow-circle-right::before { + content: "\f0a9"; } + +.fa-filter-circle-xmark::before { + content: "\e17b"; } + +.fa-locust::before { + content: "\e520"; } + +.fa-sort::before { + content: "\f0dc"; } + +.fa-unsorted::before { + content: "\f0dc"; } + +.fa-list-ol::before { + content: "\f0cb"; } + +.fa-list-1-2::before { + content: "\f0cb"; } + +.fa-list-numeric::before { + content: "\f0cb"; } + +.fa-person-dress-burst::before { + content: "\e544"; } + +.fa-money-check-dollar::before { + content: "\f53d"; } + +.fa-money-check-alt::before { + content: "\f53d"; } + +.fa-vector-square::before { + content: "\f5cb"; } + +.fa-bread-slice::before { + content: "\f7ec"; } + +.fa-language::before { + content: "\f1ab"; } + +.fa-face-kiss-wink-heart::before { + content: "\f598"; } + +.fa-kiss-wink-heart::before { + content: "\f598"; } + +.fa-filter::before { + content: "\f0b0"; } + +.fa-question::before { + content: "\3f"; } + +.fa-file-signature::before { + content: "\f573"; } + +.fa-up-down-left-right::before { + content: "\f0b2"; } + +.fa-arrows-alt::before { + content: "\f0b2"; } + +.fa-house-chimney-user::before { + content: "\e065"; } + +.fa-hand-holding-heart::before { + content: "\f4be"; } + +.fa-puzzle-piece::before { + content: "\f12e"; } + +.fa-money-check::before { + content: "\f53c"; } + +.fa-star-half-stroke::before { + content: "\f5c0"; } + +.fa-star-half-alt::before { + content: "\f5c0"; } + +.fa-code::before { + content: "\f121"; } + +.fa-whiskey-glass::before { + content: "\f7a0"; } + +.fa-glass-whiskey::before { + content: "\f7a0"; } + +.fa-building-circle-exclamation::before { + content: "\e4d3"; } + +.fa-magnifying-glass-chart::before { + content: "\e522"; } + +.fa-arrow-up-right-from-square::before { + content: "\f08e"; } + +.fa-external-link::before { + content: "\f08e"; } + +.fa-cubes-stacked::before { + content: "\e4e6"; } + +.fa-won-sign::before { + content: "\f159"; } + +.fa-krw::before { + content: "\f159"; } + +.fa-won::before { + content: "\f159"; } + +.fa-virus-covid::before { + content: "\e4a8"; } + +.fa-austral-sign::before { + content: "\e0a9"; } + +.fa-f::before { + content: "\46"; } + +.fa-leaf::before { + content: "\f06c"; } + +.fa-road::before { + content: "\f018"; } + +.fa-taxi::before { + content: "\f1ba"; } + +.fa-cab::before { + content: "\f1ba"; } + +.fa-person-circle-plus::before { + content: "\e541"; } + +.fa-chart-pie::before { + content: "\f200"; } + +.fa-pie-chart::before { + content: "\f200"; } + +.fa-bolt-lightning::before { + content: "\e0b7"; } + +.fa-sack-xmark::before { + content: "\e56a"; } + +.fa-file-excel::before { + content: "\f1c3"; } + +.fa-file-contract::before { + content: "\f56c"; } + +.fa-fish-fins::before { + content: "\e4f2"; } + +.fa-building-flag::before { + content: "\e4d5"; } + +.fa-face-grin-beam::before { + content: "\f582"; } + +.fa-grin-beam::before { + content: "\f582"; } + +.fa-object-ungroup::before { + content: "\f248"; } + +.fa-poop::before { + content: "\f619"; } + +.fa-location-pin::before { + content: "\f041"; } + +.fa-map-marker::before { + content: "\f041"; } + +.fa-kaaba::before { + content: "\f66b"; } + +.fa-toilet-paper::before { + content: "\f71e"; } + +.fa-helmet-safety::before { + content: "\f807"; } + +.fa-hard-hat::before { + content: "\f807"; } + +.fa-hat-hard::before { + content: "\f807"; } + +.fa-eject::before { + content: "\f052"; } + +.fa-circle-right::before { + content: "\f35a"; } + +.fa-arrow-alt-circle-right::before { + content: "\f35a"; } + +.fa-plane-circle-check::before { + content: "\e555"; } + +.fa-face-rolling-eyes::before { + content: "\f5a5"; } + +.fa-meh-rolling-eyes::before { + content: "\f5a5"; } + +.fa-object-group::before { + content: "\f247"; } + +.fa-chart-line::before { + content: "\f201"; } + +.fa-line-chart::before { + content: "\f201"; } + +.fa-mask-ventilator::before { + content: "\e524"; } + +.fa-arrow-right::before { + content: "\f061"; } + +.fa-signs-post::before { + content: "\f277"; } + +.fa-map-signs::before { + content: "\f277"; } + +.fa-cash-register::before { + content: "\f788"; } + +.fa-person-circle-question::before { + content: "\e542"; } + +.fa-h::before { + content: "\48"; } + +.fa-tarp::before { + content: "\e57b"; } + +.fa-screwdriver-wrench::before { + content: "\f7d9"; } + +.fa-tools::before { + content: "\f7d9"; } + +.fa-arrows-to-eye::before { + content: "\e4bf"; } + +.fa-plug-circle-bolt::before { + content: "\e55b"; } + +.fa-heart::before { + content: "\f004"; } + +.fa-mars-and-venus::before { + content: "\f224"; } + +.fa-house-user::before { + content: "\e1b0"; } + +.fa-home-user::before { + content: "\e1b0"; } + +.fa-dumpster-fire::before { + content: "\f794"; } + +.fa-house-crack::before { + content: "\e3b1"; } + +.fa-martini-glass-citrus::before { + content: "\f561"; } + +.fa-cocktail::before { + content: "\f561"; } + +.fa-face-surprise::before { + content: "\f5c2"; } + +.fa-surprise::before { + content: "\f5c2"; } + +.fa-bottle-water::before { + content: "\e4c5"; } + +.fa-circle-pause::before { + content: "\f28b"; } + +.fa-pause-circle::before { + content: "\f28b"; } + +.fa-toilet-paper-slash::before { + content: "\e072"; } + +.fa-apple-whole::before { + content: "\f5d1"; } + +.fa-apple-alt::before { + content: "\f5d1"; } + +.fa-kitchen-set::before { + content: "\e51a"; } + +.fa-r::before { + content: "\52"; } + +.fa-temperature-quarter::before { + content: "\f2ca"; } + +.fa-temperature-1::before { + content: "\f2ca"; } + +.fa-thermometer-1::before { + content: "\f2ca"; } + +.fa-thermometer-quarter::before { + content: "\f2ca"; } + +.fa-cube::before { + content: "\f1b2"; } + +.fa-bitcoin-sign::before { + content: "\e0b4"; } + +.fa-shield-dog::before { + content: "\e573"; } + +.fa-solar-panel::before { + content: "\f5ba"; } + +.fa-lock-open::before { + content: "\f3c1"; } + +.fa-elevator::before { + content: "\e16d"; } + +.fa-money-bill-transfer::before { + content: "\e528"; } + +.fa-money-bill-trend-up::before { + content: "\e529"; } + +.fa-house-flood-water-circle-arrow-right::before { + content: "\e50f"; } + +.fa-square-poll-horizontal::before { + content: "\f682"; } + +.fa-poll-h::before { + content: "\f682"; } + +.fa-circle::before { + content: "\f111"; } + +.fa-backward-fast::before { + content: "\f049"; } + +.fa-fast-backward::before { + content: "\f049"; } + +.fa-recycle::before { + content: "\f1b8"; } + +.fa-user-astronaut::before { + content: "\f4fb"; } + +.fa-plane-slash::before { + content: "\e069"; } + +.fa-trademark::before { + content: "\f25c"; } + +.fa-basketball::before { + content: "\f434"; } + +.fa-basketball-ball::before { + content: "\f434"; } + +.fa-satellite-dish::before { + content: "\f7c0"; } + +.fa-circle-up::before { + content: "\f35b"; } + +.fa-arrow-alt-circle-up::before { + content: "\f35b"; } + +.fa-mobile-screen-button::before { + content: "\f3cd"; } + +.fa-mobile-alt::before { + content: "\f3cd"; } + +.fa-volume-high::before { + content: "\f028"; } + +.fa-volume-up::before { + content: "\f028"; } + +.fa-users-rays::before { + content: "\e593"; } + +.fa-wallet::before { + content: "\f555"; } + +.fa-clipboard-check::before { + content: "\f46c"; } + +.fa-file-audio::before { + content: "\f1c7"; } + +.fa-burger::before { + content: "\f805"; } + +.fa-hamburger::before { + content: "\f805"; } + +.fa-wrench::before { + content: "\f0ad"; } + +.fa-bugs::before { + content: "\e4d0"; } + +.fa-rupee-sign::before { + content: "\f156"; } + +.fa-rupee::before { + content: "\f156"; } + +.fa-file-image::before { + content: "\f1c5"; } + +.fa-circle-question::before { + content: "\f059"; } + +.fa-question-circle::before { + content: "\f059"; } + +.fa-plane-departure::before { + content: "\f5b0"; } + +.fa-handshake-slash::before { + content: "\e060"; } + +.fa-book-bookmark::before { + content: "\e0bb"; } + +.fa-code-branch::before { + content: "\f126"; } + +.fa-hat-cowboy::before { + content: "\f8c0"; } + +.fa-bridge::before { + content: "\e4c8"; } + +.fa-phone-flip::before { + content: "\f879"; } + +.fa-phone-alt::before { + content: "\f879"; } + +.fa-truck-front::before { + content: "\e2b7"; } + +.fa-cat::before { + content: "\f6be"; } + +.fa-anchor-circle-exclamation::before { + content: "\e4ab"; } + +.fa-truck-field::before { + content: "\e58d"; } + +.fa-route::before { + content: "\f4d7"; } + +.fa-clipboard-question::before { + content: "\e4e3"; } + +.fa-panorama::before { + content: "\e209"; } + +.fa-comment-medical::before { + content: "\f7f5"; } + +.fa-teeth-open::before { + content: "\f62f"; } + +.fa-file-circle-minus::before { + content: "\e4ed"; } + +.fa-tags::before { + content: "\f02c"; } + +.fa-wine-glass::before { + content: "\f4e3"; } + +.fa-forward-fast::before { + content: "\f050"; } + +.fa-fast-forward::before { + content: "\f050"; } + +.fa-face-meh-blank::before { + content: "\f5a4"; } + +.fa-meh-blank::before { + content: "\f5a4"; } + +.fa-square-parking::before { + content: "\f540"; } + +.fa-parking::before { + content: "\f540"; } + +.fa-house-signal::before { + content: "\e012"; } + +.fa-bars-progress::before { + content: "\f828"; } + +.fa-tasks-alt::before { + content: "\f828"; } + +.fa-faucet-drip::before { + content: "\e006"; } + +.fa-cart-flatbed::before { + content: "\f474"; } + +.fa-dolly-flatbed::before { + content: "\f474"; } + +.fa-ban-smoking::before { + content: "\f54d"; } + +.fa-smoking-ban::before { + content: "\f54d"; } + +.fa-terminal::before { + content: "\f120"; } + +.fa-mobile-button::before { + content: "\f10b"; } + +.fa-house-medical-flag::before { + content: "\e514"; } + +.fa-basket-shopping::before { + content: "\f291"; } + +.fa-shopping-basket::before { + content: "\f291"; } + +.fa-tape::before { + content: "\f4db"; } + +.fa-bus-simple::before { + content: "\f55e"; } + +.fa-bus-alt::before { + content: "\f55e"; } + +.fa-eye::before { + content: "\f06e"; } + +.fa-face-sad-cry::before { + content: "\f5b3"; } + +.fa-sad-cry::before { + content: "\f5b3"; } + +.fa-audio-description::before { + content: "\f29e"; } + +.fa-person-military-to-person::before { + content: "\e54c"; } + +.fa-file-shield::before { + content: "\e4f0"; } + +.fa-user-slash::before { + content: "\f506"; } + +.fa-pen::before { + content: "\f304"; } + +.fa-tower-observation::before { + content: "\e586"; } + +.fa-file-code::before { + content: "\f1c9"; } + +.fa-signal::before { + content: "\f012"; } + +.fa-signal-5::before { + content: "\f012"; } + +.fa-signal-perfect::before { + content: "\f012"; } + +.fa-bus::before { + content: "\f207"; } + +.fa-heart-circle-xmark::before { + content: "\e501"; } + +.fa-house-chimney::before { + content: "\e3af"; } + +.fa-home-lg::before { + content: "\e3af"; } + +.fa-window-maximize::before { + content: "\f2d0"; } + +.fa-face-frown::before { + content: "\f119"; } + +.fa-frown::before { + content: "\f119"; } + +.fa-prescription::before { + content: "\f5b1"; } + +.fa-shop::before { + content: "\f54f"; } + +.fa-store-alt::before { + content: "\f54f"; } + +.fa-floppy-disk::before { + content: "\f0c7"; } + +.fa-save::before { + content: "\f0c7"; } + +.fa-vihara::before { + content: "\f6a7"; } + +.fa-scale-unbalanced::before { + content: "\f515"; } + +.fa-balance-scale-left::before { + content: "\f515"; } + +.fa-sort-up::before { + content: "\f0de"; } + +.fa-sort-asc::before { + content: "\f0de"; } + +.fa-comment-dots::before { + content: "\f4ad"; } + +.fa-commenting::before { + content: "\f4ad"; } + +.fa-plant-wilt::before { + content: "\e5aa"; } + +.fa-diamond::before { + content: "\f219"; } + +.fa-face-grin-squint::before { + content: "\f585"; } + +.fa-grin-squint::before { + content: "\f585"; } + +.fa-hand-holding-dollar::before { + content: "\f4c0"; } + +.fa-hand-holding-usd::before { + content: "\f4c0"; } + +.fa-bacterium::before { + content: "\e05a"; } + +.fa-hand-pointer::before { + content: "\f25a"; } + +.fa-drum-steelpan::before { + content: "\f56a"; } + +.fa-hand-scissors::before { + content: "\f257"; } + +.fa-hands-praying::before { + content: "\f684"; } + +.fa-praying-hands::before { + content: "\f684"; } + +.fa-arrow-rotate-right::before { + content: "\f01e"; } + +.fa-arrow-right-rotate::before { + content: "\f01e"; } + +.fa-arrow-rotate-forward::before { + content: "\f01e"; } + +.fa-redo::before { + content: "\f01e"; } + +.fa-biohazard::before { + content: "\f780"; } + +.fa-location-crosshairs::before { + content: "\f601"; } + +.fa-location::before { + content: "\f601"; } + +.fa-mars-double::before { + content: "\f227"; } + +.fa-child-dress::before { + content: "\e59c"; } + +.fa-users-between-lines::before { + content: "\e591"; } + +.fa-lungs-virus::before { + content: "\e067"; } + +.fa-face-grin-tears::before { + content: "\f588"; } + +.fa-grin-tears::before { + content: "\f588"; } + +.fa-phone::before { + content: "\f095"; } + +.fa-calendar-xmark::before { + content: "\f273"; } + +.fa-calendar-times::before { + content: "\f273"; } + +.fa-child-reaching::before { + content: "\e59d"; } + +.fa-head-side-virus::before { + content: "\e064"; } + +.fa-user-gear::before { + content: "\f4fe"; } + +.fa-user-cog::before { + content: "\f4fe"; } + +.fa-arrow-up-1-9::before { + content: "\f163"; } + +.fa-sort-numeric-up::before { + content: "\f163"; } + +.fa-door-closed::before { + content: "\f52a"; } + +.fa-shield-virus::before { + content: "\e06c"; } + +.fa-dice-six::before { + content: "\f526"; } + +.fa-mosquito-net::before { + content: "\e52c"; } + +.fa-bridge-water::before { + content: "\e4ce"; } + +.fa-person-booth::before { + content: "\f756"; } + +.fa-text-width::before { + content: "\f035"; } + +.fa-hat-wizard::before { + content: "\f6e8"; } + +.fa-pen-fancy::before { + content: "\f5ac"; } + +.fa-person-digging::before { + content: "\f85e"; } + +.fa-digging::before { + content: "\f85e"; } + +.fa-trash::before { + content: "\f1f8"; } + +.fa-gauge-simple::before { + content: "\f629"; } + +.fa-gauge-simple-med::before { + content: "\f629"; } + +.fa-tachometer-average::before { + content: "\f629"; } + +.fa-book-medical::before { + content: "\f7e6"; } + +.fa-poo::before { + content: "\f2fe"; } + +.fa-quote-right::before { + content: "\f10e"; } + +.fa-quote-right-alt::before { + content: "\f10e"; } + +.fa-shirt::before { + content: "\f553"; } + +.fa-t-shirt::before { + content: "\f553"; } + +.fa-tshirt::before { + content: "\f553"; } + +.fa-cubes::before { + content: "\f1b3"; } + +.fa-divide::before { + content: "\f529"; } + +.fa-tenge-sign::before { + content: "\f7d7"; } + +.fa-tenge::before { + content: "\f7d7"; } + +.fa-headphones::before { + content: "\f025"; } + +.fa-hands-holding::before { + content: "\f4c2"; } + +.fa-hands-clapping::before { + content: "\e1a8"; } + +.fa-republican::before { + content: "\f75e"; } + +.fa-arrow-left::before { + content: "\f060"; } + +.fa-person-circle-xmark::before { + content: "\e543"; } + +.fa-ruler::before { + content: "\f545"; } + +.fa-align-left::before { + content: "\f036"; } + +.fa-dice-d6::before { + content: "\f6d1"; } + +.fa-restroom::before { + content: "\f7bd"; } + +.fa-j::before { + content: "\4a"; } + +.fa-users-viewfinder::before { + content: "\e595"; } + +.fa-file-video::before { + content: "\f1c8"; } + +.fa-up-right-from-square::before { + content: "\f35d"; } + +.fa-external-link-alt::before { + content: "\f35d"; } + +.fa-table-cells::before { + content: "\f00a"; } + +.fa-th::before { + content: "\f00a"; } + +.fa-file-pdf::before { + content: "\f1c1"; } + +.fa-book-bible::before { + content: "\f647"; } + +.fa-bible::before { + content: "\f647"; } + +.fa-o::before { + content: "\4f"; } + +.fa-suitcase-medical::before { + content: "\f0fa"; } + +.fa-medkit::before { + content: "\f0fa"; } + +.fa-user-secret::before { + content: "\f21b"; } + +.fa-otter::before { + content: "\f700"; } + +.fa-person-dress::before { + content: "\f182"; } + +.fa-female::before { + content: "\f182"; } + +.fa-comment-dollar::before { + content: "\f651"; } + +.fa-business-time::before { + content: "\f64a"; } + +.fa-briefcase-clock::before { + content: "\f64a"; } + +.fa-table-cells-large::before { + content: "\f009"; } + +.fa-th-large::before { + content: "\f009"; } + +.fa-book-tanakh::before { + content: "\f827"; } + +.fa-tanakh::before { + content: "\f827"; } + +.fa-phone-volume::before { + content: "\f2a0"; } + +.fa-volume-control-phone::before { + content: "\f2a0"; } + +.fa-hat-cowboy-side::before { + content: "\f8c1"; } + +.fa-clipboard-user::before { + content: "\f7f3"; } + +.fa-child::before { + content: "\f1ae"; } + +.fa-lira-sign::before { + content: "\f195"; } + +.fa-satellite::before { + content: "\f7bf"; } + +.fa-plane-lock::before { + content: "\e558"; } + +.fa-tag::before { + content: "\f02b"; } + +.fa-comment::before { + content: "\f075"; } + +.fa-cake-candles::before { + content: "\f1fd"; } + +.fa-birthday-cake::before { + content: "\f1fd"; } + +.fa-cake::before { + content: "\f1fd"; } + +.fa-envelope::before { + content: "\f0e0"; } + +.fa-angles-up::before { + content: "\f102"; } + +.fa-angle-double-up::before { + content: "\f102"; } + +.fa-paperclip::before { + content: "\f0c6"; } + +.fa-arrow-right-to-city::before { + content: "\e4b3"; } + +.fa-ribbon::before { + content: "\f4d6"; } + +.fa-lungs::before { + content: "\f604"; } + +.fa-arrow-up-9-1::before { + content: "\f887"; } + +.fa-sort-numeric-up-alt::before { + content: "\f887"; } + +.fa-litecoin-sign::before { + content: "\e1d3"; } + +.fa-border-none::before { + content: "\f850"; } + +.fa-circle-nodes::before { + content: "\e4e2"; } + +.fa-parachute-box::before { + content: "\f4cd"; } + +.fa-indent::before { + content: "\f03c"; } + +.fa-truck-field-un::before { + content: "\e58e"; } + +.fa-hourglass::before { + content: "\f254"; } + +.fa-hourglass-empty::before { + content: "\f254"; } + +.fa-mountain::before { + content: "\f6fc"; } + +.fa-user-doctor::before { + content: "\f0f0"; } + +.fa-user-md::before { + content: "\f0f0"; } + +.fa-circle-info::before { + content: "\f05a"; } + +.fa-info-circle::before { + content: "\f05a"; } + +.fa-cloud-meatball::before { + content: "\f73b"; } + +.fa-camera::before { + content: "\f030"; } + +.fa-camera-alt::before { + content: "\f030"; } + +.fa-square-virus::before { + content: "\e578"; } + +.fa-meteor::before { + content: "\f753"; } + +.fa-car-on::before { + content: "\e4dd"; } + +.fa-sleigh::before { + content: "\f7cc"; } + +.fa-arrow-down-1-9::before { + content: "\f162"; } + +.fa-sort-numeric-asc::before { + content: "\f162"; } + +.fa-sort-numeric-down::before { + content: "\f162"; } + +.fa-hand-holding-droplet::before { + content: "\f4c1"; } + +.fa-hand-holding-water::before { + content: "\f4c1"; } + +.fa-water::before { + content: "\f773"; } + +.fa-calendar-check::before { + content: "\f274"; } + +.fa-braille::before { + content: "\f2a1"; } + +.fa-prescription-bottle-medical::before { + content: "\f486"; } + +.fa-prescription-bottle-alt::before { + content: "\f486"; } + +.fa-landmark::before { + content: "\f66f"; } + +.fa-truck::before { + content: "\f0d1"; } + +.fa-crosshairs::before { + content: "\f05b"; } + +.fa-person-cane::before { + content: "\e53c"; } + +.fa-tent::before { + content: "\e57d"; } + +.fa-vest-patches::before { + content: "\e086"; } + +.fa-check-double::before { + content: "\f560"; } + +.fa-arrow-down-a-z::before { + content: "\f15d"; } + +.fa-sort-alpha-asc::before { + content: "\f15d"; } + +.fa-sort-alpha-down::before { + content: "\f15d"; } + +.fa-money-bill-wheat::before { + content: "\e52a"; } + +.fa-cookie::before { + content: "\f563"; } + +.fa-arrow-rotate-left::before { + content: "\f0e2"; } + +.fa-arrow-left-rotate::before { + content: "\f0e2"; } + +.fa-arrow-rotate-back::before { + content: "\f0e2"; } + +.fa-arrow-rotate-backward::before { + content: "\f0e2"; } + +.fa-undo::before { + content: "\f0e2"; } + +.fa-hard-drive::before { + content: "\f0a0"; } + +.fa-hdd::before { + content: "\f0a0"; } + +.fa-face-grin-squint-tears::before { + content: "\f586"; } + +.fa-grin-squint-tears::before { + content: "\f586"; } + +.fa-dumbbell::before { + content: "\f44b"; } + +.fa-rectangle-list::before { + content: "\f022"; } + +.fa-list-alt::before { + content: "\f022"; } + +.fa-tarp-droplet::before { + content: "\e57c"; } + +.fa-house-medical-circle-check::before { + content: "\e511"; } + +.fa-person-skiing-nordic::before { + content: "\f7ca"; } + +.fa-skiing-nordic::before { + content: "\f7ca"; } + +.fa-calendar-plus::before { + content: "\f271"; } + +.fa-plane-arrival::before { + content: "\f5af"; } + +.fa-circle-left::before { + content: "\f359"; } + +.fa-arrow-alt-circle-left::before { + content: "\f359"; } + +.fa-train-subway::before { + content: "\f239"; } + +.fa-subway::before { + content: "\f239"; } + +.fa-chart-gantt::before { + content: "\e0e4"; } + +.fa-indian-rupee-sign::before { + content: "\e1bc"; } + +.fa-indian-rupee::before { + content: "\e1bc"; } + +.fa-inr::before { + content: "\e1bc"; } + +.fa-crop-simple::before { + content: "\f565"; } + +.fa-crop-alt::before { + content: "\f565"; } + +.fa-money-bill-1::before { + content: "\f3d1"; } + +.fa-money-bill-alt::before { + content: "\f3d1"; } + +.fa-left-long::before { + content: "\f30a"; } + +.fa-long-arrow-alt-left::before { + content: "\f30a"; } + +.fa-dna::before { + content: "\f471"; } + +.fa-virus-slash::before { + content: "\e075"; } + +.fa-minus::before { + content: "\f068"; } + +.fa-subtract::before { + content: "\f068"; } + +.fa-chess::before { + content: "\f439"; } + +.fa-arrow-left-long::before { + content: "\f177"; } + +.fa-long-arrow-left::before { + content: "\f177"; } + +.fa-plug-circle-check::before { + content: "\e55c"; } + +.fa-street-view::before { + content: "\f21d"; } + +.fa-franc-sign::before { + content: "\e18f"; } + +.fa-volume-off::before { + content: "\f026"; } + +.fa-hands-asl-interpreting::before { + content: "\f2a3"; } + +.fa-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-asl-interpreting::before { + content: "\f2a3"; } + +.fa-hands-american-sign-language-interpreting::before { + content: "\f2a3"; } + +.fa-gear::before { + content: "\f013"; } + +.fa-cog::before { + content: "\f013"; } + +.fa-droplet-slash::before { + content: "\f5c7"; } + +.fa-tint-slash::before { + content: "\f5c7"; } + +.fa-mosque::before { + content: "\f678"; } + +.fa-mosquito::before { + content: "\e52b"; } + +.fa-star-of-david::before { + content: "\f69a"; } + +.fa-person-military-rifle::before { + content: "\e54b"; } + +.fa-cart-shopping::before { + content: "\f07a"; } + +.fa-shopping-cart::before { + content: "\f07a"; } + +.fa-vials::before { + content: "\f493"; } + +.fa-plug-circle-plus::before { + content: "\e55f"; } + +.fa-place-of-worship::before { + content: "\f67f"; } + +.fa-grip-vertical::before { + content: "\f58e"; } + +.fa-arrow-turn-up::before { + content: "\f148"; } + +.fa-level-up::before { + content: "\f148"; } + +.fa-u::before { + content: "\55"; } + +.fa-square-root-variable::before { + content: "\f698"; } + +.fa-square-root-alt::before { + content: "\f698"; } + +.fa-clock::before { + content: "\f017"; } + +.fa-clock-four::before { + content: "\f017"; } + +.fa-backward-step::before { + content: "\f048"; } + +.fa-step-backward::before { + content: "\f048"; } + +.fa-pallet::before { + content: "\f482"; } + +.fa-faucet::before { + content: "\e005"; } + +.fa-baseball-bat-ball::before { + content: "\f432"; } + +.fa-s::before { + content: "\53"; } + +.fa-timeline::before { + content: "\e29c"; } + +.fa-keyboard::before { + content: "\f11c"; } + +.fa-caret-down::before { + content: "\f0d7"; } + +.fa-house-chimney-medical::before { + content: "\f7f2"; } + +.fa-clinic-medical::before { + content: "\f7f2"; } + +.fa-temperature-three-quarters::before { + content: "\f2c8"; } + +.fa-temperature-3::before { + content: "\f2c8"; } + +.fa-thermometer-3::before { + content: "\f2c8"; } + +.fa-thermometer-three-quarters::before { + content: "\f2c8"; } + +.fa-mobile-screen::before { + content: "\f3cf"; } + +.fa-mobile-android-alt::before { + content: "\f3cf"; } + +.fa-plane-up::before { + content: "\e22d"; } + +.fa-piggy-bank::before { + content: "\f4d3"; } + +.fa-battery-half::before { + content: "\f242"; } + +.fa-battery-3::before { + content: "\f242"; } + +.fa-mountain-city::before { + content: "\e52e"; } + +.fa-coins::before { + content: "\f51e"; } + +.fa-khanda::before { + content: "\f66d"; } + +.fa-sliders::before { + content: "\f1de"; } + +.fa-sliders-h::before { + content: "\f1de"; } + +.fa-folder-tree::before { + content: "\f802"; } + +.fa-network-wired::before { + content: "\f6ff"; } + +.fa-map-pin::before { + content: "\f276"; } + +.fa-hamsa::before { + content: "\f665"; } + +.fa-cent-sign::before { + content: "\e3f5"; } + +.fa-flask::before { + content: "\f0c3"; } + +.fa-person-pregnant::before { + content: "\e31e"; } + +.fa-wand-sparkles::before { + content: "\f72b"; } + +.fa-ellipsis-vertical::before { + content: "\f142"; } + +.fa-ellipsis-v::before { + content: "\f142"; } + +.fa-ticket::before { + content: "\f145"; } + +.fa-power-off::before { + content: "\f011"; } + +.fa-right-long::before { + content: "\f30b"; } + +.fa-long-arrow-alt-right::before { + content: "\f30b"; } + +.fa-flag-usa::before { + content: "\f74d"; } + +.fa-laptop-file::before { + content: "\e51d"; } + +.fa-tty::before { + content: "\f1e4"; } + +.fa-teletype::before { + content: "\f1e4"; } + +.fa-diagram-next::before { + content: "\e476"; } + +.fa-person-rifle::before { + content: "\e54e"; } + +.fa-house-medical-circle-exclamation::before { + content: "\e512"; } + +.fa-closed-captioning::before { + content: "\f20a"; } + +.fa-person-hiking::before { + content: "\f6ec"; } + +.fa-hiking::before { + content: "\f6ec"; } + +.fa-venus-double::before { + content: "\f226"; } + +.fa-images::before { + content: "\f302"; } + +.fa-calculator::before { + content: "\f1ec"; } + +.fa-people-pulling::before { + content: "\e535"; } + +.fa-n::before { + content: "\4e"; } + +.fa-cable-car::before { + content: "\f7da"; } + +.fa-tram::before { + content: "\f7da"; } + +.fa-cloud-rain::before { + content: "\f73d"; } + +.fa-building-circle-xmark::before { + content: "\e4d4"; } + +.fa-ship::before { + content: "\f21a"; } + +.fa-arrows-down-to-line::before { + content: "\e4b8"; } + +.fa-download::before { + content: "\f019"; } + +.fa-face-grin::before { + content: "\f580"; } + +.fa-grin::before { + content: "\f580"; } + +.fa-delete-left::before { + content: "\f55a"; } + +.fa-backspace::before { + content: "\f55a"; } + +.fa-eye-dropper::before { + content: "\f1fb"; } + +.fa-eye-dropper-empty::before { + content: "\f1fb"; } + +.fa-eyedropper::before { + content: "\f1fb"; } + +.fa-file-circle-check::before { + content: "\e5a0"; } + +.fa-forward::before { + content: "\f04e"; } + +.fa-mobile::before { + content: "\f3ce"; } + +.fa-mobile-android::before { + content: "\f3ce"; } + +.fa-mobile-phone::before { + content: "\f3ce"; } + +.fa-face-meh::before { + content: "\f11a"; } + +.fa-meh::before { + content: "\f11a"; } + +.fa-align-center::before { + content: "\f037"; } + +.fa-book-skull::before { + content: "\f6b7"; } + +.fa-book-dead::before { + content: "\f6b7"; } + +.fa-id-card::before { + content: "\f2c2"; } + +.fa-drivers-license::before { + content: "\f2c2"; } + +.fa-outdent::before { + content: "\f03b"; } + +.fa-dedent::before { + content: "\f03b"; } + +.fa-heart-circle-exclamation::before { + content: "\e4fe"; } + +.fa-house::before { + content: "\f015"; } + +.fa-home::before { + content: "\f015"; } + +.fa-home-alt::before { + content: "\f015"; } + +.fa-home-lg-alt::before { + content: "\f015"; } + +.fa-calendar-week::before { + content: "\f784"; } + +.fa-laptop-medical::before { + content: "\f812"; } + +.fa-b::before { + content: "\42"; } + +.fa-file-medical::before { + content: "\f477"; } + +.fa-dice-one::before { + content: "\f525"; } + +.fa-kiwi-bird::before { + content: "\f535"; } + +.fa-arrow-right-arrow-left::before { + content: "\f0ec"; } + +.fa-exchange::before { + content: "\f0ec"; } + +.fa-rotate-right::before { + content: "\f2f9"; } + +.fa-redo-alt::before { + content: "\f2f9"; } + +.fa-rotate-forward::before { + content: "\f2f9"; } + +.fa-utensils::before { + content: "\f2e7"; } + +.fa-cutlery::before { + content: "\f2e7"; } + +.fa-arrow-up-wide-short::before { + content: "\f161"; } + +.fa-sort-amount-up::before { + content: "\f161"; } + +.fa-mill-sign::before { + content: "\e1ed"; } + +.fa-bowl-rice::before { + content: "\e2eb"; } + +.fa-skull::before { + content: "\f54c"; } + +.fa-tower-broadcast::before { + content: "\f519"; } + +.fa-broadcast-tower::before { + content: "\f519"; } + +.fa-truck-pickup::before { + content: "\f63c"; } + +.fa-up-long::before { + content: "\f30c"; } + +.fa-long-arrow-alt-up::before { + content: "\f30c"; } + +.fa-stop::before { + content: "\f04d"; } + +.fa-code-merge::before { + content: "\f387"; } + +.fa-upload::before { + content: "\f093"; } + +.fa-hurricane::before { + content: "\f751"; } + +.fa-mound::before { + content: "\e52d"; } + +.fa-toilet-portable::before { + content: "\e583"; } + +.fa-compact-disc::before { + content: "\f51f"; } + +.fa-file-arrow-down::before { + content: "\f56d"; } + +.fa-file-download::before { + content: "\f56d"; } + +.fa-caravan::before { + content: "\f8ff"; } + +.fa-shield-cat::before { + content: "\e572"; } + +.fa-bolt::before { + content: "\f0e7"; } + +.fa-zap::before { + content: "\f0e7"; } + +.fa-glass-water::before { + content: "\e4f4"; } + +.fa-oil-well::before { + content: "\e532"; } + +.fa-vault::before { + content: "\e2c5"; } + +.fa-mars::before { + content: "\f222"; } + +.fa-toilet::before { + content: "\f7d8"; } + +.fa-plane-circle-xmark::before { + content: "\e557"; } + +.fa-yen-sign::before { + content: "\f157"; } + +.fa-cny::before { + content: "\f157"; } + +.fa-jpy::before { + content: "\f157"; } + +.fa-rmb::before { + content: "\f157"; } + +.fa-yen::before { + content: "\f157"; } + +.fa-ruble-sign::before { + content: "\f158"; } + +.fa-rouble::before { + content: "\f158"; } + +.fa-rub::before { + content: "\f158"; } + +.fa-ruble::before { + content: "\f158"; } + +.fa-sun::before { + content: "\f185"; } + +.fa-guitar::before { + content: "\f7a6"; } + +.fa-face-laugh-wink::before { + content: "\f59c"; } + +.fa-laugh-wink::before { + content: "\f59c"; } + +.fa-horse-head::before { + content: "\f7ab"; } + +.fa-bore-hole::before { + content: "\e4c3"; } + +.fa-industry::before { + content: "\f275"; } + +.fa-circle-down::before { + content: "\f358"; } + +.fa-arrow-alt-circle-down::before { + content: "\f358"; } + +.fa-arrows-turn-to-dots::before { + content: "\e4c1"; } + +.fa-florin-sign::before { + content: "\e184"; } + +.fa-arrow-down-short-wide::before { + content: "\f884"; } + +.fa-sort-amount-desc::before { + content: "\f884"; } + +.fa-sort-amount-down-alt::before { + content: "\f884"; } + +.fa-less-than::before { + content: "\3c"; } + +.fa-angle-down::before { + content: "\f107"; } + +.fa-car-tunnel::before { + content: "\e4de"; } + +.fa-head-side-cough::before { + content: "\e061"; } + +.fa-grip-lines::before { + content: "\f7a4"; } + +.fa-thumbs-down::before { + content: "\f165"; } + +.fa-user-lock::before { + content: "\f502"; } + +.fa-arrow-right-long::before { + content: "\f178"; } + +.fa-long-arrow-right::before { + content: "\f178"; } + +.fa-anchor-circle-xmark::before { + content: "\e4ac"; } + +.fa-ellipsis::before { + content: "\f141"; } + +.fa-ellipsis-h::before { + content: "\f141"; } + +.fa-chess-pawn::before { + content: "\f443"; } + +.fa-kit-medical::before { + content: "\f479"; } + +.fa-first-aid::before { + content: "\f479"; } + +.fa-person-through-window::before { + content: "\e5a9"; } + +.fa-toolbox::before { + content: "\f552"; } + +.fa-hands-holding-circle::before { + content: "\e4fb"; } + +.fa-bug::before { + content: "\f188"; } + +.fa-credit-card::before { + content: "\f09d"; } + +.fa-credit-card-alt::before { + content: "\f09d"; } + +.fa-car::before { + content: "\f1b9"; } + +.fa-automobile::before { + content: "\f1b9"; } + +.fa-hand-holding-hand::before { + content: "\e4f7"; } + +.fa-book-open-reader::before { + content: "\f5da"; } + +.fa-book-reader::before { + content: "\f5da"; } + +.fa-mountain-sun::before { + content: "\e52f"; } + +.fa-arrows-left-right-to-line::before { + content: "\e4ba"; } + +.fa-dice-d20::before { + content: "\f6cf"; } + +.fa-truck-droplet::before { + content: "\e58c"; } + +.fa-file-circle-xmark::before { + content: "\e5a1"; } + +.fa-temperature-arrow-up::before { + content: "\e040"; } + +.fa-temperature-up::before { + content: "\e040"; } + +.fa-medal::before { + content: "\f5a2"; } + +.fa-bed::before { + content: "\f236"; } + +.fa-square-h::before { + content: "\f0fd"; } + +.fa-h-square::before { + content: "\f0fd"; } + +.fa-podcast::before { + content: "\f2ce"; } + +.fa-temperature-full::before { + content: "\f2c7"; } + +.fa-temperature-4::before { + content: "\f2c7"; } + +.fa-thermometer-4::before { + content: "\f2c7"; } + +.fa-thermometer-full::before { + content: "\f2c7"; } + +.fa-bell::before { + content: "\f0f3"; } + +.fa-superscript::before { + content: "\f12b"; } + +.fa-plug-circle-xmark::before { + content: "\e560"; } + +.fa-star-of-life::before { + content: "\f621"; } + +.fa-phone-slash::before { + content: "\f3dd"; } + +.fa-paint-roller::before { + content: "\f5aa"; } + +.fa-handshake-angle::before { + content: "\f4c4"; } + +.fa-hands-helping::before { + content: "\f4c4"; } + +.fa-location-dot::before { + content: "\f3c5"; } + +.fa-map-marker-alt::before { + content: "\f3c5"; } + +.fa-file::before { + content: "\f15b"; } + +.fa-greater-than::before { + content: "\3e"; } + +.fa-person-swimming::before { + content: "\f5c4"; } + +.fa-swimmer::before { + content: "\f5c4"; } + +.fa-arrow-down::before { + content: "\f063"; } + +.fa-droplet::before { + content: "\f043"; } + +.fa-tint::before { + content: "\f043"; } + +.fa-eraser::before { + content: "\f12d"; } + +.fa-earth-americas::before { + content: "\f57d"; } + +.fa-earth::before { + content: "\f57d"; } + +.fa-earth-america::before { + content: "\f57d"; } + +.fa-globe-americas::before { + content: "\f57d"; } + +.fa-person-burst::before { + content: "\e53b"; } + +.fa-dove::before { + content: "\f4ba"; } + +.fa-battery-empty::before { + content: "\f244"; } + +.fa-battery-0::before { + content: "\f244"; } + +.fa-socks::before { + content: "\f696"; } + +.fa-inbox::before { + content: "\f01c"; } + +.fa-section::before { + content: "\e447"; } + +.fa-gauge-high::before { + content: "\f625"; } + +.fa-tachometer-alt::before { + content: "\f625"; } + +.fa-tachometer-alt-fast::before { + content: "\f625"; } + +.fa-envelope-open-text::before { + content: "\f658"; } + +.fa-hospital::before { + content: "\f0f8"; } + +.fa-hospital-alt::before { + content: "\f0f8"; } + +.fa-hospital-wide::before { + content: "\f0f8"; } + +.fa-wine-bottle::before { + content: "\f72f"; } + +.fa-chess-rook::before { + content: "\f447"; } + +.fa-bars-staggered::before { + content: "\f550"; } + +.fa-reorder::before { + content: "\f550"; } + +.fa-stream::before { + content: "\f550"; } + +.fa-dharmachakra::before { + content: "\f655"; } + +.fa-hotdog::before { + content: "\f80f"; } + +.fa-person-walking-with-cane::before { + content: "\f29d"; } + +.fa-blind::before { + content: "\f29d"; } + +.fa-drum::before { + content: "\f569"; } + +.fa-ice-cream::before { + content: "\f810"; } + +.fa-heart-circle-bolt::before { + content: "\e4fc"; } + +.fa-fax::before { + content: "\f1ac"; } + +.fa-paragraph::before { + content: "\f1dd"; } + +.fa-check-to-slot::before { + content: "\f772"; } + +.fa-vote-yea::before { + content: "\f772"; } + +.fa-star-half::before { + content: "\f089"; } + +.fa-boxes-stacked::before { + content: "\f468"; } + +.fa-boxes::before { + content: "\f468"; } + +.fa-boxes-alt::before { + content: "\f468"; } + +.fa-link::before { + content: "\f0c1"; } + +.fa-chain::before { + content: "\f0c1"; } + +.fa-ear-listen::before { + content: "\f2a2"; } + +.fa-assistive-listening-systems::before { + content: "\f2a2"; } + +.fa-tree-city::before { + content: "\e587"; } + +.fa-play::before { + content: "\f04b"; } + +.fa-font::before { + content: "\f031"; } + +.fa-table-cells-row-lock::before { + content: "\e67a"; } + +.fa-rupiah-sign::before { + content: "\e23d"; } + +.fa-magnifying-glass::before { + content: "\f002"; } + +.fa-search::before { + content: "\f002"; } + +.fa-table-tennis-paddle-ball::before { + content: "\f45d"; } + +.fa-ping-pong-paddle-ball::before { + content: "\f45d"; } + +.fa-table-tennis::before { + content: "\f45d"; } + +.fa-person-dots-from-line::before { + content: "\f470"; } + +.fa-diagnoses::before { + content: "\f470"; } + +.fa-trash-can-arrow-up::before { + content: "\f82a"; } + +.fa-trash-restore-alt::before { + content: "\f82a"; } + +.fa-naira-sign::before { + content: "\e1f6"; } + +.fa-cart-arrow-down::before { + content: "\f218"; } + +.fa-walkie-talkie::before { + content: "\f8ef"; } + +.fa-file-pen::before { + content: "\f31c"; } + +.fa-file-edit::before { + content: "\f31c"; } + +.fa-receipt::before { + content: "\f543"; } + +.fa-square-pen::before { + content: "\f14b"; } + +.fa-pen-square::before { + content: "\f14b"; } + +.fa-pencil-square::before { + content: "\f14b"; } + +.fa-suitcase-rolling::before { + content: "\f5c1"; } + +.fa-person-circle-exclamation::before { + content: "\e53f"; } + +.fa-chevron-down::before { + content: "\f078"; } + +.fa-battery-full::before { + content: "\f240"; } + +.fa-battery::before { + content: "\f240"; } + +.fa-battery-5::before { + content: "\f240"; } + +.fa-skull-crossbones::before { + content: "\f714"; } + +.fa-code-compare::before { + content: "\e13a"; } + +.fa-list-ul::before { + content: "\f0ca"; } + +.fa-list-dots::before { + content: "\f0ca"; } + +.fa-school-lock::before { + content: "\e56f"; } + +.fa-tower-cell::before { + content: "\e585"; } + +.fa-down-long::before { + content: "\f309"; } + +.fa-long-arrow-alt-down::before { + content: "\f309"; } + +.fa-ranking-star::before { + content: "\e561"; } + +.fa-chess-king::before { + content: "\f43f"; } + +.fa-person-harassing::before { + content: "\e549"; } + +.fa-brazilian-real-sign::before { + content: "\e46c"; } + +.fa-landmark-dome::before { + content: "\f752"; } + +.fa-landmark-alt::before { + content: "\f752"; } + +.fa-arrow-up::before { + content: "\f062"; } + +.fa-tv::before { + content: "\f26c"; } + +.fa-television::before { + content: "\f26c"; } + +.fa-tv-alt::before { + content: "\f26c"; } + +.fa-shrimp::before { + content: "\e448"; } + +.fa-list-check::before { + content: "\f0ae"; } + +.fa-tasks::before { + content: "\f0ae"; } + +.fa-jug-detergent::before { + content: "\e519"; } + +.fa-circle-user::before { + content: "\f2bd"; } + +.fa-user-circle::before { + content: "\f2bd"; } + +.fa-user-shield::before { + content: "\f505"; } + +.fa-wind::before { + content: "\f72e"; } + +.fa-car-burst::before { + content: "\f5e1"; } + +.fa-car-crash::before { + content: "\f5e1"; } + +.fa-y::before { + content: "\59"; } + +.fa-person-snowboarding::before { + content: "\f7ce"; } + +.fa-snowboarding::before { + content: "\f7ce"; } + +.fa-truck-fast::before { + content: "\f48b"; } + +.fa-shipping-fast::before { + content: "\f48b"; } + +.fa-fish::before { + content: "\f578"; } + +.fa-user-graduate::before { + content: "\f501"; } + +.fa-circle-half-stroke::before { + content: "\f042"; } + +.fa-adjust::before { + content: "\f042"; } + +.fa-clapperboard::before { + content: "\e131"; } + +.fa-circle-radiation::before { + content: "\f7ba"; } + +.fa-radiation-alt::before { + content: "\f7ba"; } + +.fa-baseball::before { + content: "\f433"; } + +.fa-baseball-ball::before { + content: "\f433"; } + +.fa-jet-fighter-up::before { + content: "\e518"; } + +.fa-diagram-project::before { + content: "\f542"; } + +.fa-project-diagram::before { + content: "\f542"; } + +.fa-copy::before { + content: "\f0c5"; } + +.fa-volume-xmark::before { + content: "\f6a9"; } + +.fa-volume-mute::before { + content: "\f6a9"; } + +.fa-volume-times::before { + content: "\f6a9"; } + +.fa-hand-sparkles::before { + content: "\e05d"; } + +.fa-grip::before { + content: "\f58d"; } + +.fa-grip-horizontal::before { + content: "\f58d"; } + +.fa-share-from-square::before { + content: "\f14d"; } + +.fa-share-square::before { + content: "\f14d"; } + +.fa-child-combatant::before { + content: "\e4e0"; } + +.fa-child-rifle::before { + content: "\e4e0"; } + +.fa-gun::before { + content: "\e19b"; } + +.fa-square-phone::before { + content: "\f098"; } + +.fa-phone-square::before { + content: "\f098"; } + +.fa-plus::before { + content: "\2b"; } + +.fa-add::before { + content: "\2b"; } + +.fa-expand::before { + content: "\f065"; } + +.fa-computer::before { + content: "\e4e5"; } + +.fa-xmark::before { + content: "\f00d"; } + +.fa-close::before { + content: "\f00d"; } + +.fa-multiply::before { + content: "\f00d"; } + +.fa-remove::before { + content: "\f00d"; } + +.fa-times::before { + content: "\f00d"; } + +.fa-arrows-up-down-left-right::before { + content: "\f047"; } + +.fa-arrows::before { + content: "\f047"; } + +.fa-chalkboard-user::before { + content: "\f51c"; } + +.fa-chalkboard-teacher::before { + content: "\f51c"; } + +.fa-peso-sign::before { + content: "\e222"; } + +.fa-building-shield::before { + content: "\e4d8"; } + +.fa-baby::before { + content: "\f77c"; } + +.fa-users-line::before { + content: "\e592"; } + +.fa-quote-left::before { + content: "\f10d"; } + +.fa-quote-left-alt::before { + content: "\f10d"; } + +.fa-tractor::before { + content: "\f722"; } + +.fa-trash-arrow-up::before { + content: "\f829"; } + +.fa-trash-restore::before { + content: "\f829"; } + +.fa-arrow-down-up-lock::before { + content: "\e4b0"; } + +.fa-lines-leaning::before { + content: "\e51e"; } + +.fa-ruler-combined::before { + content: "\f546"; } + +.fa-copyright::before { + content: "\f1f9"; } + +.fa-equals::before { + content: "\3d"; } + +.fa-blender::before { + content: "\f517"; } + +.fa-teeth::before { + content: "\f62e"; } + +.fa-shekel-sign::before { + content: "\f20b"; } + +.fa-ils::before { + content: "\f20b"; } + +.fa-shekel::before { + content: "\f20b"; } + +.fa-sheqel::before { + content: "\f20b"; } + +.fa-sheqel-sign::before { + content: "\f20b"; } + +.fa-map::before { + content: "\f279"; } + +.fa-rocket::before { + content: "\f135"; } + +.fa-photo-film::before { + content: "\f87c"; } + +.fa-photo-video::before { + content: "\f87c"; } + +.fa-folder-minus::before { + content: "\f65d"; } + +.fa-store::before { + content: "\f54e"; } + +.fa-arrow-trend-up::before { + content: "\e098"; } + +.fa-plug-circle-minus::before { + content: "\e55e"; } + +.fa-sign-hanging::before { + content: "\f4d9"; } + +.fa-sign::before { + content: "\f4d9"; } + +.fa-bezier-curve::before { + content: "\f55b"; } + +.fa-bell-slash::before { + content: "\f1f6"; } + +.fa-tablet::before { + content: "\f3fb"; } + +.fa-tablet-android::before { + content: "\f3fb"; } + +.fa-school-flag::before { + content: "\e56e"; } + +.fa-fill::before { + content: "\f575"; } + +.fa-angle-up::before { + content: "\f106"; } + +.fa-drumstick-bite::before { + content: "\f6d7"; } + +.fa-holly-berry::before { + content: "\f7aa"; } + +.fa-chevron-left::before { + content: "\f053"; } + +.fa-bacteria::before { + content: "\e059"; } + +.fa-hand-lizard::before { + content: "\f258"; } + +.fa-notdef::before { + content: "\e1fe"; } + +.fa-disease::before { + content: "\f7fa"; } + +.fa-briefcase-medical::before { + content: "\f469"; } + +.fa-genderless::before { + content: "\f22d"; } + +.fa-chevron-right::before { + content: "\f054"; } + +.fa-retweet::before { + content: "\f079"; } + +.fa-car-rear::before { + content: "\f5de"; } + +.fa-car-alt::before { + content: "\f5de"; } + +.fa-pump-soap::before { + content: "\e06b"; } + +.fa-video-slash::before { + content: "\f4e2"; } + +.fa-battery-quarter::before { + content: "\f243"; } + +.fa-battery-2::before { + content: "\f243"; } + +.fa-radio::before { + content: "\f8d7"; } + +.fa-baby-carriage::before { + content: "\f77d"; } + +.fa-carriage-baby::before { + content: "\f77d"; } + +.fa-traffic-light::before { + content: "\f637"; } + +.fa-thermometer::before { + content: "\f491"; } + +.fa-vr-cardboard::before { + content: "\f729"; } + +.fa-hand-middle-finger::before { + content: "\f806"; } + +.fa-percent::before { + content: "\25"; } + +.fa-percentage::before { + content: "\25"; } + +.fa-truck-moving::before { + content: "\f4df"; } + +.fa-glass-water-droplet::before { + content: "\e4f5"; } + +.fa-display::before { + content: "\e163"; } + +.fa-face-smile::before { + content: "\f118"; } + +.fa-smile::before { + content: "\f118"; } + +.fa-thumbtack::before { + content: "\f08d"; } + +.fa-thumb-tack::before { + content: "\f08d"; } + +.fa-trophy::before { + content: "\f091"; } + +.fa-person-praying::before { + content: "\f683"; } + +.fa-pray::before { + content: "\f683"; } + +.fa-hammer::before { + content: "\f6e3"; } + +.fa-hand-peace::before { + content: "\f25b"; } + +.fa-rotate::before { + content: "\f2f1"; } + +.fa-sync-alt::before { + content: "\f2f1"; } + +.fa-spinner::before { + content: "\f110"; } + +.fa-robot::before { + content: "\f544"; } + +.fa-peace::before { + content: "\f67c"; } + +.fa-gears::before { + content: "\f085"; } + +.fa-cogs::before { + content: "\f085"; } + +.fa-warehouse::before { + content: "\f494"; } + +.fa-arrow-up-right-dots::before { + content: "\e4b7"; } + +.fa-splotch::before { + content: "\f5bc"; } + +.fa-face-grin-hearts::before { + content: "\f584"; } + +.fa-grin-hearts::before { + content: "\f584"; } + +.fa-dice-four::before { + content: "\f524"; } + +.fa-sim-card::before { + content: "\f7c4"; } + +.fa-transgender::before { + content: "\f225"; } + +.fa-transgender-alt::before { + content: "\f225"; } + +.fa-mercury::before { + content: "\f223"; } + +.fa-arrow-turn-down::before { + content: "\f149"; } + +.fa-level-down::before { + content: "\f149"; } + +.fa-person-falling-burst::before { + content: "\e547"; } + +.fa-award::before { + content: "\f559"; } + +.fa-ticket-simple::before { + content: "\f3ff"; } + +.fa-ticket-alt::before { + content: "\f3ff"; } + +.fa-building::before { + content: "\f1ad"; } + +.fa-angles-left::before { + content: "\f100"; } + +.fa-angle-double-left::before { + content: "\f100"; } + +.fa-qrcode::before { + content: "\f029"; } + +.fa-clock-rotate-left::before { + content: "\f1da"; } + +.fa-history::before { + content: "\f1da"; } + +.fa-face-grin-beam-sweat::before { + content: "\f583"; } + +.fa-grin-beam-sweat::before { + content: "\f583"; } + +.fa-file-export::before { + content: "\f56e"; } + +.fa-arrow-right-from-file::before { + content: "\f56e"; } + +.fa-shield::before { + content: "\f132"; } + +.fa-shield-blank::before { + content: "\f132"; } + +.fa-arrow-up-short-wide::before { + content: "\f885"; } + +.fa-sort-amount-up-alt::before { + content: "\f885"; } + +.fa-house-medical::before { + content: "\e3b2"; } + +.fa-golf-ball-tee::before { + content: "\f450"; } + +.fa-golf-ball::before { + content: "\f450"; } + +.fa-circle-chevron-left::before { + content: "\f137"; } + +.fa-chevron-circle-left::before { + content: "\f137"; } + +.fa-house-chimney-window::before { + content: "\e00d"; } + +.fa-pen-nib::before { + content: "\f5ad"; } + +.fa-tent-arrow-turn-left::before { + content: "\e580"; } + +.fa-tents::before { + content: "\e582"; } + +.fa-wand-magic::before { + content: "\f0d0"; } + +.fa-magic::before { + content: "\f0d0"; } + +.fa-dog::before { + content: "\f6d3"; } + +.fa-carrot::before { + content: "\f787"; } + +.fa-moon::before { + content: "\f186"; } + +.fa-wine-glass-empty::before { + content: "\f5ce"; } + +.fa-wine-glass-alt::before { + content: "\f5ce"; } + +.fa-cheese::before { + content: "\f7ef"; } + +.fa-yin-yang::before { + content: "\f6ad"; } + +.fa-music::before { + content: "\f001"; } + +.fa-code-commit::before { + content: "\f386"; } + +.fa-temperature-low::before { + content: "\f76b"; } + +.fa-person-biking::before { + content: "\f84a"; } + +.fa-biking::before { + content: "\f84a"; } + +.fa-broom::before { + content: "\f51a"; } + +.fa-shield-heart::before { + content: "\e574"; } + +.fa-gopuram::before { + content: "\f664"; } + +.fa-earth-oceania::before { + content: "\e47b"; } + +.fa-globe-oceania::before { + content: "\e47b"; } + +.fa-square-xmark::before { + content: "\f2d3"; } + +.fa-times-square::before { + content: "\f2d3"; } + +.fa-xmark-square::before { + content: "\f2d3"; } + +.fa-hashtag::before { + content: "\23"; } + +.fa-up-right-and-down-left-from-center::before { + content: "\f424"; } + +.fa-expand-alt::before { + content: "\f424"; } + +.fa-oil-can::before { + content: "\f613"; } + +.fa-t::before { + content: "\54"; } + +.fa-hippo::before { + content: "\f6ed"; } + +.fa-chart-column::before { + content: "\e0e3"; } + +.fa-infinity::before { + content: "\f534"; } + +.fa-vial-circle-check::before { + content: "\e596"; } + +.fa-person-arrow-down-to-line::before { + content: "\e538"; } + +.fa-voicemail::before { + content: "\f897"; } + +.fa-fan::before { + content: "\f863"; } + +.fa-person-walking-luggage::before { + content: "\e554"; } + +.fa-up-down::before { + content: "\f338"; } + +.fa-arrows-alt-v::before { + content: "\f338"; } + +.fa-cloud-moon-rain::before { + content: "\f73c"; } + +.fa-calendar::before { + content: "\f133"; } + +.fa-trailer::before { + content: "\e041"; } + +.fa-bahai::before { + content: "\f666"; } + +.fa-haykal::before { + content: "\f666"; } + +.fa-sd-card::before { + content: "\f7c2"; } + +.fa-dragon::before { + content: "\f6d5"; } + +.fa-shoe-prints::before { + content: "\f54b"; } + +.fa-circle-plus::before { + content: "\f055"; } + +.fa-plus-circle::before { + content: "\f055"; } + +.fa-face-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-grin-tongue-wink::before { + content: "\f58b"; } + +.fa-hand-holding::before { + content: "\f4bd"; } + +.fa-plug-circle-exclamation::before { + content: "\e55d"; } + +.fa-link-slash::before { + content: "\f127"; } + +.fa-chain-broken::before { + content: "\f127"; } + +.fa-chain-slash::before { + content: "\f127"; } + +.fa-unlink::before { + content: "\f127"; } + +.fa-clone::before { + content: "\f24d"; } + +.fa-person-walking-arrow-loop-left::before { + content: "\e551"; } + +.fa-arrow-up-z-a::before { + content: "\f882"; } + +.fa-sort-alpha-up-alt::before { + content: "\f882"; } + +.fa-fire-flame-curved::before { + content: "\f7e4"; } + +.fa-fire-alt::before { + content: "\f7e4"; } + +.fa-tornado::before { + content: "\f76f"; } + +.fa-file-circle-plus::before { + content: "\e494"; } + +.fa-book-quran::before { + content: "\f687"; } + +.fa-quran::before { + content: "\f687"; } + +.fa-anchor::before { + content: "\f13d"; } + +.fa-border-all::before { + content: "\f84c"; } + +.fa-face-angry::before { + content: "\f556"; } + +.fa-angry::before { + content: "\f556"; } + +.fa-cookie-bite::before { + content: "\f564"; } + +.fa-arrow-trend-down::before { + content: "\e097"; } + +.fa-rss::before { + content: "\f09e"; } + +.fa-feed::before { + content: "\f09e"; } + +.fa-draw-polygon::before { + content: "\f5ee"; } + +.fa-scale-balanced::before { + content: "\f24e"; } + +.fa-balance-scale::before { + content: "\f24e"; } + +.fa-gauge-simple-high::before { + content: "\f62a"; } + +.fa-tachometer::before { + content: "\f62a"; } + +.fa-tachometer-fast::before { + content: "\f62a"; } + +.fa-shower::before { + content: "\f2cc"; } + +.fa-desktop::before { + content: "\f390"; } + +.fa-desktop-alt::before { + content: "\f390"; } + +.fa-m::before { + content: "\4d"; } + +.fa-table-list::before { + content: "\f00b"; } + +.fa-th-list::before { + content: "\f00b"; } + +.fa-comment-sms::before { + content: "\f7cd"; } + +.fa-sms::before { + content: "\f7cd"; } + +.fa-book::before { + content: "\f02d"; } + +.fa-user-plus::before { + content: "\f234"; } + +.fa-check::before { + content: "\f00c"; } + +.fa-battery-three-quarters::before { + content: "\f241"; } + +.fa-battery-4::before { + content: "\f241"; } + +.fa-house-circle-check::before { + content: "\e509"; } + +.fa-angle-left::before { + content: "\f104"; } + +.fa-diagram-successor::before { + content: "\e47a"; } + +.fa-truck-arrow-right::before { + content: "\e58b"; } + +.fa-arrows-split-up-and-left::before { + content: "\e4bc"; } + +.fa-hand-fist::before { + content: "\f6de"; } + +.fa-fist-raised::before { + content: "\f6de"; } + +.fa-cloud-moon::before { + content: "\f6c3"; } + +.fa-briefcase::before { + content: "\f0b1"; } + +.fa-person-falling::before { + content: "\e546"; } + +.fa-image-portrait::before { + content: "\f3e0"; } + +.fa-portrait::before { + content: "\f3e0"; } + +.fa-user-tag::before { + content: "\f507"; } + +.fa-rug::before { + content: "\e569"; } + +.fa-earth-europe::before { + content: "\f7a2"; } + +.fa-globe-europe::before { + content: "\f7a2"; } + +.fa-cart-flatbed-suitcase::before { + content: "\f59d"; } + +.fa-luggage-cart::before { + content: "\f59d"; } + +.fa-rectangle-xmark::before { + content: "\f410"; } + +.fa-rectangle-times::before { + content: "\f410"; } + +.fa-times-rectangle::before { + content: "\f410"; } + +.fa-window-close::before { + content: "\f410"; } + +.fa-baht-sign::before { + content: "\e0ac"; } + +.fa-book-open::before { + content: "\f518"; } + +.fa-book-journal-whills::before { + content: "\f66a"; } + +.fa-journal-whills::before { + content: "\f66a"; } + +.fa-handcuffs::before { + content: "\e4f8"; } + +.fa-triangle-exclamation::before { + content: "\f071"; } + +.fa-exclamation-triangle::before { + content: "\f071"; } + +.fa-warning::before { + content: "\f071"; } + +.fa-database::before { + content: "\f1c0"; } + +.fa-share::before { + content: "\f064"; } + +.fa-mail-forward::before { + content: "\f064"; } + +.fa-bottle-droplet::before { + content: "\e4c4"; } + +.fa-mask-face::before { + content: "\e1d7"; } + +.fa-hill-rockslide::before { + content: "\e508"; } + +.fa-right-left::before { + content: "\f362"; } + +.fa-exchange-alt::before { + content: "\f362"; } + +.fa-paper-plane::before { + content: "\f1d8"; } + +.fa-road-circle-exclamation::before { + content: "\e565"; } + +.fa-dungeon::before { + content: "\f6d9"; } + +.fa-align-right::before { + content: "\f038"; } + +.fa-money-bill-1-wave::before { + content: "\f53b"; } + +.fa-money-bill-wave-alt::before { + content: "\f53b"; } + +.fa-life-ring::before { + content: "\f1cd"; } + +.fa-hands::before { + content: "\f2a7"; } + +.fa-sign-language::before { + content: "\f2a7"; } + +.fa-signing::before { + content: "\f2a7"; } + +.fa-calendar-day::before { + content: "\f783"; } + +.fa-water-ladder::before { + content: "\f5c5"; } + +.fa-ladder-water::before { + content: "\f5c5"; } + +.fa-swimming-pool::before { + content: "\f5c5"; } + +.fa-arrows-up-down::before { + content: "\f07d"; } + +.fa-arrows-v::before { + content: "\f07d"; } + +.fa-face-grimace::before { + content: "\f57f"; } + +.fa-grimace::before { + content: "\f57f"; } + +.fa-wheelchair-move::before { + content: "\e2ce"; } + +.fa-wheelchair-alt::before { + content: "\e2ce"; } + +.fa-turn-down::before { + content: "\f3be"; } + +.fa-level-down-alt::before { + content: "\f3be"; } + +.fa-person-walking-arrow-right::before { + content: "\e552"; } + +.fa-square-envelope::before { + content: "\f199"; } + +.fa-envelope-square::before { + content: "\f199"; } + +.fa-dice::before { + content: "\f522"; } + +.fa-bowling-ball::before { + content: "\f436"; } + +.fa-brain::before { + content: "\f5dc"; } + +.fa-bandage::before { + content: "\f462"; } + +.fa-band-aid::before { + content: "\f462"; } + +.fa-calendar-minus::before { + content: "\f272"; } + +.fa-circle-xmark::before { + content: "\f057"; } + +.fa-times-circle::before { + content: "\f057"; } + +.fa-xmark-circle::before { + content: "\f057"; } + +.fa-gifts::before { + content: "\f79c"; } + +.fa-hotel::before { + content: "\f594"; } + +.fa-earth-asia::before { + content: "\f57e"; } + +.fa-globe-asia::before { + content: "\f57e"; } + +.fa-id-card-clip::before { + content: "\f47f"; } + +.fa-id-card-alt::before { + content: "\f47f"; } + +.fa-magnifying-glass-plus::before { + content: "\f00e"; } + +.fa-search-plus::before { + content: "\f00e"; } + +.fa-thumbs-up::before { + content: "\f164"; } + +.fa-user-clock::before { + content: "\f4fd"; } + +.fa-hand-dots::before { + content: "\f461"; } + +.fa-allergies::before { + content: "\f461"; } + +.fa-file-invoice::before { + content: "\f570"; } + +.fa-window-minimize::before { + content: "\f2d1"; } + +.fa-mug-saucer::before { + content: "\f0f4"; } + +.fa-coffee::before { + content: "\f0f4"; } + +.fa-brush::before { + content: "\f55d"; } + +.fa-mask::before { + content: "\f6fa"; } + +.fa-magnifying-glass-minus::before { + content: "\f010"; } + +.fa-search-minus::before { + content: "\f010"; } + +.fa-ruler-vertical::before { + content: "\f548"; } + +.fa-user-large::before { + content: "\f406"; } + +.fa-user-alt::before { + content: "\f406"; } + +.fa-train-tram::before { + content: "\e5b4"; } + +.fa-user-nurse::before { + content: "\f82f"; } + +.fa-syringe::before { + content: "\f48e"; } + +.fa-cloud-sun::before { + content: "\f6c4"; } + +.fa-stopwatch-20::before { + content: "\e06f"; } + +.fa-square-full::before { + content: "\f45c"; } + +.fa-magnet::before { + content: "\f076"; } + +.fa-jar::before { + content: "\e516"; } + +.fa-note-sticky::before { + content: "\f249"; } + +.fa-sticky-note::before { + content: "\f249"; } + +.fa-bug-slash::before { + content: "\e490"; } + +.fa-arrow-up-from-water-pump::before { + content: "\e4b6"; } + +.fa-bone::before { + content: "\f5d7"; } + +.fa-table-cells-row-unlock::before { + content: "\e691"; } + +.fa-user-injured::before { + content: "\f728"; } + +.fa-face-sad-tear::before { + content: "\f5b4"; } + +.fa-sad-tear::before { + content: "\f5b4"; } + +.fa-plane::before { + content: "\f072"; } + +.fa-tent-arrows-down::before { + content: "\e581"; } + +.fa-exclamation::before { + content: "\21"; } + +.fa-arrows-spin::before { + content: "\e4bb"; } + +.fa-print::before { + content: "\f02f"; } + +.fa-turkish-lira-sign::before { + content: "\e2bb"; } + +.fa-try::before { + content: "\e2bb"; } + +.fa-turkish-lira::before { + content: "\e2bb"; } + +.fa-dollar-sign::before { + content: "\24"; } + +.fa-dollar::before { + content: "\24"; } + +.fa-usd::before { + content: "\24"; } + +.fa-x::before { + content: "\58"; } + +.fa-magnifying-glass-dollar::before { + content: "\f688"; } + +.fa-search-dollar::before { + content: "\f688"; } + +.fa-users-gear::before { + content: "\f509"; } + +.fa-users-cog::before { + content: "\f509"; } + +.fa-person-military-pointing::before { + content: "\e54a"; } + +.fa-building-columns::before { + content: "\f19c"; } + +.fa-bank::before { + content: "\f19c"; } + +.fa-institution::before { + content: "\f19c"; } + +.fa-museum::before { + content: "\f19c"; } + +.fa-university::before { + content: "\f19c"; } + +.fa-umbrella::before { + content: "\f0e9"; } + +.fa-trowel::before { + content: "\e589"; } + +.fa-d::before { + content: "\44"; } + +.fa-stapler::before { + content: "\e5af"; } + +.fa-masks-theater::before { + content: "\f630"; } + +.fa-theater-masks::before { + content: "\f630"; } + +.fa-kip-sign::before { + content: "\e1c4"; } + +.fa-hand-point-left::before { + content: "\f0a5"; } + +.fa-handshake-simple::before { + content: "\f4c6"; } + +.fa-handshake-alt::before { + content: "\f4c6"; } + +.fa-jet-fighter::before { + content: "\f0fb"; } + +.fa-fighter-jet::before { + content: "\f0fb"; } + +.fa-square-share-nodes::before { + content: "\f1e1"; } + +.fa-share-alt-square::before { + content: "\f1e1"; } + +.fa-barcode::before { + content: "\f02a"; } + +.fa-plus-minus::before { + content: "\e43c"; } + +.fa-video::before { + content: "\f03d"; } + +.fa-video-camera::before { + content: "\f03d"; } + +.fa-graduation-cap::before { + content: "\f19d"; } + +.fa-mortar-board::before { + content: "\f19d"; } + +.fa-hand-holding-medical::before { + content: "\e05c"; } + +.fa-person-circle-check::before { + content: "\e53e"; } + +.fa-turn-up::before { + content: "\f3bf"; } + +.fa-level-up-alt::before { + content: "\f3bf"; } + +.sr-only, +.fa-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } + +.sr-only-focusable:not(:focus), +.fa-sr-only-focusable:not(:focus) { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; } +:root, :host { + --fa-style-family-brands: 'Font Awesome 6 Brands'; + --fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; } + +@font-face { + font-family: 'Font Awesome 6 Brands'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +.fab, +.fa-brands { + font-weight: 400; } + +.fa-monero:before { + content: "\f3d0"; } + +.fa-hooli:before { + content: "\f427"; } + +.fa-yelp:before { + content: "\f1e9"; } + +.fa-cc-visa:before { + content: "\f1f0"; } + +.fa-lastfm:before { + content: "\f202"; } + +.fa-shopware:before { + content: "\f5b5"; } + +.fa-creative-commons-nc:before { + content: "\f4e8"; } + +.fa-aws:before { + content: "\f375"; } + +.fa-redhat:before { + content: "\f7bc"; } + +.fa-yoast:before { + content: "\f2b1"; } + +.fa-cloudflare:before { + content: "\e07d"; } + +.fa-ups:before { + content: "\f7e0"; } + +.fa-pixiv:before { + content: "\e640"; } + +.fa-wpexplorer:before { + content: "\f2de"; } + +.fa-dyalog:before { + content: "\f399"; } + +.fa-bity:before { + content: "\f37a"; } + +.fa-stackpath:before { + content: "\f842"; } + +.fa-buysellads:before { + content: "\f20d"; } + +.fa-first-order:before { + content: "\f2b0"; } + +.fa-modx:before { + content: "\f285"; } + +.fa-guilded:before { + content: "\e07e"; } + +.fa-vnv:before { + content: "\f40b"; } + +.fa-square-js:before { + content: "\f3b9"; } + +.fa-js-square:before { + content: "\f3b9"; } + +.fa-microsoft:before { + content: "\f3ca"; } + +.fa-qq:before { + content: "\f1d6"; } + +.fa-orcid:before { + content: "\f8d2"; } + +.fa-java:before { + content: "\f4e4"; } + +.fa-invision:before { + content: "\f7b0"; } + +.fa-creative-commons-pd-alt:before { + content: "\f4ed"; } + +.fa-centercode:before { + content: "\f380"; } + +.fa-glide-g:before { + content: "\f2a6"; } + +.fa-drupal:before { + content: "\f1a9"; } + +.fa-jxl:before { + content: "\e67b"; } + +.fa-dart-lang:before { + content: "\e693"; } + +.fa-hire-a-helper:before { + content: "\f3b0"; } + +.fa-creative-commons-by:before { + content: "\f4e7"; } + +.fa-unity:before { + content: "\e049"; } + +.fa-whmcs:before { + content: "\f40d"; } + +.fa-rocketchat:before { + content: "\f3e8"; } + +.fa-vk:before { + content: "\f189"; } + +.fa-untappd:before { + content: "\f405"; } + +.fa-mailchimp:before { + content: "\f59e"; } + +.fa-css3-alt:before { + content: "\f38b"; } + +.fa-square-reddit:before { + content: "\f1a2"; } + +.fa-reddit-square:before { + content: "\f1a2"; } + +.fa-vimeo-v:before { + content: "\f27d"; } + +.fa-contao:before { + content: "\f26d"; } + +.fa-square-font-awesome:before { + content: "\e5ad"; } + +.fa-deskpro:before { + content: "\f38f"; } + +.fa-brave:before { + content: "\e63c"; } + +.fa-sistrix:before { + content: "\f3ee"; } + +.fa-square-instagram:before { + content: "\e055"; } + +.fa-instagram-square:before { + content: "\e055"; } + +.fa-battle-net:before { + content: "\f835"; } + +.fa-the-red-yeti:before { + content: "\f69d"; } + +.fa-square-hacker-news:before { + content: "\f3af"; } + +.fa-hacker-news-square:before { + content: "\f3af"; } + +.fa-edge:before { + content: "\f282"; } + +.fa-threads:before { + content: "\e618"; } + +.fa-napster:before { + content: "\f3d2"; } + +.fa-square-snapchat:before { + content: "\f2ad"; } + +.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa-google-plus-g:before { + content: "\f0d5"; } + +.fa-artstation:before { + content: "\f77a"; } + +.fa-markdown:before { + content: "\f60f"; } + +.fa-sourcetree:before { + content: "\f7d3"; } + +.fa-google-plus:before { + content: "\f2b3"; } + +.fa-diaspora:before { + content: "\f791"; } + +.fa-foursquare:before { + content: "\f180"; } + +.fa-stack-overflow:before { + content: "\f16c"; } + +.fa-github-alt:before { + content: "\f113"; } + +.fa-phoenix-squadron:before { + content: "\f511"; } + +.fa-pagelines:before { + content: "\f18c"; } + +.fa-algolia:before { + content: "\f36c"; } + +.fa-red-river:before { + content: "\f3e3"; } + +.fa-creative-commons-sa:before { + content: "\f4ef"; } + +.fa-safari:before { + content: "\f267"; } + +.fa-google:before { + content: "\f1a0"; } + +.fa-square-font-awesome-stroke:before { + content: "\f35c"; } + +.fa-font-awesome-alt:before { + content: "\f35c"; } + +.fa-atlassian:before { + content: "\f77b"; } + +.fa-linkedin-in:before { + content: "\f0e1"; } + +.fa-digital-ocean:before { + content: "\f391"; } + +.fa-nimblr:before { + content: "\f5a8"; } + +.fa-chromecast:before { + content: "\f838"; } + +.fa-evernote:before { + content: "\f839"; } + +.fa-hacker-news:before { + content: "\f1d4"; } + +.fa-creative-commons-sampling:before { + content: "\f4f0"; } + +.fa-adversal:before { + content: "\f36a"; } + +.fa-creative-commons:before { + content: "\f25e"; } + +.fa-watchman-monitoring:before { + content: "\e087"; } + +.fa-fonticons:before { + content: "\f280"; } + +.fa-weixin:before { + content: "\f1d7"; } + +.fa-shirtsinbulk:before { + content: "\f214"; } + +.fa-codepen:before { + content: "\f1cb"; } + +.fa-git-alt:before { + content: "\f841"; } + +.fa-lyft:before { + content: "\f3c3"; } + +.fa-rev:before { + content: "\f5b2"; } + +.fa-windows:before { + content: "\f17a"; } + +.fa-wizards-of-the-coast:before { + content: "\f730"; } + +.fa-square-viadeo:before { + content: "\f2aa"; } + +.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa-meetup:before { + content: "\f2e0"; } + +.fa-centos:before { + content: "\f789"; } + +.fa-adn:before { + content: "\f170"; } + +.fa-cloudsmith:before { + content: "\f384"; } + +.fa-opensuse:before { + content: "\e62b"; } + +.fa-pied-piper-alt:before { + content: "\f1a8"; } + +.fa-square-dribbble:before { + content: "\f397"; } + +.fa-dribbble-square:before { + content: "\f397"; } + +.fa-codiepie:before { + content: "\f284"; } + +.fa-node:before { + content: "\f419"; } + +.fa-mix:before { + content: "\f3cb"; } + +.fa-steam:before { + content: "\f1b6"; } + +.fa-cc-apple-pay:before { + content: "\f416"; } + +.fa-scribd:before { + content: "\f28a"; } + +.fa-debian:before { + content: "\e60b"; } + +.fa-openid:before { + content: "\f19b"; } + +.fa-instalod:before { + content: "\e081"; } + +.fa-expeditedssl:before { + content: "\f23e"; } + +.fa-sellcast:before { + content: "\f2da"; } + +.fa-square-twitter:before { + content: "\f081"; } + +.fa-twitter-square:before { + content: "\f081"; } + +.fa-r-project:before { + content: "\f4f7"; } + +.fa-delicious:before { + content: "\f1a5"; } + +.fa-freebsd:before { + content: "\f3a4"; } + +.fa-vuejs:before { + content: "\f41f"; } + +.fa-accusoft:before { + content: "\f369"; } + +.fa-ioxhost:before { + content: "\f208"; } + +.fa-fonticons-fi:before { + content: "\f3a2"; } + +.fa-app-store:before { + content: "\f36f"; } + +.fa-cc-mastercard:before { + content: "\f1f1"; } + +.fa-itunes-note:before { + content: "\f3b5"; } + +.fa-golang:before { + content: "\e40f"; } + +.fa-kickstarter:before { + content: "\f3bb"; } + +.fa-square-kickstarter:before { + content: "\f3bb"; } + +.fa-grav:before { + content: "\f2d6"; } + +.fa-weibo:before { + content: "\f18a"; } + +.fa-uncharted:before { + content: "\e084"; } + +.fa-firstdraft:before { + content: "\f3a1"; } + +.fa-square-youtube:before { + content: "\f431"; } + +.fa-youtube-square:before { + content: "\f431"; } + +.fa-wikipedia-w:before { + content: "\f266"; } + +.fa-wpressr:before { + content: "\f3e4"; } + +.fa-rendact:before { + content: "\f3e4"; } + +.fa-angellist:before { + content: "\f209"; } + +.fa-galactic-republic:before { + content: "\f50c"; } + +.fa-nfc-directional:before { + content: "\e530"; } + +.fa-skype:before { + content: "\f17e"; } + +.fa-joget:before { + content: "\f3b7"; } + +.fa-fedora:before { + content: "\f798"; } + +.fa-stripe-s:before { + content: "\f42a"; } + +.fa-meta:before { + content: "\e49b"; } + +.fa-laravel:before { + content: "\f3bd"; } + +.fa-hotjar:before { + content: "\f3b1"; } + +.fa-bluetooth-b:before { + content: "\f294"; } + +.fa-square-letterboxd:before { + content: "\e62e"; } + +.fa-sticker-mule:before { + content: "\f3f7"; } + +.fa-creative-commons-zero:before { + content: "\f4f3"; } + +.fa-hips:before { + content: "\f452"; } + +.fa-behance:before { + content: "\f1b4"; } + +.fa-reddit:before { + content: "\f1a1"; } + +.fa-discord:before { + content: "\f392"; } + +.fa-chrome:before { + content: "\f268"; } + +.fa-app-store-ios:before { + content: "\f370"; } + +.fa-cc-discover:before { + content: "\f1f2"; } + +.fa-wpbeginner:before { + content: "\f297"; } + +.fa-confluence:before { + content: "\f78d"; } + +.fa-shoelace:before { + content: "\e60c"; } + +.fa-mdb:before { + content: "\f8ca"; } + +.fa-dochub:before { + content: "\f394"; } + +.fa-accessible-icon:before { + content: "\f368"; } + +.fa-ebay:before { + content: "\f4f4"; } + +.fa-amazon:before { + content: "\f270"; } + +.fa-unsplash:before { + content: "\e07c"; } + +.fa-yarn:before { + content: "\f7e3"; } + +.fa-square-steam:before { + content: "\f1b7"; } + +.fa-steam-square:before { + content: "\f1b7"; } + +.fa-500px:before { + content: "\f26e"; } + +.fa-square-vimeo:before { + content: "\f194"; } + +.fa-vimeo-square:before { + content: "\f194"; } + +.fa-asymmetrik:before { + content: "\f372"; } + +.fa-font-awesome:before { + content: "\f2b4"; } + +.fa-font-awesome-flag:before { + content: "\f2b4"; } + +.fa-font-awesome-logo-full:before { + content: "\f2b4"; } + +.fa-gratipay:before { + content: "\f184"; } + +.fa-apple:before { + content: "\f179"; } + +.fa-hive:before { + content: "\e07f"; } + +.fa-gitkraken:before { + content: "\f3a6"; } + +.fa-keybase:before { + content: "\f4f5"; } + +.fa-apple-pay:before { + content: "\f415"; } + +.fa-padlet:before { + content: "\e4a0"; } + +.fa-amazon-pay:before { + content: "\f42c"; } + +.fa-square-github:before { + content: "\f092"; } + +.fa-github-square:before { + content: "\f092"; } + +.fa-stumbleupon:before { + content: "\f1a4"; } + +.fa-fedex:before { + content: "\f797"; } + +.fa-phoenix-framework:before { + content: "\f3dc"; } + +.fa-shopify:before { + content: "\e057"; } + +.fa-neos:before { + content: "\f612"; } + +.fa-square-threads:before { + content: "\e619"; } + +.fa-hackerrank:before { + content: "\f5f7"; } + +.fa-researchgate:before { + content: "\f4f8"; } + +.fa-swift:before { + content: "\f8e1"; } + +.fa-angular:before { + content: "\f420"; } + +.fa-speakap:before { + content: "\f3f3"; } + +.fa-angrycreative:before { + content: "\f36e"; } + +.fa-y-combinator:before { + content: "\f23b"; } + +.fa-empire:before { + content: "\f1d1"; } + +.fa-envira:before { + content: "\f299"; } + +.fa-google-scholar:before { + content: "\e63b"; } + +.fa-square-gitlab:before { + content: "\e5ae"; } + +.fa-gitlab-square:before { + content: "\e5ae"; } + +.fa-studiovinari:before { + content: "\f3f8"; } + +.fa-pied-piper:before { + content: "\f2ae"; } + +.fa-wordpress:before { + content: "\f19a"; } + +.fa-product-hunt:before { + content: "\f288"; } + +.fa-firefox:before { + content: "\f269"; } + +.fa-linode:before { + content: "\f2b8"; } + +.fa-goodreads:before { + content: "\f3a8"; } + +.fa-square-odnoklassniki:before { + content: "\f264"; } + +.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa-jsfiddle:before { + content: "\f1cc"; } + +.fa-sith:before { + content: "\f512"; } + +.fa-themeisle:before { + content: "\f2b2"; } + +.fa-page4:before { + content: "\f3d7"; } + +.fa-hashnode:before { + content: "\e499"; } + +.fa-react:before { + content: "\f41b"; } + +.fa-cc-paypal:before { + content: "\f1f4"; } + +.fa-squarespace:before { + content: "\f5be"; } + +.fa-cc-stripe:before { + content: "\f1f5"; } + +.fa-creative-commons-share:before { + content: "\f4f2"; } + +.fa-bitcoin:before { + content: "\f379"; } + +.fa-keycdn:before { + content: "\f3ba"; } + +.fa-opera:before { + content: "\f26a"; } + +.fa-itch-io:before { + content: "\f83a"; } + +.fa-umbraco:before { + content: "\f8e8"; } + +.fa-galactic-senate:before { + content: "\f50d"; } + +.fa-ubuntu:before { + content: "\f7df"; } + +.fa-draft2digital:before { + content: "\f396"; } + +.fa-stripe:before { + content: "\f429"; } + +.fa-houzz:before { + content: "\f27c"; } + +.fa-gg:before { + content: "\f260"; } + +.fa-dhl:before { + content: "\f790"; } + +.fa-square-pinterest:before { + content: "\f0d3"; } + +.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa-xing:before { + content: "\f168"; } + +.fa-blackberry:before { + content: "\f37b"; } + +.fa-creative-commons-pd:before { + content: "\f4ec"; } + +.fa-playstation:before { + content: "\f3df"; } + +.fa-quinscape:before { + content: "\f459"; } + +.fa-less:before { + content: "\f41d"; } + +.fa-blogger-b:before { + content: "\f37d"; } + +.fa-opencart:before { + content: "\f23d"; } + +.fa-vine:before { + content: "\f1ca"; } + +.fa-signal-messenger:before { + content: "\e663"; } + +.fa-paypal:before { + content: "\f1ed"; } + +.fa-gitlab:before { + content: "\f296"; } + +.fa-typo3:before { + content: "\f42b"; } + +.fa-reddit-alien:before { + content: "\f281"; } + +.fa-yahoo:before { + content: "\f19e"; } + +.fa-dailymotion:before { + content: "\e052"; } + +.fa-affiliatetheme:before { + content: "\f36b"; } + +.fa-pied-piper-pp:before { + content: "\f1a7"; } + +.fa-bootstrap:before { + content: "\f836"; } + +.fa-odnoklassniki:before { + content: "\f263"; } + +.fa-nfc-symbol:before { + content: "\e531"; } + +.fa-mintbit:before { + content: "\e62f"; } + +.fa-ethereum:before { + content: "\f42e"; } + +.fa-speaker-deck:before { + content: "\f83c"; } + +.fa-creative-commons-nc-eu:before { + content: "\f4e9"; } + +.fa-patreon:before { + content: "\f3d9"; } + +.fa-avianex:before { + content: "\f374"; } + +.fa-ello:before { + content: "\f5f1"; } + +.fa-gofore:before { + content: "\f3a7"; } + +.fa-bimobject:before { + content: "\f378"; } + +.fa-brave-reverse:before { + content: "\e63d"; } + +.fa-facebook-f:before { + content: "\f39e"; } + +.fa-square-google-plus:before { + content: "\f0d4"; } + +.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa-web-awesome:before { + content: "\e682"; } + +.fa-mandalorian:before { + content: "\f50f"; } + +.fa-first-order-alt:before { + content: "\f50a"; } + +.fa-osi:before { + content: "\f41a"; } + +.fa-google-wallet:before { + content: "\f1ee"; } + +.fa-d-and-d-beyond:before { + content: "\f6ca"; } + +.fa-periscope:before { + content: "\f3da"; } + +.fa-fulcrum:before { + content: "\f50b"; } + +.fa-cloudscale:before { + content: "\f383"; } + +.fa-forumbee:before { + content: "\f211"; } + +.fa-mizuni:before { + content: "\f3cc"; } + +.fa-schlix:before { + content: "\f3ea"; } + +.fa-square-xing:before { + content: "\f169"; } + +.fa-xing-square:before { + content: "\f169"; } + +.fa-bandcamp:before { + content: "\f2d5"; } + +.fa-wpforms:before { + content: "\f298"; } + +.fa-cloudversify:before { + content: "\f385"; } + +.fa-usps:before { + content: "\f7e1"; } + +.fa-megaport:before { + content: "\f5a3"; } + +.fa-magento:before { + content: "\f3c4"; } + +.fa-spotify:before { + content: "\f1bc"; } + +.fa-optin-monster:before { + content: "\f23c"; } + +.fa-fly:before { + content: "\f417"; } + +.fa-aviato:before { + content: "\f421"; } + +.fa-itunes:before { + content: "\f3b4"; } + +.fa-cuttlefish:before { + content: "\f38c"; } + +.fa-blogger:before { + content: "\f37c"; } + +.fa-flickr:before { + content: "\f16e"; } + +.fa-viber:before { + content: "\f409"; } + +.fa-soundcloud:before { + content: "\f1be"; } + +.fa-digg:before { + content: "\f1a6"; } + +.fa-tencent-weibo:before { + content: "\f1d5"; } + +.fa-letterboxd:before { + content: "\e62d"; } + +.fa-symfony:before { + content: "\f83d"; } + +.fa-maxcdn:before { + content: "\f136"; } + +.fa-etsy:before { + content: "\f2d7"; } + +.fa-facebook-messenger:before { + content: "\f39f"; } + +.fa-audible:before { + content: "\f373"; } + +.fa-think-peaks:before { + content: "\f731"; } + +.fa-bilibili:before { + content: "\e3d9"; } + +.fa-erlang:before { + content: "\f39d"; } + +.fa-x-twitter:before { + content: "\e61b"; } + +.fa-cotton-bureau:before { + content: "\f89e"; } + +.fa-dashcube:before { + content: "\f210"; } + +.fa-42-group:before { + content: "\e080"; } + +.fa-innosoft:before { + content: "\e080"; } + +.fa-stack-exchange:before { + content: "\f18d"; } + +.fa-elementor:before { + content: "\f430"; } + +.fa-square-pied-piper:before { + content: "\e01e"; } + +.fa-pied-piper-square:before { + content: "\e01e"; } + +.fa-creative-commons-nd:before { + content: "\f4eb"; } + +.fa-palfed:before { + content: "\f3d8"; } + +.fa-superpowers:before { + content: "\f2dd"; } + +.fa-resolving:before { + content: "\f3e7"; } + +.fa-xbox:before { + content: "\f412"; } + +.fa-square-web-awesome-stroke:before { + content: "\e684"; } + +.fa-searchengin:before { + content: "\f3eb"; } + +.fa-tiktok:before { + content: "\e07b"; } + +.fa-square-facebook:before { + content: "\f082"; } + +.fa-facebook-square:before { + content: "\f082"; } + +.fa-renren:before { + content: "\f18b"; } + +.fa-linux:before { + content: "\f17c"; } + +.fa-glide:before { + content: "\f2a5"; } + +.fa-linkedin:before { + content: "\f08c"; } + +.fa-hubspot:before { + content: "\f3b2"; } + +.fa-deploydog:before { + content: "\f38e"; } + +.fa-twitch:before { + content: "\f1e8"; } + +.fa-flutter:before { + content: "\e694"; } + +.fa-ravelry:before { + content: "\f2d9"; } + +.fa-mixer:before { + content: "\e056"; } + +.fa-square-lastfm:before { + content: "\f203"; } + +.fa-lastfm-square:before { + content: "\f203"; } + +.fa-vimeo:before { + content: "\f40a"; } + +.fa-mendeley:before { + content: "\f7b3"; } + +.fa-uniregistry:before { + content: "\f404"; } + +.fa-figma:before { + content: "\f799"; } + +.fa-creative-commons-remix:before { + content: "\f4ee"; } + +.fa-cc-amazon-pay:before { + content: "\f42d"; } + +.fa-dropbox:before { + content: "\f16b"; } + +.fa-instagram:before { + content: "\f16d"; } + +.fa-cmplid:before { + content: "\e360"; } + +.fa-upwork:before { + content: "\e641"; } + +.fa-facebook:before { + content: "\f09a"; } + +.fa-gripfire:before { + content: "\f3ac"; } + +.fa-jedi-order:before { + content: "\f50e"; } + +.fa-uikit:before { + content: "\f403"; } + +.fa-fort-awesome-alt:before { + content: "\f3a3"; } + +.fa-phabricator:before { + content: "\f3db"; } + +.fa-ussunnah:before { + content: "\f407"; } + +.fa-earlybirds:before { + content: "\f39a"; } + +.fa-trade-federation:before { + content: "\f513"; } + +.fa-autoprefixer:before { + content: "\f41c"; } + +.fa-whatsapp:before { + content: "\f232"; } + +.fa-square-upwork:before { + content: "\e67c"; } + +.fa-slideshare:before { + content: "\f1e7"; } + +.fa-google-play:before { + content: "\f3ab"; } + +.fa-viadeo:before { + content: "\f2a9"; } + +.fa-line:before { + content: "\f3c0"; } + +.fa-google-drive:before { + content: "\f3aa"; } + +.fa-servicestack:before { + content: "\f3ec"; } + +.fa-simplybuilt:before { + content: "\f215"; } + +.fa-bitbucket:before { + content: "\f171"; } + +.fa-imdb:before { + content: "\f2d8"; } + +.fa-deezer:before { + content: "\e077"; } + +.fa-raspberry-pi:before { + content: "\f7bb"; } + +.fa-jira:before { + content: "\f7b1"; } + +.fa-docker:before { + content: "\f395"; } + +.fa-screenpal:before { + content: "\e570"; } + +.fa-bluetooth:before { + content: "\f293"; } + +.fa-gitter:before { + content: "\f426"; } + +.fa-d-and-d:before { + content: "\f38d"; } + +.fa-microblog:before { + content: "\e01a"; } + +.fa-cc-diners-club:before { + content: "\f24c"; } + +.fa-gg-circle:before { + content: "\f261"; } + +.fa-pied-piper-hat:before { + content: "\f4e5"; } + +.fa-kickstarter-k:before { + content: "\f3bc"; } + +.fa-yandex:before { + content: "\f413"; } + +.fa-readme:before { + content: "\f4d5"; } + +.fa-html5:before { + content: "\f13b"; } + +.fa-sellsy:before { + content: "\f213"; } + +.fa-square-web-awesome:before { + content: "\e683"; } + +.fa-sass:before { + content: "\f41e"; } + +.fa-wirsindhandwerk:before { + content: "\e2d0"; } + +.fa-wsh:before { + content: "\e2d0"; } + +.fa-buromobelexperte:before { + content: "\f37f"; } + +.fa-salesforce:before { + content: "\f83b"; } + +.fa-octopus-deploy:before { + content: "\e082"; } + +.fa-medapps:before { + content: "\f3c6"; } + +.fa-ns8:before { + content: "\f3d5"; } + +.fa-pinterest-p:before { + content: "\f231"; } + +.fa-apper:before { + content: "\f371"; } + +.fa-fort-awesome:before { + content: "\f286"; } + +.fa-waze:before { + content: "\f83f"; } + +.fa-bluesky:before { + content: "\e671"; } + +.fa-cc-jcb:before { + content: "\f24b"; } + +.fa-snapchat:before { + content: "\f2ab"; } + +.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa-fantasy-flight-games:before { + content: "\f6dc"; } + +.fa-rust:before { + content: "\e07a"; } + +.fa-wix:before { + content: "\f5cf"; } + +.fa-square-behance:before { + content: "\f1b5"; } + +.fa-behance-square:before { + content: "\f1b5"; } + +.fa-supple:before { + content: "\f3f9"; } + +.fa-webflow:before { + content: "\e65c"; } + +.fa-rebel:before { + content: "\f1d0"; } + +.fa-css3:before { + content: "\f13c"; } + +.fa-staylinked:before { + content: "\f3f5"; } + +.fa-kaggle:before { + content: "\f5fa"; } + +.fa-space-awesome:before { + content: "\e5ac"; } + +.fa-deviantart:before { + content: "\f1bd"; } + +.fa-cpanel:before { + content: "\f388"; } + +.fa-goodreads-g:before { + content: "\f3a9"; } + +.fa-square-git:before { + content: "\f1d2"; } + +.fa-git-square:before { + content: "\f1d2"; } + +.fa-square-tumblr:before { + content: "\f174"; } + +.fa-tumblr-square:before { + content: "\f174"; } + +.fa-trello:before { + content: "\f181"; } + +.fa-creative-commons-nc-jp:before { + content: "\f4ea"; } + +.fa-get-pocket:before { + content: "\f265"; } + +.fa-perbyte:before { + content: "\e083"; } + +.fa-grunt:before { + content: "\f3ad"; } + +.fa-weebly:before { + content: "\f5cc"; } + +.fa-connectdevelop:before { + content: "\f20e"; } + +.fa-leanpub:before { + content: "\f212"; } + +.fa-black-tie:before { + content: "\f27e"; } + +.fa-themeco:before { + content: "\f5c6"; } + +.fa-python:before { + content: "\f3e2"; } + +.fa-android:before { + content: "\f17b"; } + +.fa-bots:before { + content: "\e340"; } + +.fa-free-code-camp:before { + content: "\f2c5"; } + +.fa-hornbill:before { + content: "\f592"; } + +.fa-js:before { + content: "\f3b8"; } + +.fa-ideal:before { + content: "\e013"; } + +.fa-git:before { + content: "\f1d3"; } + +.fa-dev:before { + content: "\f6cc"; } + +.fa-sketch:before { + content: "\f7c6"; } + +.fa-yandex-international:before { + content: "\f414"; } + +.fa-cc-amex:before { + content: "\f1f3"; } + +.fa-uber:before { + content: "\f402"; } + +.fa-github:before { + content: "\f09b"; } + +.fa-php:before { + content: "\f457"; } + +.fa-alipay:before { + content: "\f642"; } + +.fa-youtube:before { + content: "\f167"; } + +.fa-skyatlas:before { + content: "\f216"; } + +.fa-firefox-browser:before { + content: "\e007"; } + +.fa-replyd:before { + content: "\f3e6"; } + +.fa-suse:before { + content: "\f7d6"; } + +.fa-jenkins:before { + content: "\f3b6"; } + +.fa-twitter:before { + content: "\f099"; } + +.fa-rockrms:before { + content: "\f3e9"; } + +.fa-pinterest:before { + content: "\f0d2"; } + +.fa-buffer:before { + content: "\f837"; } + +.fa-npm:before { + content: "\f3d4"; } + +.fa-yammer:before { + content: "\f840"; } + +.fa-btc:before { + content: "\f15a"; } + +.fa-dribbble:before { + content: "\f17d"; } + +.fa-stumbleupon-circle:before { + content: "\f1a3"; } + +.fa-internet-explorer:before { + content: "\f26b"; } + +.fa-stubber:before { + content: "\e5c7"; } + +.fa-telegram:before { + content: "\f2c6"; } + +.fa-telegram-plane:before { + content: "\f2c6"; } + +.fa-old-republic:before { + content: "\f510"; } + +.fa-odysee:before { + content: "\e5c6"; } + +.fa-square-whatsapp:before { + content: "\f40c"; } + +.fa-whatsapp-square:before { + content: "\f40c"; } + +.fa-node-js:before { + content: "\f3d3"; } + +.fa-edge-legacy:before { + content: "\e078"; } + +.fa-slack:before { + content: "\f198"; } + +.fa-slack-hash:before { + content: "\f198"; } + +.fa-medrt:before { + content: "\f3c8"; } + +.fa-usb:before { + content: "\f287"; } + +.fa-tumblr:before { + content: "\f173"; } + +.fa-vaadin:before { + content: "\f408"; } + +.fa-quora:before { + content: "\f2c4"; } + +.fa-square-x-twitter:before { + content: "\e61a"; } + +.fa-reacteurope:before { + content: "\f75d"; } + +.fa-medium:before { + content: "\f23a"; } + +.fa-medium-m:before { + content: "\f23a"; } + +.fa-amilia:before { + content: "\f36d"; } + +.fa-mixcloud:before { + content: "\f289"; } + +.fa-flipboard:before { + content: "\f44d"; } + +.fa-viacoin:before { + content: "\f237"; } + +.fa-critical-role:before { + content: "\f6c9"; } + +.fa-sitrox:before { + content: "\e44a"; } + +.fa-discourse:before { + content: "\f393"; } + +.fa-joomla:before { + content: "\f1aa"; } + +.fa-mastodon:before { + content: "\f4f6"; } + +.fa-airbnb:before { + content: "\f834"; } + +.fa-wolf-pack-battalion:before { + content: "\f514"; } + +.fa-buy-n-large:before { + content: "\f8a6"; } + +.fa-gulp:before { + content: "\f3ae"; } + +.fa-creative-commons-sampling-plus:before { + content: "\f4f1"; } + +.fa-strava:before { + content: "\f428"; } + +.fa-ember:before { + content: "\f423"; } + +.fa-canadian-maple-leaf:before { + content: "\f785"; } + +.fa-teamspeak:before { + content: "\f4f9"; } + +.fa-pushed:before { + content: "\f3e1"; } + +.fa-wordpress-simple:before { + content: "\f411"; } + +.fa-nutritionix:before { + content: "\f3d6"; } + +.fa-wodu:before { + content: "\e088"; } + +.fa-google-pay:before { + content: "\e079"; } + +.fa-intercom:before { + content: "\f7af"; } + +.fa-zhihu:before { + content: "\f63f"; } + +.fa-korvue:before { + content: "\f42f"; } + +.fa-pix:before { + content: "\e43a"; } + +.fa-steam-symbol:before { + content: "\f3f6"; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-regular: normal 400 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 400; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } + +.far, +.fa-regular { + font-weight: 400; } +:root, :host { + --fa-style-family-classic: 'Font Awesome 6 Free'; + --fa-font-solid: normal 900 1em/1 'Font Awesome 6 Free'; } + +@font-face { + font-family: 'Font Awesome 6 Free'; + font-style: normal; + font-weight: 900; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +.fas, +.fa-solid { + font-weight: 900; } +@font-face { + font-family: 'Font Awesome 5 Brands'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 900; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'Font Awesome 5 Free'; + font-display: block; + font-weight: 400; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); } +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); + unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; } + +@font-face { + font-family: 'FontAwesome'; + font-display: block; + src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype"); + unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; } diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css new file mode 100644 index 00000000..239be56f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css @@ -0,0 +1,2194 @@ +/*! + * Font Awesome Free 6.6.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 2024 Fonticons, Inc. + */ +.fa.fa-glass:before { + content: "\f000"; } + +.fa.fa-envelope-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-o:before { + content: "\f0e0"; } + +.fa.fa-star-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-o:before { + content: "\f005"; } + +.fa.fa-remove:before { + content: "\f00d"; } + +.fa.fa-close:before { + content: "\f00d"; } + +.fa.fa-gear:before { + content: "\f013"; } + +.fa.fa-trash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-trash-o:before { + content: "\f2ed"; } + +.fa.fa-home:before { + content: "\f015"; } + +.fa.fa-file-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-o:before { + content: "\f15b"; } + +.fa.fa-clock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-clock-o:before { + content: "\f017"; } + +.fa.fa-arrow-circle-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-down:before { + content: "\f358"; } + +.fa.fa-arrow-circle-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-up:before { + content: "\f35b"; } + +.fa.fa-play-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-play-circle-o:before { + content: "\f144"; } + +.fa.fa-repeat:before { + content: "\f01e"; } + +.fa.fa-rotate-right:before { + content: "\f01e"; } + +.fa.fa-refresh:before { + content: "\f021"; } + +.fa.fa-list-alt { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-list-alt:before { + content: "\f022"; } + +.fa.fa-dedent:before { + content: "\f03b"; } + +.fa.fa-video-camera:before { + content: "\f03d"; } + +.fa.fa-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-picture-o:before { + content: "\f03e"; } + +.fa.fa-photo { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-photo:before { + content: "\f03e"; } + +.fa.fa-image { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-image:before { + content: "\f03e"; } + +.fa.fa-map-marker:before { + content: "\f3c5"; } + +.fa.fa-pencil-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pencil-square-o:before { + content: "\f044"; } + +.fa.fa-edit { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-edit:before { + content: "\f044"; } + +.fa.fa-share-square-o:before { + content: "\f14d"; } + +.fa.fa-check-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-square-o:before { + content: "\f14a"; } + +.fa.fa-arrows:before { + content: "\f0b2"; } + +.fa.fa-times-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-circle-o:before { + content: "\f057"; } + +.fa.fa-check-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-check-circle-o:before { + content: "\f058"; } + +.fa.fa-mail-forward:before { + content: "\f064"; } + +.fa.fa-expand:before { + content: "\f424"; } + +.fa.fa-compress:before { + content: "\f422"; } + +.fa.fa-eye { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eye-slash { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-warning:before { + content: "\f071"; } + +.fa.fa-calendar:before { + content: "\f073"; } + +.fa.fa-arrows-v:before { + content: "\f338"; } + +.fa.fa-arrows-h:before { + content: "\f337"; } + +.fa.fa-bar-chart:before { + content: "\e0e3"; } + +.fa.fa-bar-chart-o:before { + content: "\e0e3"; } + +.fa.fa-twitter-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitter-square:before { + content: "\f081"; } + +.fa.fa-facebook-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-square:before { + content: "\f082"; } + +.fa.fa-gears:before { + content: "\f085"; } + +.fa.fa-thumbs-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-up:before { + content: "\f164"; } + +.fa.fa-thumbs-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-thumbs-o-down:before { + content: "\f165"; } + +.fa.fa-heart-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-heart-o:before { + content: "\f004"; } + +.fa.fa-sign-out:before { + content: "\f2f5"; } + +.fa.fa-linkedin-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin-square:before { + content: "\f08c"; } + +.fa.fa-thumb-tack:before { + content: "\f08d"; } + +.fa.fa-external-link:before { + content: "\f35d"; } + +.fa.fa-sign-in:before { + content: "\f2f6"; } + +.fa.fa-github-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-github-square:before { + content: "\f092"; } + +.fa.fa-lemon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lemon-o:before { + content: "\f094"; } + +.fa.fa-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-square-o:before { + content: "\f0c8"; } + +.fa.fa-bookmark-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bookmark-o:before { + content: "\f02e"; } + +.fa.fa-twitter { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook:before { + content: "\f39e"; } + +.fa.fa-facebook-f { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-f:before { + content: "\f39e"; } + +.fa.fa-github { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-feed:before { + content: "\f09e"; } + +.fa.fa-hdd-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hdd-o:before { + content: "\f0a0"; } + +.fa.fa-hand-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-right:before { + content: "\f0a4"; } + +.fa.fa-hand-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-left:before { + content: "\f0a5"; } + +.fa.fa-hand-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-up:before { + content: "\f0a6"; } + +.fa.fa-hand-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-o-down:before { + content: "\f0a7"; } + +.fa.fa-globe:before { + content: "\f57d"; } + +.fa.fa-tasks:before { + content: "\f828"; } + +.fa.fa-arrows-alt:before { + content: "\f31e"; } + +.fa.fa-group:before { + content: "\f0c0"; } + +.fa.fa-chain:before { + content: "\f0c1"; } + +.fa.fa-cut:before { + content: "\f0c4"; } + +.fa.fa-files-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-files-o:before { + content: "\f0c5"; } + +.fa.fa-floppy-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-floppy-o:before { + content: "\f0c7"; } + +.fa.fa-save { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-save:before { + content: "\f0c7"; } + +.fa.fa-navicon:before { + content: "\f0c9"; } + +.fa.fa-reorder:before { + content: "\f0c9"; } + +.fa.fa-magic:before { + content: "\e2ca"; } + +.fa.fa-pinterest { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pinterest-square:before { + content: "\f0d3"; } + +.fa.fa-google-plus-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-square:before { + content: "\f0d4"; } + +.fa.fa-google-plus { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus:before { + content: "\f0d5"; } + +.fa.fa-money:before { + content: "\f3d1"; } + +.fa.fa-unsorted:before { + content: "\f0dc"; } + +.fa.fa-sort-desc:before { + content: "\f0dd"; } + +.fa.fa-sort-asc:before { + content: "\f0de"; } + +.fa.fa-linkedin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linkedin:before { + content: "\f0e1"; } + +.fa.fa-rotate-left:before { + content: "\f0e2"; } + +.fa.fa-legal:before { + content: "\f0e3"; } + +.fa.fa-tachometer:before { + content: "\f625"; } + +.fa.fa-dashboard:before { + content: "\f625"; } + +.fa.fa-comment-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comment-o:before { + content: "\f075"; } + +.fa.fa-comments-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-comments-o:before { + content: "\f086"; } + +.fa.fa-flash:before { + content: "\f0e7"; } + +.fa.fa-clipboard:before { + content: "\f0ea"; } + +.fa.fa-lightbulb-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-lightbulb-o:before { + content: "\f0eb"; } + +.fa.fa-exchange:before { + content: "\f362"; } + +.fa.fa-cloud-download:before { + content: "\f0ed"; } + +.fa.fa-cloud-upload:before { + content: "\f0ee"; } + +.fa.fa-bell-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-o:before { + content: "\f0f3"; } + +.fa.fa-cutlery:before { + content: "\f2e7"; } + +.fa.fa-file-text-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-text-o:before { + content: "\f15c"; } + +.fa.fa-building-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-building-o:before { + content: "\f1ad"; } + +.fa.fa-hospital-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hospital-o:before { + content: "\f0f8"; } + +.fa.fa-tablet:before { + content: "\f3fa"; } + +.fa.fa-mobile:before { + content: "\f3cd"; } + +.fa.fa-mobile-phone:before { + content: "\f3cd"; } + +.fa.fa-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-o:before { + content: "\f111"; } + +.fa.fa-mail-reply:before { + content: "\f3e5"; } + +.fa.fa-github-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-folder-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-o:before { + content: "\f07b"; } + +.fa.fa-folder-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-folder-open-o:before { + content: "\f07c"; } + +.fa.fa-smile-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-smile-o:before { + content: "\f118"; } + +.fa.fa-frown-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-frown-o:before { + content: "\f119"; } + +.fa.fa-meh-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-meh-o:before { + content: "\f11a"; } + +.fa.fa-keyboard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-keyboard-o:before { + content: "\f11c"; } + +.fa.fa-flag-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-flag-o:before { + content: "\f024"; } + +.fa.fa-mail-reply-all:before { + content: "\f122"; } + +.fa.fa-star-half-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-o:before { + content: "\f5c0"; } + +.fa.fa-star-half-empty { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-empty:before { + content: "\f5c0"; } + +.fa.fa-star-half-full { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-star-half-full:before { + content: "\f5c0"; } + +.fa.fa-code-fork:before { + content: "\f126"; } + +.fa.fa-chain-broken:before { + content: "\f127"; } + +.fa.fa-unlink:before { + content: "\f127"; } + +.fa.fa-calendar-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-o:before { + content: "\f133"; } + +.fa.fa-maxcdn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-html5 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-css3 { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-unlock-alt:before { + content: "\f09c"; } + +.fa.fa-minus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-minus-square-o:before { + content: "\f146"; } + +.fa.fa-level-up:before { + content: "\f3bf"; } + +.fa.fa-level-down:before { + content: "\f3be"; } + +.fa.fa-pencil-square:before { + content: "\f14b"; } + +.fa.fa-external-link-square:before { + content: "\f360"; } + +.fa.fa-compass { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-down:before { + content: "\f150"; } + +.fa.fa-toggle-down { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-down:before { + content: "\f150"; } + +.fa.fa-caret-square-o-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-up:before { + content: "\f151"; } + +.fa.fa-toggle-up { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-up:before { + content: "\f151"; } + +.fa.fa-caret-square-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-right:before { + content: "\f152"; } + +.fa.fa-toggle-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-right:before { + content: "\f152"; } + +.fa.fa-eur:before { + content: "\f153"; } + +.fa.fa-euro:before { + content: "\f153"; } + +.fa.fa-gbp:before { + content: "\f154"; } + +.fa.fa-usd:before { + content: "\24"; } + +.fa.fa-dollar:before { + content: "\24"; } + +.fa.fa-inr:before { + content: "\e1bc"; } + +.fa.fa-rupee:before { + content: "\e1bc"; } + +.fa.fa-jpy:before { + content: "\f157"; } + +.fa.fa-cny:before { + content: "\f157"; } + +.fa.fa-rmb:before { + content: "\f157"; } + +.fa.fa-yen:before { + content: "\f157"; } + +.fa.fa-rub:before { + content: "\f158"; } + +.fa.fa-ruble:before { + content: "\f158"; } + +.fa.fa-rouble:before { + content: "\f158"; } + +.fa.fa-krw:before { + content: "\f159"; } + +.fa.fa-won:before { + content: "\f159"; } + +.fa.fa-btc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitcoin:before { + content: "\f15a"; } + +.fa.fa-file-text:before { + content: "\f15c"; } + +.fa.fa-sort-alpha-asc:before { + content: "\f15d"; } + +.fa.fa-sort-alpha-desc:before { + content: "\f881"; } + +.fa.fa-sort-amount-asc:before { + content: "\f884"; } + +.fa.fa-sort-amount-desc:before { + content: "\f160"; } + +.fa.fa-sort-numeric-asc:before { + content: "\f162"; } + +.fa.fa-sort-numeric-desc:before { + content: "\f886"; } + +.fa.fa-youtube-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-square:before { + content: "\f431"; } + +.fa.fa-youtube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-xing-square:before { + content: "\f169"; } + +.fa.fa-youtube-play { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-youtube-play:before { + content: "\f167"; } + +.fa.fa-dropbox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-overflow { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-instagram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-flickr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-adn { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bitbucket-square:before { + content: "\f171"; } + +.fa.fa-tumblr { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-tumblr-square:before { + content: "\f174"; } + +.fa.fa-long-arrow-down:before { + content: "\f309"; } + +.fa.fa-long-arrow-up:before { + content: "\f30c"; } + +.fa.fa-long-arrow-left:before { + content: "\f30a"; } + +.fa.fa-long-arrow-right:before { + content: "\f30b"; } + +.fa.fa-apple { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-windows { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-android { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-linux { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dribbble { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skype { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-foursquare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-trello { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gratipay { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gittip:before { + content: "\f184"; } + +.fa.fa-sun-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sun-o:before { + content: "\f185"; } + +.fa.fa-moon-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-moon-o:before { + content: "\f186"; } + +.fa.fa-vk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-renren { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pagelines { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stack-exchange { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-right:before { + content: "\f35a"; } + +.fa.fa-arrow-circle-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-arrow-circle-o-left:before { + content: "\f359"; } + +.fa.fa-caret-square-o-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-caret-square-o-left:before { + content: "\f191"; } + +.fa.fa-toggle-left { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-toggle-left:before { + content: "\f191"; } + +.fa.fa-dot-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-dot-circle-o:before { + content: "\f192"; } + +.fa.fa-vimeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo-square:before { + content: "\f194"; } + +.fa.fa-try:before { + content: "\e2bb"; } + +.fa.fa-turkish-lira:before { + content: "\e2bb"; } + +.fa.fa-plus-square-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-plus-square-o:before { + content: "\f0fe"; } + +.fa.fa-slack { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wordpress { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-openid { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-institution:before { + content: "\f19c"; } + +.fa.fa-bank:before { + content: "\f19c"; } + +.fa.fa-mortar-board:before { + content: "\f19d"; } + +.fa.fa-yahoo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-square:before { + content: "\f1a2"; } + +.fa.fa-stumbleupon-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-stumbleupon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-delicious { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-digg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-pp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pied-piper-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-drupal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-joomla { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-behance-square:before { + content: "\f1b5"; } + +.fa.fa-steam { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-steam-square:before { + content: "\f1b7"; } + +.fa.fa-automobile:before { + content: "\f1b9"; } + +.fa.fa-cab:before { + content: "\f1ba"; } + +.fa.fa-spotify { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-deviantart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-soundcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-file-pdf-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-pdf-o:before { + content: "\f1c1"; } + +.fa.fa-file-word-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-word-o:before { + content: "\f1c2"; } + +.fa.fa-file-excel-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-excel-o:before { + content: "\f1c3"; } + +.fa.fa-file-powerpoint-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-powerpoint-o:before { + content: "\f1c4"; } + +.fa.fa-file-image-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-image-o:before { + content: "\f1c5"; } + +.fa.fa-file-photo-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-photo-o:before { + content: "\f1c5"; } + +.fa.fa-file-picture-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-picture-o:before { + content: "\f1c5"; } + +.fa.fa-file-archive-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-archive-o:before { + content: "\f1c6"; } + +.fa.fa-file-zip-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-zip-o:before { + content: "\f1c6"; } + +.fa.fa-file-audio-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-audio-o:before { + content: "\f1c7"; } + +.fa.fa-file-sound-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-sound-o:before { + content: "\f1c7"; } + +.fa.fa-file-video-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-video-o:before { + content: "\f1c8"; } + +.fa.fa-file-movie-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-movie-o:before { + content: "\f1c8"; } + +.fa.fa-file-code-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-file-code-o:before { + content: "\f1c9"; } + +.fa.fa-vine { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-codepen { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-jsfiddle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-life-bouy:before { + content: "\f1cd"; } + +.fa.fa-life-buoy:before { + content: "\f1cd"; } + +.fa.fa-life-saver:before { + content: "\f1cd"; } + +.fa.fa-support:before { + content: "\f1cd"; } + +.fa.fa-circle-o-notch:before { + content: "\f1ce"; } + +.fa.fa-rebel { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ra:before { + content: "\f1d0"; } + +.fa.fa-resistance { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-resistance:before { + content: "\f1d0"; } + +.fa.fa-empire { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ge:before { + content: "\f1d1"; } + +.fa.fa-git-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-git-square:before { + content: "\f1d2"; } + +.fa.fa-git { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hacker-news { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator-square:before { + content: "\f1d4"; } + +.fa.fa-yc-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc-square:before { + content: "\f1d4"; } + +.fa.fa-tencent-weibo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-qq { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-weixin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wechat:before { + content: "\f1d7"; } + +.fa.fa-send:before { + content: "\f1d8"; } + +.fa.fa-paper-plane-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-paper-plane-o:before { + content: "\f1d8"; } + +.fa.fa-send-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-send-o:before { + content: "\f1d8"; } + +.fa.fa-circle-thin { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-circle-thin:before { + content: "\f111"; } + +.fa.fa-header:before { + content: "\f1dc"; } + +.fa.fa-futbol-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-futbol-o:before { + content: "\f1e3"; } + +.fa.fa-soccer-ball-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-soccer-ball-o:before { + content: "\f1e3"; } + +.fa.fa-slideshare { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-twitch { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yelp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-newspaper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-newspaper-o:before { + content: "\f1ea"; } + +.fa.fa-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-wallet { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-visa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-mastercard { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-discover { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-amex { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-paypal { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-stripe { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bell-slash-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-bell-slash-o:before { + content: "\f1f6"; } + +.fa.fa-trash:before { + content: "\f2ed"; } + +.fa.fa-copyright { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-eyedropper:before { + content: "\f1fb"; } + +.fa.fa-area-chart:before { + content: "\f1fe"; } + +.fa.fa-pie-chart:before { + content: "\f200"; } + +.fa.fa-line-chart:before { + content: "\f201"; } + +.fa.fa-lastfm { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-lastfm-square:before { + content: "\f203"; } + +.fa.fa-ioxhost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-angellist { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-cc:before { + content: "\f20a"; } + +.fa.fa-ils:before { + content: "\f20b"; } + +.fa.fa-shekel:before { + content: "\f20b"; } + +.fa.fa-sheqel:before { + content: "\f20b"; } + +.fa.fa-buysellads { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-connectdevelop { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-dashcube { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-forumbee { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-leanpub { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-sellsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-shirtsinbulk { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-simplybuilt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-skyatlas { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-diamond { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-diamond:before { + content: "\f3a5"; } + +.fa.fa-transgender:before { + content: "\f224"; } + +.fa.fa-intersex:before { + content: "\f224"; } + +.fa.fa-transgender-alt:before { + content: "\f225"; } + +.fa.fa-facebook-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-facebook-official:before { + content: "\f09a"; } + +.fa.fa-pinterest-p { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-whatsapp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-hotel:before { + content: "\f236"; } + +.fa.fa-viacoin { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-medium { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-y-combinator { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yc:before { + content: "\f23b"; } + +.fa.fa-optin-monster { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opencart { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-expeditedssl { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-battery-4:before { + content: "\f240"; } + +.fa.fa-battery:before { + content: "\f240"; } + +.fa.fa-battery-3:before { + content: "\f241"; } + +.fa.fa-battery-2:before { + content: "\f242"; } + +.fa.fa-battery-1:before { + content: "\f243"; } + +.fa.fa-battery-0:before { + content: "\f244"; } + +.fa.fa-object-group { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-object-ungroup { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-sticky-note-o:before { + content: "\f249"; } + +.fa.fa-cc-jcb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-cc-diners-club { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-clone { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hourglass-o:before { + content: "\f254"; } + +.fa.fa-hourglass-1:before { + content: "\f251"; } + +.fa.fa-hourglass-2:before { + content: "\f252"; } + +.fa.fa-hourglass-3:before { + content: "\f253"; } + +.fa.fa-hand-rock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-rock-o:before { + content: "\f255"; } + +.fa.fa-hand-grab-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-grab-o:before { + content: "\f255"; } + +.fa.fa-hand-paper-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-paper-o:before { + content: "\f256"; } + +.fa.fa-hand-stop-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-stop-o:before { + content: "\f256"; } + +.fa.fa-hand-scissors-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-scissors-o:before { + content: "\f257"; } + +.fa.fa-hand-lizard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-lizard-o:before { + content: "\f258"; } + +.fa.fa-hand-spock-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-spock-o:before { + content: "\f259"; } + +.fa.fa-hand-pointer-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-pointer-o:before { + content: "\f25a"; } + +.fa.fa-hand-peace-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-hand-peace-o:before { + content: "\f25b"; } + +.fa.fa-registered { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-creative-commons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gg-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-odnoklassniki-square:before { + content: "\f264"; } + +.fa.fa-get-pocket { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wikipedia-w { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-safari { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-chrome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-firefox { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-opera { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-internet-explorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-television:before { + content: "\f26c"; } + +.fa.fa-contao { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-500px { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-amazon { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-calendar-plus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-plus-o:before { + content: "\f271"; } + +.fa.fa-calendar-minus-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-minus-o:before { + content: "\f272"; } + +.fa.fa-calendar-times-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-times-o:before { + content: "\f273"; } + +.fa.fa-calendar-check-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-calendar-check-o:before { + content: "\f274"; } + +.fa.fa-map-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-map-o:before { + content: "\f279"; } + +.fa.fa-commenting:before { + content: "\f4ad"; } + +.fa.fa-commenting-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-commenting-o:before { + content: "\f4ad"; } + +.fa.fa-houzz { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-vimeo:before { + content: "\f27d"; } + +.fa.fa-black-tie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fonticons { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-reddit-alien { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-edge { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-credit-card-alt:before { + content: "\f09d"; } + +.fa.fa-codiepie { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-modx { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fort-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-usb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-product-hunt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-mixcloud { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-scribd { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-pause-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-pause-circle-o:before { + content: "\f28b"; } + +.fa.fa-stop-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-stop-circle-o:before { + content: "\f28d"; } + +.fa.fa-bluetooth { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-bluetooth-b { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-gitlab { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpbeginner { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpforms { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-envira { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wheelchair-alt:before { + content: "\f368"; } + +.fa.fa-question-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-question-circle-o:before { + content: "\f059"; } + +.fa.fa-volume-control-phone:before { + content: "\f2a0"; } + +.fa.fa-asl-interpreting:before { + content: "\f2a3"; } + +.fa.fa-deafness:before { + content: "\f2a4"; } + +.fa.fa-hard-of-hearing:before { + content: "\f2a4"; } + +.fa.fa-glide { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-glide-g { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-signing:before { + content: "\f2a7"; } + +.fa.fa-viadeo { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-viadeo-square:before { + content: "\f2aa"; } + +.fa.fa-snapchat { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-ghost:before { + content: "\f2ab"; } + +.fa.fa-snapchat-square { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-snapchat-square:before { + content: "\f2ad"; } + +.fa.fa-pied-piper { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-first-order { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-yoast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-themeisle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-official:before { + content: "\f2b3"; } + +.fa.fa-google-plus-circle { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-google-plus-circle:before { + content: "\f2b3"; } + +.fa.fa-font-awesome { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-fa:before { + content: "\f2b4"; } + +.fa.fa-handshake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-handshake-o:before { + content: "\f2b5"; } + +.fa.fa-envelope-open-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-envelope-open-o:before { + content: "\f2b6"; } + +.fa.fa-linode { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-address-book-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-book-o:before { + content: "\f2b9"; } + +.fa.fa-vcard:before { + content: "\f2bb"; } + +.fa.fa-address-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-address-card-o:before { + content: "\f2bb"; } + +.fa.fa-vcard-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-vcard-o:before { + content: "\f2bb"; } + +.fa.fa-user-circle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-circle-o:before { + content: "\f2bd"; } + +.fa.fa-user-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-user-o:before { + content: "\f007"; } + +.fa.fa-id-badge { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license:before { + content: "\f2c2"; } + +.fa.fa-id-card-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-id-card-o:before { + content: "\f2c2"; } + +.fa.fa-drivers-license-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-drivers-license-o:before { + content: "\f2c2"; } + +.fa.fa-quora { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-free-code-camp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-telegram { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-thermometer-4:before { + content: "\f2c7"; } + +.fa.fa-thermometer:before { + content: "\f2c7"; } + +.fa.fa-thermometer-3:before { + content: "\f2c8"; } + +.fa.fa-thermometer-2:before { + content: "\f2c9"; } + +.fa.fa-thermometer-1:before { + content: "\f2ca"; } + +.fa.fa-thermometer-0:before { + content: "\f2cb"; } + +.fa.fa-bathtub:before { + content: "\f2cd"; } + +.fa.fa-s15:before { + content: "\f2cd"; } + +.fa.fa-window-maximize { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-restore { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle:before { + content: "\f410"; } + +.fa.fa-window-close-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-window-close-o:before { + content: "\f410"; } + +.fa.fa-times-rectangle-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-times-rectangle-o:before { + content: "\f410"; } + +.fa.fa-bandcamp { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-grav { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-etsy { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-imdb { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-ravelry { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-eercast:before { + content: "\f2da"; } + +.fa.fa-snowflake-o { + font-family: 'Font Awesome 6 Free'; + font-weight: 400; } + +.fa.fa-snowflake-o:before { + content: "\f2dc"; } + +.fa.fa-superpowers { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-wpexplorer { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } + +.fa.fa-meetup { + font-family: 'Font Awesome 6 Brands'; + font-weight: 400; } diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf new file mode 100644 index 00000000..08362f34 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 new file mode 100644 index 00000000..d84512f3 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf new file mode 100644 index 00000000..7f9b53c1 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 new file mode 100644 index 00000000..452b49c0 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf new file mode 100644 index 00000000..e7e2ecfa Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 new file mode 100644 index 00000000..fec1fae7 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf new file mode 100644 index 00000000..577b7a00 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.ttf differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 new file mode 100644 index 00000000..73931680 Binary files /dev/null and b/src/AElfScanServer.AuthServer/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-v4compatibility.woff2 differ diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.css b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.css new file mode 100644 index 00000000..ddf9cae5 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.css @@ -0,0 +1,56 @@ +@keyframes spin { + 0% { + transform: translateZ(0) rotate(0deg); + } + + 100% { + transform: translateZ(0) rotate(360deg); + } +} + +.abp-block-area { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 102; + background-color: #fff; + opacity: .8; + transition: opacity .25s; +} + + .abp-block-area.abp-block-area-disappearing { + opacity: 0; + } + + .abp-block-area.abp-block-area-busy:after { + content: attr(data-text); + display: block; + max-width: 125px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 20px; + font-family: sans-serif; + color: #343a40; + text-align: center; + text-transform: uppercase; + } + + .abp-block-area.abp-block-area-busy:before { + content: ""; + display: block; + width: 150px; + height: 150px; + border-radius: 50%; + border-width: 2px; + border-style: solid; + border-color: transparent #228ae6 #228ae6 #228ae6; + position: absolute; + top: calc(50% - 75px); + left: calc(50% - 75px); + will-change: transform; + animation: spin .75s infinite ease-in-out; + } diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.js b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.js new file mode 100644 index 00000000..7a82f58e --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/core/abp.js @@ -0,0 +1,823 @@ +var abp = abp || {}; +(function () { + + /* Application paths *****************************************/ + + //Current application root path (including virtual directory if exists). + abp.appPath = abp.appPath || '/'; + + abp.pageLoadTime = new Date(); + + //Converts given path to absolute path using abp.appPath variable. + abp.toAbsAppPath = function (path) { + if (path.indexOf('/') == 0) { + path = path.substring(1); + } + + return abp.appPath + path; + }; + + /* LOGGING ***************************************************/ + //Implements Logging API that provides secure & controlled usage of console.log + + abp.log = abp.log || {}; + + abp.log.levels = { + DEBUG: 1, + INFO: 2, + WARN: 3, + ERROR: 4, + FATAL: 5 + }; + + abp.log.level = abp.log.levels.DEBUG; + + abp.log.log = function (logObject, logLevel) { + if (!window.console || !window.console.log) { + return; + } + + if (logLevel != undefined && logLevel < abp.log.level) { + return; + } + + console.log(logObject); + }; + + abp.log.debug = function (logObject) { + abp.log.log("DEBUG: ", abp.log.levels.DEBUG); + abp.log.log(logObject, abp.log.levels.DEBUG); + }; + + abp.log.info = function (logObject) { + abp.log.log("INFO: ", abp.log.levels.INFO); + abp.log.log(logObject, abp.log.levels.INFO); + }; + + abp.log.warn = function (logObject) { + abp.log.log("WARN: ", abp.log.levels.WARN); + abp.log.log(logObject, abp.log.levels.WARN); + }; + + abp.log.error = function (logObject) { + abp.log.log("ERROR: ", abp.log.levels.ERROR); + abp.log.log(logObject, abp.log.levels.ERROR); + }; + + abp.log.fatal = function (logObject) { + abp.log.log("FATAL: ", abp.log.levels.FATAL); + abp.log.log(logObject, abp.log.levels.FATAL); + }; + + /* LOCALIZATION ***********************************************/ + + abp.localization = abp.localization || {}; + abp.localization.internal = abp.localization.internal || {}; + abp.localization.values = abp.localization.values || {}; + abp.localization.resources = abp.localization.resources || {}; + + abp.localization.internal.getResource = function (resourceName) { + var resource = abp.localization.resources[resourceName]; + if (resource) { + return resource; + } + + var legacySource = abp.localization.values[resourceName]; + if (legacySource) { + return { + texts: abp.localization.values[resourceName], + baseResources: [] + }; + } + + abp.log.warn('Could not find localization source: ' + resourceName); + return null; + }; + + abp.localization.internal.localize = function (key, sourceName) { + var resource = abp.localization.internal.getResource(sourceName); + if (!resource){ + return { + value: key, + found: false + }; + } + + var value = resource.texts[key]; + if (value === undefined) { + for (var i = 0; i < resource.baseResources.length; i++){ + var basedArguments = Array.prototype.slice.call(arguments, 0); + basedArguments[1] = resource.baseResources[i]; + + var result = abp.localization.internal.localize.apply(this, basedArguments); + if (result.found){ + return result; + } + } + + return { + value: key, + found: false + }; + } + + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 1); + copiedArguments[0] = value; + + return { + value: abp.utils.formatString.apply(this, copiedArguments), + found: true + }; + }; + + abp.localization.localize = function (key, sourceName) { + if (sourceName === '_') { //A convention to suppress the localization + return key; + } + + if (sourceName) { + return abp.localization.internal.localize.apply(this, arguments).value; + } + + if (!abp.localization.defaultResourceName) { + abp.log.warn('Localization source name is not specified and the defaultResourceName was not defined!'); + return key; + } + + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 1, abp.localization.defaultResourceName); + + return abp.localization.internal.localize.apply(this, copiedArguments).value; + }; + + abp.localization.isLocalized = function (key, sourceName) { + if (sourceName === '_') { //A convention to suppress the localization + return true; + } + + sourceName = sourceName || abp.localization.defaultResourceName; + if (!sourceName) { + return false; + } + + return abp.localization.internal.localize(key, sourceName).found; + }; + + abp.localization.getResource = function (name) { + return function () { + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 0, name); + return abp.localization.localize.apply(this, copiedArguments); + }; + }; + + abp.localization.defaultResourceName = undefined; + abp.localization.currentCulture = { + cultureName: undefined + }; + + var getMapValue = function (packageMaps, packageName, language) { + language = language || abp.localization.currentCulture.name; + if (!packageMaps || !packageName || !language) { + return language; + } + + var packageMap = packageMaps[packageName]; + if (!packageMap) { + return language; + } + + for (var i = 0; i < packageMap.length; i++) { + var map = packageMap[i]; + if (map.name === language){ + return map.value; + } + } + + return language; + }; + + abp.localization.getLanguagesMap = function (packageName, language) { + return getMapValue(abp.localization.languagesMap, packageName, language); + }; + + abp.localization.getLanguageFilesMap = function (packageName, language) { + return getMapValue(abp.localization.languageFilesMap, packageName, language); + }; + + /* AUTHORIZATION **********************************************/ + + abp.auth = abp.auth || {}; + + abp.auth.grantedPolicies = abp.auth.grantedPolicies || {}; + + abp.auth.isGranted = function (policyName) { + return abp.auth.grantedPolicies[policyName] != undefined; + }; + + abp.auth.isAnyGranted = function () { + if (!arguments || arguments.length <= 0) { + return true; + } + + for (var i = 0; i < arguments.length; i++) { + if (abp.auth.isGranted(arguments[i])) { + return true; + } + } + + return false; + }; + + abp.auth.areAllGranted = function () { + if (!arguments || arguments.length <= 0) { + return true; + } + + for (var i = 0; i < arguments.length; i++) { + if (!abp.auth.isGranted(arguments[i])) { + return false; + } + } + + return true; + }; + + abp.auth.tokenCookieName = 'Abp.AuthToken'; + + abp.auth.setToken = function (authToken, expireDate) { + abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath, abp.domain); + }; + + abp.auth.getToken = function () { + return abp.utils.getCookieValue(abp.auth.tokenCookieName); + } + + abp.auth.clearToken = function () { + abp.auth.setToken(); + } + + /* SETTINGS *************************************************/ + + abp.setting = abp.setting || {}; + + abp.setting.values = abp.setting.values || {}; + + abp.setting.get = function (name) { + return abp.setting.values[name]; + }; + + abp.setting.getBoolean = function (name) { + var value = abp.setting.get(name); + return value == 'true' || value == 'True'; + }; + + abp.setting.getInt = function (name) { + return parseInt(abp.setting.values[name]); + }; + + /* NOTIFICATION *********************************************/ + //Defines Notification API, not implements it + + abp.notify = abp.notify || {}; + + abp.notify.success = function (message, title, options) { + abp.log.warn('abp.notify.success is not implemented!'); + }; + + abp.notify.info = function (message, title, options) { + abp.log.warn('abp.notify.info is not implemented!'); + }; + + abp.notify.warn = function (message, title, options) { + abp.log.warn('abp.notify.warn is not implemented!'); + }; + + abp.notify.error = function (message, title, options) { + abp.log.warn('abp.notify.error is not implemented!'); + }; + + /* MESSAGE **************************************************/ + //Defines Message API, not implements it + + abp.message = abp.message || {}; + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + }; + + abp.message.info = function (message, title) { + abp.log.warn('abp.message.info is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.success = function (message, title) { + abp.log.warn('abp.message.success is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.warn = function (message, title) { + abp.log.warn('abp.message.warn is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.error = function (message, title) { + abp.log.warn('abp.message.error is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + abp.log.warn('abp.message.confirm is not properly implemented!'); + + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + }; + + /* UI *******************************************************/ + + abp.ui = abp.ui || {}; + + /* UI BLOCK */ + //Defines UI Block API and implements basically + + var $abpBlockArea = document.createElement('div'); + $abpBlockArea.classList.add('abp-block-area'); + + /* opts: { //Can be an object with options or a string for query a selector + * elm: a query selector (optional - default: document.body) + * busy: boolean (optional - default: false) + * promise: A promise with always or finally handler (optional - auto unblocks the ui if provided) + * } + */ + abp.ui.block = function (opts) { + if (!opts) { + opts = {}; + } else if (typeof opts == 'string') { + opts = { + elm: opts + }; + } + + var $elm = document.querySelector(opts.elm) || document.body; + + if (opts.busy) { + $abpBlockArea.classList.add('abp-block-area-busy'); + } else { + $abpBlockArea.classList.remove('abp-block-area-busy'); + } + + if (document.querySelector(opts.elm)) { + $abpBlockArea.style.position = 'absolute'; + } else { + $abpBlockArea.style.position = 'fixed'; + } + + $elm.appendChild($abpBlockArea); + + if (opts.promise) { + if (opts.promise.always) { //jQuery.Deferred style + opts.promise.always(function () { + abp.ui.unblock({ + $elm: opts.elm + }); + }); + } else if (opts.promise['finally']) { //Q style + opts.promise['finally'](function () { + abp.ui.unblock({ + $elm: opts.elm + }); + }); + } + } + }; + + /* opts: { + * + * } + */ + abp.ui.unblock = function (opts) { + var element = document.querySelector('.abp-block-area'); + if (element) { + element.classList.add('abp-block-area-disappearing'); + setTimeout(function () { + if (element) { + element.classList.remove('abp-block-area-disappearing'); + if (element.parentElement) { + element.parentElement.removeChild(element); + } + } + }, 250); + } + }; + + /* UI BUSY */ + //Defines UI Busy API, not implements it + + abp.ui.setBusy = function (opts) { + if (!opts) { + opts = { + busy: true + }; + } else if (typeof opts == 'string') { + opts = { + elm: opts, + busy: true + }; + } + + abp.ui.block(opts); + }; + + abp.ui.clearBusy = function (opts) { + abp.ui.unblock(opts); + }; + + /* SIMPLE EVENT BUS *****************************************/ + + abp.event = (function () { + + var _callbacks = {}; + + var on = function (eventName, callback) { + if (!_callbacks[eventName]) { + _callbacks[eventName] = []; + } + + _callbacks[eventName].push(callback); + }; + + var off = function (eventName, callback) { + var callbacks = _callbacks[eventName]; + if (!callbacks) { + return; + } + + var index = -1; + for (var i = 0; i < callbacks.length; i++) { + if (callbacks[i] === callback) { + index = i; + break; + } + } + + if (index < 0) { + return; + } + + _callbacks[eventName].splice(index, 1); + }; + + var trigger = function (eventName) { + var callbacks = _callbacks[eventName]; + if (!callbacks || !callbacks.length) { + return; + } + + var args = Array.prototype.slice.call(arguments, 1); + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].apply(this, args); + } + }; + + // Public interface /////////////////////////////////////////////////// + + return { + on: on, + off: off, + trigger: trigger + }; + })(); + + + /* UTILS ***************************************************/ + + abp.utils = abp.utils || {}; + + /* Creates a name namespace. + * Example: + * var taskService = abp.utils.createNamespace(abp, 'services.task'); + * taskService will be equal to abp.services.task + * first argument (root) must be defined first + ************************************************************/ + abp.utils.createNamespace = function (root, ns) { + var parts = ns.split('.'); + for (var i = 0; i < parts.length; i++) { + if (typeof root[parts[i]] == 'undefined') { + root[parts[i]] = {}; + } + + root = root[parts[i]]; + } + + return root; + }; + + /* Find and replaces a string (search) to another string (replacement) in + * given string (str). + * Example: + * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string' + ************************************************************/ + abp.utils.replaceAll = function (str, search, replacement) { + var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + return str.replace(new RegExp(fix, 'g'), replacement); + }; + + /* Formats a string just like string.format in C#. + * Example: + * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana' + ************************************************************/ + abp.utils.formatString = function () { + if (arguments.length < 1) { + return null; + } + + var str = arguments[0]; + + for (var i = 1; i < arguments.length; i++) { + var placeHolder = '{' + (i - 1) + '}'; + str = abp.utils.replaceAll(str, placeHolder, arguments[i]); + } + + return str; + }; + + abp.utils.toPascalCase = function (str) { + if (!str || !str.length) { + return str; + } + + if (str.length === 1) { + return str.charAt(0).toUpperCase(); + } + + return str.charAt(0).toUpperCase() + str.substr(1); + } + + abp.utils.toCamelCase = function (str) { + if (!str || !str.length) { + return str; + } + + if (str.length === 1) { + return str.charAt(0).toLowerCase(); + } + + return str.charAt(0).toLowerCase() + str.substr(1); + } + + abp.utils.truncateString = function (str, maxLength) { + if (!str || !str.length || str.length <= maxLength) { + return str; + } + + return str.substr(0, maxLength); + }; + + abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) { + postfix = postfix || '...'; + + if (!str || !str.length || str.length <= maxLength) { + return str; + } + + if (maxLength <= postfix.length) { + return postfix.substr(0, maxLength); + } + + return str.substr(0, maxLength - postfix.length) + postfix; + }; + + abp.utils.isFunction = function (obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + }; + + /** + * parameterInfos should be an array of { name, value } objects + * where name is query string parameter name and value is it's value. + * includeQuestionMark is true by default. + */ + abp.utils.buildQueryString = function (parameterInfos, includeQuestionMark) { + if (includeQuestionMark === undefined) { + includeQuestionMark = true; + } + + var qs = ''; + + function addSeperator() { + if (!qs.length) { + if (includeQuestionMark) { + qs = qs + '?'; + } + } else { + qs = qs + '&'; + } + } + + for (var i = 0; i < parameterInfos.length; ++i) { + var parameterInfo = parameterInfos[i]; + if (parameterInfo.value === undefined) { + continue; + } + + if (parameterInfo.value === null) { + parameterInfo.value = ''; + } + + addSeperator(); + + if (parameterInfo.value.toJSON && typeof parameterInfo.value.toJSON === "function") { + qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value.toJSON()); + } else if (Array.isArray(parameterInfo.value) && parameterInfo.value.length) { + for (var j = 0; j < parameterInfo.value.length; j++) { + if (j > 0) { + addSeperator(); + } + + qs = qs + parameterInfo.name + '[' + j + ']=' + encodeURIComponent(parameterInfo.value[j]); + } + } else { + qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value); + } + } + + return qs; + } + + /** + * Sets a cookie value for given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @param {string} value + * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session. + * @param {string} path (optional) + */ + abp.utils.setCookieValue = function (key, value, expireDate, path) { + var cookieValue = encodeURIComponent(key) + '='; + + if (value) { + cookieValue = cookieValue + encodeURIComponent(value); + } + + if (expireDate) { + cookieValue = cookieValue + "; expires=" + expireDate.toUTCString(); + } + + if (path) { + cookieValue = cookieValue + "; path=" + path; + } + + document.cookie = cookieValue; + }; + + /** + * Gets a cookie with given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @returns {string} Cookie value or null + */ + abp.utils.getCookieValue = function (key) { + var equalities = document.cookie.split('; '); + for (var i = 0; i < equalities.length; i++) { + if (!equalities[i]) { + continue; + } + + var splitted = equalities[i].split('='); + if (splitted.length != 2) { + continue; + } + + if (decodeURIComponent(splitted[0]) === key) { + return decodeURIComponent(splitted[1] || ''); + } + } + + return null; + }; + + /** + * Deletes cookie for given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @param {string} path (optional) + */ + abp.utils.deleteCookie = function (key, path) { + var cookieValue = encodeURIComponent(key) + '='; + + cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString(); + + if (path) { + cookieValue = cookieValue + "; path=" + path; + } + + document.cookie = cookieValue; + } + + /** + * Escape HTML to help prevent XSS attacks. + */ + abp.utils.htmlEscape = function (html) { + return typeof html === 'string' ? html.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"') : html; + } + + /* SECURITY ***************************************/ + abp.security = abp.security || {}; + abp.security.antiForgery = abp.security.antiForgery || {}; + + abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN'; + abp.security.antiForgery.tokenHeaderName = 'RequestVerificationToken'; + + abp.security.antiForgery.getToken = function () { + return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName); + }; + + /* CLOCK *****************************************/ + abp.clock = abp.clock || {}; + + abp.clock.kind = 'Unspecified'; + + abp.clock.supportsMultipleTimezone = function () { + return abp.clock.kind === 'Utc'; + }; + + var toLocal = function (date) { + return new Date( + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() + ); + }; + + var toUtc = function (date) { + return Date.UTC( + date.getUTCFullYear(), + date.getUTCMonth(), + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds(), + date.getUTCMilliseconds() + ); + }; + + abp.clock.now = function () { + if (abp.clock.kind === 'Utc') { + return toUtc(new Date()); + } + return new Date(); + }; + + abp.clock.normalize = function (date) { + var kind = abp.clock.kind; + + if (kind === 'Unspecified') { + return date; + } + + if (kind === 'Local') { + return toLocal(date); + } + + if (kind === 'Utc') { + return toUtc(date); + } + }; + + /* FEATURES *************************************************/ + + abp.features = abp.features || {}; + + abp.features.values = abp.features.values || {}; + + abp.features.isEnabled = function(name){ + var value = abp.features.get(name); + return value == 'true' || value == 'True'; + } + + abp.features.get = function (name) { + return abp.features.values[name]; + }; + + /* GLOBAL FEATURES *************************************************/ + + abp.globalFeatures = abp.globalFeatures || {}; + + abp.globalFeatures.enabledFeatures = abp.globalFeatures.enabledFeatures || []; + + abp.globalFeatures.isEnabled = function(name){ + return abp.globalFeatures.enabledFeatures.indexOf(name) != -1; + } + +})(); diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/jquery/abp.jquery.js b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/jquery/abp.jquery.js new file mode 100644 index 00000000..7dc3439d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/jquery/abp.jquery.js @@ -0,0 +1,411 @@ +var abp = abp || {}; +(function($) { + + if (!$) { + throw "abp/jquery library requires the jquery library included to the page!"; + } + + // ABP CORE OVERRIDES ///////////////////////////////////////////////////// + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + + return $.Deferred(function ($dfd) { + $dfd.resolve(); + }); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + + return $.Deferred(function ($dfd) { + $dfd.resolve(result); + }); + }; + + abp.utils.isFunction = function (obj) { + return $.isFunction(obj); + }; + + // JQUERY EXTENSIONS ////////////////////////////////////////////////////// + + $.fn.findWithSelf = function (selector) { + return this.filter(selector).add(this.find(selector)); + }; + + // DOM //////////////////////////////////////////////////////////////////// + + abp.dom = abp.dom || {}; + + abp.dom.onNodeAdded = function (callback) { + abp.event.on('abp.dom.nodeAdded', callback); + }; + + abp.dom.onNodeRemoved = function (callback) { + abp.event.on('abp.dom.nodeRemoved', callback); + }; + + var mutationObserverCallback = function (mutationsList) { + for (var i = 0; i < mutationsList.length; i++) { + var mutation = mutationsList[i]; + if (mutation.type === 'childList') { + if (mutation.addedNodes && mutation.removedNodes.length) { + for (var k = 0; k < mutation.removedNodes.length; k++) { + abp.event.trigger( + 'abp.dom.nodeRemoved', + { + $el: $(mutation.removedNodes[k]) + } + ); + } + } + + if (mutation.addedNodes && mutation.addedNodes.length) { + for (var j = 0; j < mutation.addedNodes.length; j++) { + abp.event.trigger( + 'abp.dom.nodeAdded', + { + $el: $(mutation.addedNodes[j]) + } + ); + } + } + } + } + }; + + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); + + // AJAX /////////////////////////////////////////////////////////////////// + + abp.ajax = function (userOptions) { + userOptions = userOptions || {}; + + var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions); + + options.success = undefined; + options.error = undefined; + + var xhr = null; + var promise = $.Deferred(function ($dfd) { + xhr = $.ajax(options) + .done(function (data, textStatus, jqXHR) { + $dfd.resolve(data); + userOptions.success && userOptions.success(data); + }).fail(function (jqXHR) { + if(jqXHR.statusText === 'abort') { + //ajax request is abort, ignore error handle. + return; + } + if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') { + abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd); + } else { + abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd); + } + }); + }).promise(); + + promise['jqXHR'] = xhr; + + return promise; + }; + + $.extend(abp.ajax, { + defaultOpts: { + dataType: 'json', + type: 'POST', + contentType: 'application/json', + headers: { + 'X-Requested-With': 'XMLHttpRequest' + } + }, + + defaultError: { + message: 'An error has occurred!', + details: 'Error detail not sent by server.' + }, + + defaultError401: { + message: 'You are not authenticated!', + details: 'You should be authenticated (sign in) in order to perform this operation.' + }, + + defaultError403: { + message: 'You are not authorized!', + details: 'You are not allowed to perform this operation.' + }, + + defaultError404: { + message: 'Resource not found!', + details: 'The resource requested could not found on the server.' + }, + + logError: function (error) { + abp.log.error(error); + }, + + showError: function (error) { + if (error.details) { + return abp.message.error(error.details, error.message); + } else { + return abp.message.error(error.message || abp.ajax.defaultError.message); + } + }, + + handleTargetUrl: function (targetUrl) { + if (!targetUrl) { + location.href = abp.appPath; + } else { + location.href = targetUrl; + } + }, + + handleErrorStatusCode: function (status) { + switch (status) { + case 401: + abp.ajax.handleUnAuthorizedRequest( + abp.ajax.showError(abp.ajax.defaultError401), + abp.appPath + ); + break; + case 403: + abp.ajax.showError(abp.ajax.defaultError403); + break; + case 404: + abp.ajax.showError(abp.ajax.defaultError404); + break; + default: + abp.ajax.showError(abp.ajax.defaultError); + break; + } + }, + + handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + if (userOptions.abpHandleError !== false) { + abp.ajax.handleErrorStatusCode(jqXHR.status); + } + + $dfd.reject.apply(this, arguments); + userOptions.error && userOptions.error.apply(this, arguments); + }, + + handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + var messagePromise = null; + + var responseJSON = jqXHR.responseJSON ? jqXHR.responseJSON : JSON.parse(jqXHR.responseText); + + if (userOptions.abpHandleError !== false) { + messagePromise = abp.ajax.showError(responseJSON.error); + } + + abp.ajax.logError(responseJSON.error); + + $dfd && $dfd.reject(responseJSON.error, jqXHR); + userOptions.error && userOptions.error(responseJSON.error, jqXHR); + + if (jqXHR.status === 401 && userOptions.abpHandleError !== false) { + abp.ajax.handleUnAuthorizedRequest(messagePromise); + } + }, + + handleUnAuthorizedRequest: function (messagePromise, targetUrl) { + if (messagePromise) { + messagePromise.done(function () { + abp.ajax.handleTargetUrl(targetUrl); + }); + } else { + abp.ajax.handleTargetUrl(targetUrl); + } + }, + + blockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //block whole page + abp.ui.setBusy(); + } else { //block an element + abp.ui.setBusy(options.blockUI); + } + } + }, + + unblockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //unblock whole page + abp.ui.clearBusy(); + } else { //unblock an element + abp.ui.clearBusy(options.blockUI); + } + } + }, + + ajaxSendHandler: function (event, request, settings) { + var token = abp.security.antiForgery.getToken(); + if (!token) { + return; + } + + if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) { + request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token); + } + } + }); + + $(document).ajaxSend(function (event, request, settings) { + return abp.ajax.ajaxSendHandler(event, request, settings); + }); + + abp.event.on('abp.configurationInitialized', function () { + var l = abp.localization.getResource('AbpUi'); + + abp.ajax.defaultError.message = l('DefaultErrorMessage'); + abp.ajax.defaultError.details = l('DefaultErrorMessageDetail'); + abp.ajax.defaultError401.message = l('DefaultErrorMessage401'); + abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail'); + abp.ajax.defaultError403.message = l('DefaultErrorMessage403'); + abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail'); + abp.ajax.defaultError404.message = l('DefaultErrorMessage404'); + abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail'); + }); + + // RESOURCE LOADER //////////////////////////////////////////////////////// + + /* UrlStates enum */ + var UrlStates = { + LOADING: 'LOADING', + LOADED: 'LOADED', + FAILED: 'FAILED' + }; + + /* UrlInfo class */ + function UrlInfo(url) { + this.url = url; + this.state = UrlStates.LOADING; + this.loadCallbacks = []; + this.failCallbacks = []; + } + + UrlInfo.prototype.succeed = function () { + this.state = UrlStates.LOADED; + for (var i = 0; i < this.loadCallbacks.length; i++) { + this.loadCallbacks[i](); + } + }; + + UrlInfo.prototype.failed = function () { + this.state = UrlStates.FAILED; + for (var i = 0; i < this.failCallbacks.length; i++) { + this.failCallbacks[i](); + } + }; + + UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { + switch (this.state) { + case UrlStates.LOADED: + loadCallback && loadCallback(); + break; + case UrlStates.FAILED: + failCallback && failCallback(); + break; + case UrlStates.LOADING: + this.addCallbacks(loadCallback, failCallback); + break; + } + }; + + UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { + loadCallback && this.loadCallbacks.push(loadCallback); + failCallback && this.failCallbacks.push(failCallback); + }; + + /* ResourceLoader API */ + + abp.ResourceLoader = (function () { + + var _urlInfos = {}; + + function getCacheKey(url) { + return url; + } + + function appendTimeToUrl(url) { + + if (url.indexOf('?') < 0) { + url += '?'; + } else { + url += '&'; + } + + url += '_=' + new Date().getTime(); + + return url; + } + + var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) { + + var cacheKey = getCacheKey(url); + + var urlInfo = _urlInfos[cacheKey]; + + if (urlInfo) { + urlInfo.handleCallbacks(loadCallback, failCallback); + return; + } + + _urlInfos[cacheKey] = urlInfo = new UrlInfo(url); + urlInfo.addCallbacks(loadCallback, failCallback); + + serverLoader(urlInfo); + }; + + var _loadScript = function (url, loadCallback, failCallback) { + var nonce = document.body.nonce || document.body.getAttribute('nonce'); + _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { + $.get({ + url: url, + dataType: 'text' + }) + .done(function (script) { + if(nonce){ + $.globalEval(script, { nonce: nonce}); + }else{ + $.globalEval(script); + } + urlInfo.succeed(); + }) + .fail(function () { + urlInfo.failed(); + }); + }); + }; + + var _loadStyle = function (url) { + _loadFromUrl(url, undefined, undefined, function (urlInfo) { + + $('', { + rel: 'stylesheet', + type: 'text/css', + href: appendTimeToUrl(url) + }).appendTo('head'); + }); + }; + + return { + loadScript: _loadScript, + loadStyle: _loadStyle + } + })(); + +})(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/luxon/abp.luxon.js b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/luxon/abp.luxon.js new file mode 100644 index 00000000..b04de7ca --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/luxon/abp.luxon.js @@ -0,0 +1,46 @@ +var abp = abp || {}; +(function () { + + if (!luxon) { + throw "abp/luxon library requires the luxon library included to the page!"; + } + + /* TIMING *************************************************/ + + abp.timing = abp.timing || {}; + + var setObjectValue = function (obj, property, value) { + if (typeof property === "string") { + property = property.split('.'); + } + + if (property.length > 1) { + var p = property.shift(); + setObjectValue(obj[p], property, value); + } else { + obj[property[0]] = value; + } + } + + var getObjectValue = function (obj, property) { + return property.split('.').reduce((a, v) => a[v], obj) + } + + abp.timing.convertFieldsToIsoDate = function (form, fields) { + for (var field of fields) { + var dateTime = luxon.DateTime + .fromFormat( + getObjectValue(form, field), + abp.localization.currentCulture.dateTimeFormat.shortDatePattern, + {locale: abp.localization.currentCulture.cultureName} + ); + + if (!dateTime.invalid) { + setObjectValue(form, field, dateTime.toFormat("yyyy-MM-dd HH:mm:ss")) + } + } + + return form; + } + +})(jQuery); diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.js b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.js new file mode 100644 index 00000000..28ebcc37 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.js @@ -0,0 +1,694 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('just-compare')) : + typeof define === 'function' && define.amd ? define('@abp/utils', ['exports', 'just-compare'], factory) : + (global = global || self, factory((global.abp = global.abp || {}, global.abp.utils = global.abp.utils || {}, global.abp.utils.common = {}), global.compare)); +}(this, (function (exports, compare) { 'use strict'; + + compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + /* global Reflect, Promise */ + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) + if (b.hasOwnProperty(p)) + d[p] = b[p]; }; + return extendStatics(d, b); + }; + function __extends(d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + } + var __assign = function () { + __assign = Object.assign || function __assign(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + function __rest(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + } + function __decorate(decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r = Reflect.decorate(decorators, target, key, desc); + else + for (var i = decorators.length - 1; i >= 0; i--) + if (d = decorators[i]) + r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; + } + function __param(paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); }; + } + function __metadata(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + } + function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { + step(generator.next(value)); + } + catch (e) { + reject(e); + } } + function rejected(value) { try { + step(generator["throw"](value)); + } + catch (e) { + reject(e); + } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + function __generator(thisArg, body) { + var _ = { label: 0, sent: function () { if (t[0] & 1) + throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } + catch (e) { + op = [6, e]; + y = 0; + } + finally { + f = t = 0; + } + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; + } + } + var __createBinding = Object.create ? (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } }); + }) : (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); + function __exportStar(m, exports) { + for (var p in m) + if (p !== "default" && !exports.hasOwnProperty(p)) + __createBinding(exports, m, p); + } + function __values(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function () { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + } + function __read(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } + catch (error) { + e = { error: error }; + } + finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } + finally { + if (e) + throw e.error; + } + } + return ar; + } + function __spread() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read(arguments[i])); + return ar; + } + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + } + ; + function __await(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); + } + function __asyncGenerator(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; + function verb(n) { if (g[n]) + i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { + step(g[n](v)); + } + catch (e) { + settle(q[0][3], e); + } } + function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } + function fulfill(value) { resume("next", value); } + function reject(value) { resume("throw", value); } + function settle(f, v) { if (f(v), q.shift(), q.length) + resume(q[0][0], q[0][1]); } + } + function __asyncDelegator(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; + function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } + } + function __asyncValues(o) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); + function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } + } + function __makeTemplateObject(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } + else { + cooked.raw = raw; + } + return cooked; + } + ; + var __setModuleDefault = Object.create ? (function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function (o, v) { + o["default"] = v; + }; + function __importStar(mod) { + if (mod && mod.__esModule) + return mod; + var result = {}; + if (mod != null) + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + } + function __importDefault(mod) { + return (mod && mod.__esModule) ? mod : { default: mod }; + } + function __classPrivateFieldGet(receiver, privateMap) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + return privateMap.get(receiver); + } + function __classPrivateFieldSet(receiver, privateMap, value) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to set private field on non-instance"); + } + privateMap.set(receiver, value); + return value; + } + + var ListNode = /** @class */ (function () { + function ListNode(value) { + this.value = value; + } + return ListNode; + }()); + var LinkedList = /** @class */ (function () { + function LinkedList() { + this.size = 0; + } + Object.defineProperty(LinkedList.prototype, "head", { + get: function () { + return this.first; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LinkedList.prototype, "tail", { + get: function () { + return this.last; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(LinkedList.prototype, "length", { + get: function () { + return this.size; + }, + enumerable: false, + configurable: true + }); + LinkedList.prototype.attach = function (value, previousNode, nextNode) { + if (!previousNode) + return this.addHead(value); + if (!nextNode) + return this.addTail(value); + var node = new ListNode(value); + node.previous = previousNode; + previousNode.next = node; + node.next = nextNode; + nextNode.previous = node; + this.size++; + return node; + }; + LinkedList.prototype.attachMany = function (values, previousNode, nextNode) { + if (!values.length) + return []; + if (!previousNode) + return this.addManyHead(values); + if (!nextNode) + return this.addManyTail(values); + var list = new LinkedList(); + list.addManyTail(values); + list.first.previous = previousNode; + previousNode.next = list.first; + list.last.next = nextNode; + nextNode.previous = list.last; + this.size += values.length; + return list.toNodeArray(); + }; + LinkedList.prototype.detach = function (node) { + if (!node.previous) + return this.dropHead(); + if (!node.next) + return this.dropTail(); + node.previous.next = node.next; + node.next.previous = node.previous; + this.size--; + return node; + }; + LinkedList.prototype.add = function (value) { + var _this = this; + return { + after: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addAfter).call.apply(_a, __spread([_this, value], params)); + }, + before: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addBefore).call.apply(_a, __spread([_this, value], params)); + }, + byIndex: function (position) { return _this.addByIndex(value, position); }, + head: function () { return _this.addHead(value); }, + tail: function () { return _this.addTail(value); }, + }; + }; + LinkedList.prototype.addMany = function (values) { + var _this = this; + return { + after: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addManyAfter).call.apply(_a, __spread([_this, values], params)); + }, + before: function () { + var _a; + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return (_a = _this.addManyBefore).call.apply(_a, __spread([_this, values], params)); + }, + byIndex: function (position) { return _this.addManyByIndex(values, position); }, + head: function () { return _this.addManyHead(values); }, + tail: function () { return _this.addManyTail(values); }, + }; + }; + LinkedList.prototype.addAfter = function (value, previousValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); + return previous ? this.attach(value, previous, previous.next) : this.addTail(value); + }; + LinkedList.prototype.addBefore = function (value, nextValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var next = this.find(function (node) { return compareFn(node.value, nextValue); }); + return next ? this.attach(value, next.previous, next) : this.addHead(value); + }; + LinkedList.prototype.addByIndex = function (value, position) { + if (position < 0) + position += this.size; + else if (position >= this.size) + return this.addTail(value); + if (position <= 0) + return this.addHead(value); + var next = this.get(position); + return this.attach(value, next.previous, next); + }; + LinkedList.prototype.addHead = function (value) { + var node = new ListNode(value); + node.next = this.first; + if (this.first) + this.first.previous = node; + else + this.last = node; + this.first = node; + this.size++; + return node; + }; + LinkedList.prototype.addTail = function (value) { + var node = new ListNode(value); + if (this.first) { + node.previous = this.last; + this.last.next = node; + this.last = node; + } + else { + this.first = node; + this.last = node; + } + this.size++; + return node; + }; + LinkedList.prototype.addManyAfter = function (values, previousValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var previous = this.find(function (node) { return compareFn(node.value, previousValue); }); + return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values); + }; + LinkedList.prototype.addManyBefore = function (values, nextValue, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var next = this.find(function (node) { return compareFn(node.value, nextValue); }); + return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values); + }; + LinkedList.prototype.addManyByIndex = function (values, position) { + if (position < 0) + position += this.size; + if (position <= 0) + return this.addManyHead(values); + if (position >= this.size) + return this.addManyTail(values); + var next = this.get(position); + return this.attachMany(values, next.previous, next); + }; + LinkedList.prototype.addManyHead = function (values) { + var _this = this; + return values.reduceRight(function (nodes, value) { + nodes.unshift(_this.addHead(value)); + return nodes; + }, []); + }; + LinkedList.prototype.addManyTail = function (values) { + var _this = this; + return values.map(function (value) { return _this.addTail(value); }); + }; + LinkedList.prototype.drop = function () { + var _this = this; + return { + byIndex: function (position) { return _this.dropByIndex(position); }, + byValue: function () { + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return _this.dropByValue.apply(_this, params); + }, + byValueAll: function () { + var params = []; + for (var _i = 0; _i < arguments.length; _i++) { + params[_i] = arguments[_i]; + } + return _this.dropByValueAll.apply(_this, params); + }, + head: function () { return _this.dropHead(); }, + tail: function () { return _this.dropTail(); }, + }; + }; + LinkedList.prototype.dropMany = function (count) { + var _this = this; + return { + byIndex: function (position) { return _this.dropManyByIndex(count, position); }, + head: function () { return _this.dropManyHead(count); }, + tail: function () { return _this.dropManyTail(count); }, + }; + }; + LinkedList.prototype.dropByIndex = function (position) { + if (position < 0) + position += this.size; + var current = this.get(position); + return current ? this.detach(current) : undefined; + }; + LinkedList.prototype.dropByValue = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var position = this.findIndex(function (node) { return compareFn(node.value, value); }); + return position < 0 ? undefined : this.dropByIndex(position); + }; + LinkedList.prototype.dropByValueAll = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + var dropped = []; + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (compareFn(current.value, value)) { + dropped.push(this.dropByIndex(position - dropped.length)); + } + } + return dropped; + }; + LinkedList.prototype.dropHead = function () { + var head = this.first; + if (head) { + this.first = head.next; + if (this.first) + this.first.previous = undefined; + else + this.last = undefined; + this.size--; + return head; + } + return undefined; + }; + LinkedList.prototype.dropTail = function () { + var tail = this.last; + if (tail) { + this.last = tail.previous; + if (this.last) + this.last.next = undefined; + else + this.first = undefined; + this.size--; + return tail; + } + return undefined; + }; + LinkedList.prototype.dropManyByIndex = function (count, position) { + if (count <= 0) + return []; + if (position < 0) + position = Math.max(position + this.size, 0); + else if (position >= this.size) + return []; + count = Math.min(count, this.size - position); + var dropped = []; + while (count--) { + var current = this.get(position); + dropped.push(this.detach(current)); + } + return dropped; + }; + LinkedList.prototype.dropManyHead = function (count) { + if (count <= 0) + return []; + count = Math.min(count, this.size); + var dropped = []; + while (count--) + dropped.unshift(this.dropHead()); + return dropped; + }; + LinkedList.prototype.dropManyTail = function (count) { + if (count <= 0) + return []; + count = Math.min(count, this.size); + var dropped = []; + while (count--) + dropped.push(this.dropTail()); + return dropped; + }; + LinkedList.prototype.find = function (predicate) { + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (predicate(current, position, this)) + return current; + } + return undefined; + }; + LinkedList.prototype.findIndex = function (predicate) { + for (var current = this.first, position = 0; current; position++, current = current.next) { + if (predicate(current, position, this)) + return position; + } + return -1; + }; + LinkedList.prototype.forEach = function (iteratorFn) { + for (var node = this.first, position = 0; node; position++, node = node.next) { + iteratorFn(node, position, this); + } + }; + LinkedList.prototype.get = function (position) { + return this.find(function (_, index) { return position === index; }); + }; + LinkedList.prototype.indexOf = function (value, compareFn) { + if (compareFn === void 0) { compareFn = compare; } + return this.findIndex(function (node) { return compareFn(node.value, value); }); + }; + LinkedList.prototype.toArray = function () { + var array = new Array(this.size); + this.forEach(function (node, index) { return (array[index] = node.value); }); + return array; + }; + LinkedList.prototype.toNodeArray = function () { + var array = new Array(this.size); + this.forEach(function (node, index) { return (array[index] = node); }); + return array; + }; + LinkedList.prototype.toString = function (mapperFn) { + if (mapperFn === void 0) { mapperFn = JSON.stringify; } + return this.toArray() + .map(function (value) { return mapperFn(value); }) + .join(' <-> '); + }; + // Cannot use Generator type because of ng-packagr + LinkedList.prototype[Symbol.iterator] = function () { + var node, position; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + node = this.first, position = 0; + _a.label = 1; + case 1: + if (!node) return [3 /*break*/, 4]; + return [4 /*yield*/, node.value]; + case 2: + _a.sent(); + _a.label = 3; + case 3: + position++, node = node.next; + return [3 /*break*/, 1]; + case 4: return [2 /*return*/]; + } + }); + }; + return LinkedList; + }()); + + /* + * Public API Surface of utils + */ + + /** + * Generated bundle index. Do not edit. + */ + + exports.LinkedList = LinkedList; + exports.ListNode = ListNode; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); +//# sourceMappingURL=abp-utils.umd.js.map diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.js.map b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.js.map new file mode 100644 index 00000000..c8cf999f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"abp-utils.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../projects/utils/src/lib/linked-list.ts","../../projects/utils/src/public-api.ts","../../projects/utils/src/abp-utils.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\r\n\r\nimport compare from 'just-compare';\r\n\r\nexport class ListNode {\r\n next: ListNode | undefined;\r\n previous: ListNode | undefined;\r\n constructor(public readonly value: T) {}\r\n}\r\n\r\nexport class LinkedList {\r\n private first: ListNode | undefined;\r\n private last: ListNode | undefined;\r\n private size = 0;\r\n\r\n get head(): ListNode | undefined {\r\n return this.first;\r\n }\r\n get tail(): ListNode | undefined {\r\n return this.last;\r\n }\r\n get length(): number {\r\n return this.size;\r\n }\r\n\r\n private attach(\r\n value: T,\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode {\r\n if (!previousNode) return this.addHead(value);\r\n\r\n if (!nextNode) return this.addTail(value);\r\n\r\n const node = new ListNode(value);\r\n node.previous = previousNode;\r\n previousNode.next = node;\r\n node.next = nextNode;\r\n nextNode.previous = node;\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n private attachMany(\r\n values: T[],\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode[] {\r\n if (!values.length) return [];\r\n\r\n if (!previousNode) return this.addManyHead(values);\r\n\r\n if (!nextNode) return this.addManyTail(values);\r\n\r\n const list = new LinkedList();\r\n list.addManyTail(values);\r\n list.first!.previous = previousNode;\r\n previousNode.next = list.first;\r\n list.last!.next = nextNode;\r\n nextNode.previous = list.last;\r\n\r\n this.size += values.length;\r\n\r\n return list.toNodeArray();\r\n }\r\n\r\n private detach(node: ListNode) {\r\n if (!node.previous) return this.dropHead();\r\n\r\n if (!node.next) return this.dropTail();\r\n\r\n node.previous.next = node.next;\r\n node.next.previous = node.previous;\r\n\r\n this.size--;\r\n\r\n return node;\r\n }\r\n\r\n add(value: T) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addAfter.call(this, value, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addBefore.call(this, value, ...params),\r\n byIndex: (position: number) => this.addByIndex(value, position),\r\n head: () => this.addHead(value),\r\n tail: () => this.addTail(value),\r\n };\r\n }\r\n\r\n addMany(values: T[]) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyAfter.call(this, values, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyBefore.call(this, values, ...params),\r\n byIndex: (position: number) => this.addManyByIndex(values, position),\r\n head: () => this.addManyHead(values),\r\n tail: () => this.addManyTail(values),\r\n };\r\n }\r\n\r\n addAfter(value: T, previousValue: T): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\r\n }\r\n\r\n addBefore(value: T, nextValue: T): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\r\n }\r\n\r\n addByIndex(value: T, position: number): ListNode {\r\n if (position < 0) position += this.size;\r\n else if (position >= this.size) return this.addTail(value);\r\n\r\n if (position <= 0) return this.addHead(value);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attach(value, next.previous, next);\r\n }\r\n\r\n addHead(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n node.next = this.first;\r\n\r\n if (this.first) this.first.previous = node;\r\n else this.last = node;\r\n\r\n this.first = node;\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addTail(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n if (this.first) {\r\n node.previous = this.last;\r\n this.last!.next = node;\r\n this.last = node;\r\n } else {\r\n this.first = node;\r\n this.last = node;\r\n }\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addManyAfter(values: T[], previousValue: T): ListNode[];\r\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyAfter(\r\n values: T[],\r\n previousValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\r\n }\r\n\r\n addManyBefore(values: T[], nextValue: T): ListNode[];\r\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyBefore(\r\n values: T[],\r\n nextValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\r\n }\r\n\r\n addManyByIndex(values: T[], position: number): ListNode[] {\r\n if (position < 0) position += this.size;\r\n\r\n if (position <= 0) return this.addManyHead(values);\r\n\r\n if (position >= this.size) return this.addManyTail(values);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attachMany(values, next.previous, next);\r\n }\r\n\r\n addManyHead(values: T[]): ListNode[] {\r\n return values.reduceRight[]>((nodes, value) => {\r\n nodes.unshift(this.addHead(value));\r\n return nodes;\r\n }, []);\r\n }\r\n\r\n addManyTail(values: T[]): ListNode[] {\r\n return values.map(value => this.addTail(value));\r\n }\r\n\r\n drop() {\r\n return {\r\n byIndex: (position: number) => this.dropByIndex(position),\r\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValue.apply(this, params),\r\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValueAll.apply(this, params),\r\n head: () => this.dropHead(),\r\n tail: () => this.dropTail(),\r\n };\r\n }\r\n\r\n dropMany(count: number) {\r\n return {\r\n byIndex: (position: number) => this.dropManyByIndex(count, position),\r\n head: () => this.dropManyHead(count),\r\n tail: () => this.dropManyTail(count),\r\n };\r\n }\r\n\r\n dropByIndex(position: number): ListNode | undefined {\r\n if (position < 0) position += this.size;\r\n\r\n const current = this.get(position);\r\n\r\n return current ? this.detach(current) : undefined;\r\n }\r\n\r\n dropByValue(value: T): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\r\n const position = this.findIndex(node => compareFn(node.value, value));\r\n\r\n return position < 0 ? undefined : this.dropByIndex(position);\r\n }\r\n\r\n dropByValueAll(value: T): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\r\n const dropped: ListNode[] = [];\r\n\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (compareFn(current.value, value)) {\r\n dropped.push(this.dropByIndex(position - dropped.length)!);\r\n }\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropHead(): ListNode | undefined {\r\n const head = this.first;\r\n\r\n if (head) {\r\n this.first = head.next;\r\n\r\n if (this.first) this.first.previous = undefined;\r\n else this.last = undefined;\r\n\r\n this.size--;\r\n\r\n return head;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropTail(): ListNode | undefined {\r\n const tail = this.last;\r\n\r\n if (tail) {\r\n this.last = tail.previous;\r\n\r\n if (this.last) this.last.next = undefined;\r\n else this.first = undefined;\r\n\r\n this.size--;\r\n\r\n return tail;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropManyByIndex(count: number, position: number): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n if (position < 0) position = Math.max(position + this.size, 0);\r\n else if (position >= this.size) return [];\r\n\r\n count = Math.min(count, this.size - position);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) {\r\n const current = this.get(position);\r\n dropped.push(this.detach(current!)!);\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyHead(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.unshift(this.dropHead()!);\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyTail(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.push(this.dropTail()!);\r\n\r\n return dropped;\r\n }\r\n\r\n find(predicate: ListIteratorFn): ListNode | undefined {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return current;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n findIndex(predicate: ListIteratorFn): number {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return position;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n forEach(iteratorFn: ListIteratorFn) {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n iteratorFn(node, position, this);\r\n }\r\n }\r\n\r\n get(position: number): ListNode | undefined {\r\n return this.find((_, index) => position === index);\r\n }\r\n\r\n indexOf(value: T): number;\r\n indexOf(value: any, compareFn: ListComparisonFn): number;\r\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\r\n return this.findIndex(node => compareFn(node.value, value));\r\n }\r\n\r\n toArray(): T[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node.value));\r\n\r\n return array;\r\n }\r\n\r\n toNodeArray(): ListNode[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node));\r\n\r\n return array;\r\n }\r\n\r\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\r\n return this.toArray()\r\n .map(value => mapperFn(value))\r\n .join(' <-> ');\r\n }\r\n\r\n // Cannot use Generator type because of ng-packagr\r\n *[Symbol.iterator](): any {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n yield node.value;\r\n }\r\n }\r\n}\r\n\r\nexport type ListMapperFn = (value: T) => any;\r\n\r\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\r\n\r\nexport type ListIteratorFn = (\r\n node: ListNode,\r\n index?: number,\r\n list?: LinkedList,\r\n) => R;\r\n","/*\r\n * Public API Surface of utils\r\n */\r\n\r\nexport * from './lib/linked-list';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js new file mode 100644 index 00000000..57b22e51 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js @@ -0,0 +1,2 @@ +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("just-compare")):"function"==typeof define&&define.amd?define("@abp/utils",["exports","just-compare"],r):r(((t=t||self).abp=t.abp||{},t.abp.utils=t.abp.utils||{},t.abp.utils.common={}),t.compare)}(this,(function(t,r){"use strict";r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;function e(t,r){var e,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(e)throw new TypeError("Generator is already executing.");for(;a;)try{if(e=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(e=o.return)&&e.call(o)}finally{if(i)throw i.error}}return a}function i(){for(var t=[],r=0;r=this.size)return this.addTail(t);if(r<=0)return this.addHead(t);var e=this.get(r);return this.attach(t,e.previous,e)},t.prototype.addHead=function(t){var r=new o(t);return r.next=this.first,this.first?this.first.previous=r:this.last=r,this.first=r,this.size++,r},t.prototype.addTail=function(t){var r=new o(t);return this.first?(r.previous=this.last,this.last.next=r,this.last=r):(this.first=r,this.last=r),this.size++,r},t.prototype.addManyAfter=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i,i.next):this.addManyTail(t)},t.prototype.addManyBefore=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i.previous,i):this.addManyHead(t)},t.prototype.addManyByIndex=function(t,r){if(r<0&&(r+=this.size),r<=0)return this.addManyHead(t);if(r>=this.size)return this.addManyTail(t);var e=this.get(r);return this.attachMany(t,e.previous,e)},t.prototype.addManyHead=function(t){var r=this;return t.reduceRight((function(t,e){return t.unshift(r.addHead(e)),t}),[])},t.prototype.addManyTail=function(t){var r=this;return t.map((function(t){return r.addTail(t)}))},t.prototype.drop=function(){var t=this;return{byIndex:function(r){return t.dropByIndex(r)},byValue:function(){for(var r=[],e=0;e=this.size)return[];t=Math.min(t,this.size-r);for(var e=[];t--;){var n=this.get(r);e.push(this.detach(n))}return e},t.prototype.dropManyHead=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.unshift(this.dropHead());return r},t.prototype.dropManyTail=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.push(this.dropTail());return r},t.prototype.find=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return r},t.prototype.findIndex=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return e;return-1},t.prototype.forEach=function(t){for(var r=this.first,e=0;r;e++,r=r.next)t(r,e,this)},t.prototype.get=function(t){return this.find((function(r,e){return t===e}))},t.prototype.indexOf=function(t,e){return void 0===e&&(e=r),this.findIndex((function(r){return e(r.value,t)}))},t.prototype.toArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r.value})),t},t.prototype.toNodeArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r})),t},t.prototype.toString=function(t){return void 0===t&&(t=JSON.stringify),this.toArray().map((function(r){return t(r)})).join(" <-> ")},t.prototype[Symbol.iterator]=function(){var t;return e(this,(function(r){switch(r.label){case 0:t=this.first,0,r.label=1;case 1:return t?[4,t.value]:[3,4];case 2:r.sent(),r.label=3;case 3:return t=t.next,[3,1];case 4:return[2]}}))},t}();t.LinkedList=a,t.ListNode=o,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=abp-utils.umd.min.js.map \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map new file mode 100644 index 00000000..529ba4c4 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../projects/utils/src/lib/linked-list.ts"],"names":["__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","done","value","pop","length","push","e","step","Object","create","__read","o","m","r","i","ar","error","__spread","arguments","concat","LinkedList","size","defineProperty","prototype","first","last","attach","previousNode","nextNode","addHead","addTail","node","ListNode","previous","attachMany","values","addManyHead","addManyTail","list","toNodeArray","detach","dropTail","dropHead","add","_this","after","params","_i","_a","addAfter","apply","before","addBefore","byIndex","position","addByIndex","head","tail","addMany","addManyAfter","addManyBefore","addManyByIndex","previousValue","compareFn","compare","find","nextValue","get","reduceRight","nodes","unshift","map","drop","dropByIndex","byValue","dropByValue","byValueAll","dropByValueAll","dropMany","count","dropManyByIndex","dropManyHead","dropManyTail","current","undefined","findIndex","dropped","Math","max","min","predicate","forEach","iteratorFn","index","indexOf","toArray","array","Array","toString","mapperFn","JSON","stringify","join"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\r\n\r\nimport compare from 'just-compare';\r\n\r\nexport class ListNode {\r\n next: ListNode | undefined;\r\n previous: ListNode | undefined;\r\n constructor(public readonly value: T) {}\r\n}\r\n\r\nexport class LinkedList {\r\n private first: ListNode | undefined;\r\n private last: ListNode | undefined;\r\n private size = 0;\r\n\r\n get head(): ListNode | undefined {\r\n return this.first;\r\n }\r\n get tail(): ListNode | undefined {\r\n return this.last;\r\n }\r\n get length(): number {\r\n return this.size;\r\n }\r\n\r\n private attach(\r\n value: T,\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode {\r\n if (!previousNode) return this.addHead(value);\r\n\r\n if (!nextNode) return this.addTail(value);\r\n\r\n const node = new ListNode(value);\r\n node.previous = previousNode;\r\n previousNode.next = node;\r\n node.next = nextNode;\r\n nextNode.previous = node;\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n private attachMany(\r\n values: T[],\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode[] {\r\n if (!values.length) return [];\r\n\r\n if (!previousNode) return this.addManyHead(values);\r\n\r\n if (!nextNode) return this.addManyTail(values);\r\n\r\n const list = new LinkedList();\r\n list.addManyTail(values);\r\n list.first!.previous = previousNode;\r\n previousNode.next = list.first;\r\n list.last!.next = nextNode;\r\n nextNode.previous = list.last;\r\n\r\n this.size += values.length;\r\n\r\n return list.toNodeArray();\r\n }\r\n\r\n private detach(node: ListNode) {\r\n if (!node.previous) return this.dropHead();\r\n\r\n if (!node.next) return this.dropTail();\r\n\r\n node.previous.next = node.next;\r\n node.next.previous = node.previous;\r\n\r\n this.size--;\r\n\r\n return node;\r\n }\r\n\r\n add(value: T) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addAfter.call(this, value, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addBefore.call(this, value, ...params),\r\n byIndex: (position: number) => this.addByIndex(value, position),\r\n head: () => this.addHead(value),\r\n tail: () => this.addTail(value),\r\n };\r\n }\r\n\r\n addMany(values: T[]) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyAfter.call(this, values, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyBefore.call(this, values, ...params),\r\n byIndex: (position: number) => this.addManyByIndex(values, position),\r\n head: () => this.addManyHead(values),\r\n tail: () => this.addManyTail(values),\r\n };\r\n }\r\n\r\n addAfter(value: T, previousValue: T): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\r\n }\r\n\r\n addBefore(value: T, nextValue: T): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\r\n }\r\n\r\n addByIndex(value: T, position: number): ListNode {\r\n if (position < 0) position += this.size;\r\n else if (position >= this.size) return this.addTail(value);\r\n\r\n if (position <= 0) return this.addHead(value);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attach(value, next.previous, next);\r\n }\r\n\r\n addHead(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n node.next = this.first;\r\n\r\n if (this.first) this.first.previous = node;\r\n else this.last = node;\r\n\r\n this.first = node;\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addTail(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n if (this.first) {\r\n node.previous = this.last;\r\n this.last!.next = node;\r\n this.last = node;\r\n } else {\r\n this.first = node;\r\n this.last = node;\r\n }\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addManyAfter(values: T[], previousValue: T): ListNode[];\r\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyAfter(\r\n values: T[],\r\n previousValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\r\n }\r\n\r\n addManyBefore(values: T[], nextValue: T): ListNode[];\r\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyBefore(\r\n values: T[],\r\n nextValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\r\n }\r\n\r\n addManyByIndex(values: T[], position: number): ListNode[] {\r\n if (position < 0) position += this.size;\r\n\r\n if (position <= 0) return this.addManyHead(values);\r\n\r\n if (position >= this.size) return this.addManyTail(values);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attachMany(values, next.previous, next);\r\n }\r\n\r\n addManyHead(values: T[]): ListNode[] {\r\n return values.reduceRight[]>((nodes, value) => {\r\n nodes.unshift(this.addHead(value));\r\n return nodes;\r\n }, []);\r\n }\r\n\r\n addManyTail(values: T[]): ListNode[] {\r\n return values.map(value => this.addTail(value));\r\n }\r\n\r\n drop() {\r\n return {\r\n byIndex: (position: number) => this.dropByIndex(position),\r\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValue.apply(this, params),\r\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValueAll.apply(this, params),\r\n head: () => this.dropHead(),\r\n tail: () => this.dropTail(),\r\n };\r\n }\r\n\r\n dropMany(count: number) {\r\n return {\r\n byIndex: (position: number) => this.dropManyByIndex(count, position),\r\n head: () => this.dropManyHead(count),\r\n tail: () => this.dropManyTail(count),\r\n };\r\n }\r\n\r\n dropByIndex(position: number): ListNode | undefined {\r\n if (position < 0) position += this.size;\r\n\r\n const current = this.get(position);\r\n\r\n return current ? this.detach(current) : undefined;\r\n }\r\n\r\n dropByValue(value: T): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\r\n const position = this.findIndex(node => compareFn(node.value, value));\r\n\r\n return position < 0 ? undefined : this.dropByIndex(position);\r\n }\r\n\r\n dropByValueAll(value: T): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\r\n const dropped: ListNode[] = [];\r\n\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (compareFn(current.value, value)) {\r\n dropped.push(this.dropByIndex(position - dropped.length)!);\r\n }\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropHead(): ListNode | undefined {\r\n const head = this.first;\r\n\r\n if (head) {\r\n this.first = head.next;\r\n\r\n if (this.first) this.first.previous = undefined;\r\n else this.last = undefined;\r\n\r\n this.size--;\r\n\r\n return head;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropTail(): ListNode | undefined {\r\n const tail = this.last;\r\n\r\n if (tail) {\r\n this.last = tail.previous;\r\n\r\n if (this.last) this.last.next = undefined;\r\n else this.first = undefined;\r\n\r\n this.size--;\r\n\r\n return tail;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropManyByIndex(count: number, position: number): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n if (position < 0) position = Math.max(position + this.size, 0);\r\n else if (position >= this.size) return [];\r\n\r\n count = Math.min(count, this.size - position);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) {\r\n const current = this.get(position);\r\n dropped.push(this.detach(current!)!);\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyHead(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.unshift(this.dropHead()!);\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyTail(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.push(this.dropTail()!);\r\n\r\n return dropped;\r\n }\r\n\r\n find(predicate: ListIteratorFn): ListNode | undefined {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return current;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n findIndex(predicate: ListIteratorFn): number {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return position;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n forEach(iteratorFn: ListIteratorFn) {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n iteratorFn(node, position, this);\r\n }\r\n }\r\n\r\n get(position: number): ListNode | undefined {\r\n return this.find((_, index) => position === index);\r\n }\r\n\r\n indexOf(value: T): number;\r\n indexOf(value: any, compareFn: ListComparisonFn): number;\r\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\r\n return this.findIndex(node => compareFn(node.value, value));\r\n }\r\n\r\n toArray(): T[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node.value));\r\n\r\n return array;\r\n }\r\n\r\n toNodeArray(): ListNode[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node));\r\n\r\n return array;\r\n }\r\n\r\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\r\n return this.toArray()\r\n .map(value => mapperFn(value))\r\n .join(' <-> ');\r\n }\r\n\r\n // Cannot use Generator type because of ng-packagr\r\n *[Symbol.iterator](): any {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n yield node.value;\r\n }\r\n }\r\n}\r\n\r\nexport type ListMapperFn = (value: T) => any;\r\n\r\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\r\n\r\nexport type ListIteratorFn = (\r\n node: ListNode,\r\n index?: number,\r\n list?: LinkedList,\r\n) => R;\r\n"]} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map new file mode 100644 index 00000000..7e08a210 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["less/datepicker.less","build/build.less"],"names":[],"mappings":"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","sourcesContent":[".datepicker {\n\tpadding: 4px;\n\t.border-radius(@baseBorderRadius);\n\t&-inline {\n\t\twidth: 220px;\n\t}\n\tdirection: ltr;\n\t&-rtl {\n\t\tdirection: rtl;\n\t\t&.dropdown-menu { left: auto; }\n\t\ttable tr td span {\n\t\t\tfloat: right;\n\t\t}\n\t}\n\t&-dropdown {\n\t\ttop: 0;\n\t\tleft: 0;\n\t\t&:before {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 7px solid transparent;\n\t\t\tborder-right: 7px solid transparent;\n\t\t\tborder-bottom: 7px solid @grayLight;\n\t\t\tborder-top: 0;\n\t\t\tborder-bottom-color: rgba(0,0,0,.2);\n\t\t\tposition: absolute;\n\t\t}\n\t\t&:after {\n\t\t\tcontent: '';\n\t\t\tdisplay: inline-block;\n\t\t\tborder-left: 6px solid transparent;\n\t\t\tborder-right: 6px solid transparent;\n\t\t\tborder-bottom: 6px solid @white;\n\t\t\tborder-top: 0;\n\t\t\tposition: absolute;\n\t\t}\n\t\t&.datepicker-orient-left:before { left: 6px; }\n\t\t&.datepicker-orient-left:after { left: 7px; }\n\t\t&.datepicker-orient-right:before { right: 6px; }\n\t\t&.datepicker-orient-right:after { right: 7px; }\n\t\t&.datepicker-orient-bottom:before { top: -7px; }\n\t\t&.datepicker-orient-bottom:after { top: -6px; }\n\t\t&.datepicker-orient-top:before {\n\t\t\tbottom: -7px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 7px solid @grayLight;\n\t\t}\n\t\t&.datepicker-orient-top:after {\n\t\t\tbottom: -6px;\n\t\t\tborder-bottom: 0;\n\t\t\tborder-top: 6px solid @white;\n\t\t}\n\t}\n\ttable {\n\t\tmargin: 0;\n\t\t-webkit-touch-callout: none;\n\t\t-webkit-user-select: none;\n\t\t-khtml-user-select: none;\n\t\t-moz-user-select: none;\n\t\t-ms-user-select: none;\n\t\tuser-select: none;\n\t}\n\ttd, th {\n\t\ttext-align: center;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\t.border-radius(4px);\n\n\t\tborder: none;\n\t}\n\t// Inline display inside a table presents some problems with\n\t// border and background colors.\n\t.table-striped & table tr {\n\t\ttd, th {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\ttable tr td {\n\t\t&.day:hover,\n\t\t&.day.focused {\n\t\t\tbackground: @grayLighter;\n\t\t\tcursor: pointer;\n\t\t}\n\t\t&.old,\n\t\t&.new {\n\t\t\tcolor: @grayLight;\n\t\t}\n\t\t&.disabled,\n\t\t&.disabled:hover {\n\t\t\tbackground: none;\n\t\t\tcolor: @grayLight;\n\t\t\tcursor: default;\n\t\t}\n\t\t&.highlighted {\n\t\t\tbackground: @infoBackground;\n\t\t\tborder-radius: 0;\n\t\t}\n\t\t&.today,\n\t\t&.today:hover,\n\t\t&.today.disabled,\n\t\t&.today.disabled:hover {\n\t\t\t@todayBackground: lighten(@orange, 30%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today:hover:hover { // Thank bootstrap 2.0 for this selector...\n\t\t\t// TODO: Bump min BS to 2.1, use @textColor in buttonBackground above\n\t\t\tcolor: #000;\n\t\t}\n\t\t&.today.active:hover {\n\t\t\tcolor: #fff;\n\t\t}\n\t\t&.range,\n\t\t&.range:hover,\n\t\t&.range.disabled,\n\t\t&.range.disabled:hover {\n\t\t\tbackground: @grayLighter;\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.range.today,\n\t\t&.range.today:hover,\n\t\t&.range.today.disabled,\n\t\t&.range.today.disabled:hover {\n\t\t\t@todayBackground: mix(@orange, @grayLighter, 50%);\n\t\t\t.buttonBackground(@todayBackground, spin(@todayBackground, 20));\n\t\t\t.border-radius(0);\n\t\t}\n\t\t&.selected,\n\t\t&.selected:hover,\n\t\t&.selected.disabled,\n\t\t&.selected.disabled:hover {\n\t\t\t.buttonBackground(lighten(@grayLight, 10), darken(@grayLight, 10));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\t&.active,\n\t\t&.active:hover,\n\t\t&.active.disabled,\n\t\t&.active.disabled:hover {\n\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\tcolor: #fff;\n\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t}\n\t\tspan {\n\t\t\tdisplay: block;\n\t\t\twidth: 23%;\n\t\t\theight: 54px;\n\t\t\tline-height: 54px;\n\t\t\tfloat: left;\n\t\t\tmargin: 1%;\n\t\t\tcursor: pointer;\n\t\t\t.border-radius(4px);\n\t\t\t&:hover,\n\t\t\t&.focused {\n\t\t\t\tbackground: @grayLighter;\n\t\t\t}\n\t\t\t&.disabled,\n\t\t\t&.disabled:hover {\n\t\t\t\tbackground: none;\n\t\t\t\tcolor: @grayLight;\n\t\t\t\tcursor: default;\n\t\t\t}\n\t\t\t&.active,\n\t\t\t&.active:hover,\n\t\t\t&.active.disabled,\n\t\t\t&.active.disabled:hover {\n\t\t\t\t.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));\n\t\t\t\tcolor: #fff;\n\t\t\t\ttext-shadow: 0 -1px 0 rgba(0,0,0,.25);\n\t\t\t}\n\t\t\t&.old,\n\t\t\t&.new {\n\t\t\t\tcolor: @grayLight;\n\t\t\t}\n\t\t}\n\t}\n\n\t.datepicker-switch {\n\t\twidth: 145px;\n\t}\n\n\t.datepicker-switch,\n\t.prev,\n\t.next,\n\ttfoot tr th {\n\t\tcursor: pointer;\n\t\t&:hover {\n\t\t\tbackground: @grayLighter;\n\t\t}\n\t}\n\n\t.prev, .next {\n\t\t&.disabled {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// Basic styling for calendar-week cells\n\t.cw {\n\t\tfont-size: 10px;\n\t\twidth: 12px;\n\t\tpadding: 0 2px 0 5px;\n\t\tvertical-align: middle;\n\t}\n}\n.input-append,\n.input-prepend {\n\t&.date .add-on {\n\t\tcursor: pointer;\n\n\t\ti {\n\t\t\tmargin-top: 3px;\n\t\t}\n\t}\n}\n.input-daterange {\n\tinput {\n\t\ttext-align:center;\n\t}\n\tinput:first-child {\n\t\t.border-radius(3px 0 0 3px);\n\t}\n\tinput:last-child {\n\t\t.border-radius(0 3px 3px 0);\n\t}\n\t.add-on {\n\t\tdisplay: inline-block;\n\t\twidth: auto;\n\t\tmin-width: 16px;\n\t\theight: @baseLineHeight;\n\t\tpadding: 4px 5px;\n\t\tfont-weight: normal;\n\t\tline-height: @baseLineHeight;\n\t\ttext-align: center;\n\t\ttext-shadow: 0 1px 0 @white;\n\t\tvertical-align: middle;\n\t\tbackground-color: @grayLighter;\n\t\tborder: 1px solid #ccc;\n\t\tmargin-left: -5px;\n\t\tmargin-right: -5px;\n\t}\n}\n","// Datepicker .less buildfile. Includes select mixins/variables from bootstrap\n// and imports the included datepicker.less to output a minimal datepicker.css\n//\n// Usage:\n// lessc build.less datepicker.css\n//\n// Variables and mixins copied from bootstrap 2.0.2\n\n// Variables\n@grayLight: #999;\n@grayLighter: #eee;\n@white: #fff;\n@linkColor: #08c;\n@btnPrimaryBackground: @linkColor;\n@orange: #f89406;\n@infoBackground: #d9edf7;\n@baseLineHeight: 18px;\n@baseBorderRadius: 4px;\n\n// Mixins\n\n// Border Radius\n.border-radius(@radius: 5px) {\n -webkit-border-radius: @radius;\n -moz-border-radius: @radius;\n border-radius: @radius;\n}\n\n// Button backgrounds\n.buttonBackground(@startColor, @endColor) {\n .gradientBar(@startColor, @endColor);\n .reset-filter();\n &:hover, &:active, &.active, &.disabled, &[disabled] {\n background-color: @endColor;\n }\n &:active,\n &.active {\n background-color: darken(@endColor, 10%) e(\"\\9\");\n }\n}\n\n// Reset filters for IE\n.reset-filter() {\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n}\n\n// Gradient Bar Colors for buttons and alerts\n.gradientBar(@primaryColor, @secondaryColor) {\n #gradient > .vertical(@primaryColor, @secondaryColor);\n border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);\n border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);\n}\n\n// Gradients\n#gradient {\n .vertical(@startColor: #555, @endColor: #333) {\n background-color: mix(@startColor, @endColor, 60%);\n background-image: -moz-linear-gradient(to bottom, @startColor, @endColor); // FF 3.6+\n background-image: -ms-linear-gradient(to bottom, @startColor, @endColor); // IE10\n background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+\n background-image: -webkit-linear-gradient(to bottom, @startColor, @endColor); // Safari 5.1+, Chrome 10+\n background-image: -o-linear-gradient(to bottom, @startColor, @endColor); // Opera 11.10\n background-image: linear-gradient(to bottom, @startColor, @endColor); // The standard\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",@startColor,@endColor)); // IE9 and down\n }\n}\n\n@import \"../less/datepicker.less\";\n"]} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css new file mode 100644 index 00000000..9d39187a --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.css @@ -0,0 +1,7 @@ +/*! + * Datepicker for Bootstrap v1.10.0 (https://github.com/uxsolutions/bootstrap-datepicker) + * + * Licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0) + */ + +.datepicker{padding:4px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;direction:ltr}.datepicker-inline{width:220px}.datepicker-rtl{direction:rtl}.datepicker-rtl.dropdown-menu{left:auto}.datepicker-rtl table tr td span{float:right}.datepicker-dropdown{top:0;left:0}.datepicker-dropdown:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #999;border-top:0;border-bottom-color:rgba(0,0,0,.2);position:absolute}.datepicker-dropdown:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;border-top:0;position:absolute}.datepicker-dropdown.datepicker-orient-left:before{left:6px}.datepicker-dropdown.datepicker-orient-left:after{left:7px}.datepicker-dropdown.datepicker-orient-right:before{right:6px}.datepicker-dropdown.datepicker-orient-right:after{right:7px}.datepicker-dropdown.datepicker-orient-bottom:before{top:-7px}.datepicker-dropdown.datepicker-orient-bottom:after{top:-6px}.datepicker-dropdown.datepicker-orient-top:before{bottom:-7px;border-bottom:0;border-top:7px solid #999}.datepicker-dropdown.datepicker-orient-top:after{bottom:-6px;border-bottom:0;border-top:6px solid #fff}.datepicker table{margin:0;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datepicker td,.datepicker th{text-align:center;width:20px;height:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;border:none}.table-striped .datepicker table tr td,.table-striped .datepicker table tr th{background-color:transparent}.datepicker table tr td.day.focused,.datepicker table tr td.day:hover{background:#eee;cursor:pointer}.datepicker table tr td.new,.datepicker table tr td.old{color:#999}.datepicker table tr td.disabled,.datepicker table tr td.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td.highlighted{background:#d9edf7;border-radius:0}.datepicker table tr td.today,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today:hover{background-color:#fde19a;background-image:-moz-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-ms-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdd49a),to(#fdf59a));background-image:-webkit-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:-o-linear-gradient(to bottom,#fdd49a,#fdf59a);background-image:linear-gradient(to bottom,#fdd49a,#fdf59a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);border-color:#fdf59a #fdf59a #fbed50;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#000}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled.disabled,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover.disabled,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today.disabled:hover:hover,.datepicker table tr td.today.disabled:hover[disabled],.datepicker table tr td.today.disabled[disabled],.datepicker table tr td.today:active,.datepicker table tr td.today:hover,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover.disabled,.datepicker table tr td.today:hover:active,.datepicker table tr td.today:hover:hover,.datepicker table tr td.today:hover[disabled],.datepicker table tr td.today[disabled]{background-color:#fdf59a}.datepicker table tr td.today.active,.datepicker table tr td.today.disabled.active,.datepicker table tr td.today.disabled:active,.datepicker table tr td.today.disabled:hover.active,.datepicker table tr td.today.disabled:hover:active,.datepicker table tr td.today:active,.datepicker table tr td.today:hover.active,.datepicker table tr td.today:hover:active{background-color:#fbf069\9}.datepicker table tr td.today:hover:hover{color:#000}.datepicker table tr td.today.active:hover{color:#fff}.datepicker table tr td.range,.datepicker table tr td.range.disabled,.datepicker table tr td.range.disabled:hover,.datepicker table tr td.range:hover{background:#eee;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today:hover{background-color:#f3d17a;background-image:-moz-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-ms-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f3c17a),to(#f3e97a));background-image:-webkit-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:-o-linear-gradient(to bottom,#f3c17a,#f3e97a);background-image:linear-gradient(to bottom,#f3c17a,#f3e97a);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);border-color:#f3e97a #f3e97a #edde34;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled.disabled,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover.disabled,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today.disabled:hover:hover,.datepicker table tr td.range.today.disabled:hover[disabled],.datepicker table tr td.range.today.disabled[disabled],.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover.disabled,.datepicker table tr td.range.today:hover:active,.datepicker table tr td.range.today:hover:hover,.datepicker table tr td.range.today:hover[disabled],.datepicker table tr td.range.today[disabled]{background-color:#f3e97a}.datepicker table tr td.range.today.active,.datepicker table tr td.range.today.disabled.active,.datepicker table tr td.range.today.disabled:active,.datepicker table tr td.range.today.disabled:hover.active,.datepicker table tr td.range.today.disabled:hover:active,.datepicker table tr td.range.today:active,.datepicker table tr td.range.today:hover.active,.datepicker table tr td.range.today:hover:active{background-color:#efe24b\9}.datepicker table tr td.selected,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected:hover{background-color:#9e9e9e;background-image:-moz-linear-gradient(to bottom,#b3b3b3,grey);background-image:-ms-linear-gradient(to bottom,#b3b3b3,grey);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b3b3b3),to(grey));background-image:-webkit-linear-gradient(to bottom,#b3b3b3,grey);background-image:-o-linear-gradient(to bottom,#b3b3b3,grey);background-image:linear-gradient(to bottom,#b3b3b3,grey);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);border-color:grey grey #595959;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled.disabled,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover.disabled,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected.disabled:hover:hover,.datepicker table tr td.selected.disabled:hover[disabled],.datepicker table tr td.selected.disabled[disabled],.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover.disabled,.datepicker table tr td.selected:hover:active,.datepicker table tr td.selected:hover:hover,.datepicker table tr td.selected:hover[disabled],.datepicker table tr td.selected[disabled]{background-color:grey}.datepicker table tr td.selected.active,.datepicker table tr td.selected.disabled.active,.datepicker table tr td.selected.disabled:active,.datepicker table tr td.selected.disabled:hover.active,.datepicker table tr td.selected.disabled:hover:active,.datepicker table tr td.selected:active,.datepicker table tr td.selected:hover.active,.datepicker table tr td.selected:hover:active{background-color:#666\9}.datepicker table tr td.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled.disabled,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover.disabled,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active.disabled:hover:hover,.datepicker table tr td.active.disabled:hover[disabled],.datepicker table tr td.active.disabled[disabled],.datepicker table tr td.active:active,.datepicker table tr td.active:hover,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover.disabled,.datepicker table tr td.active:hover:active,.datepicker table tr td.active:hover:hover,.datepicker table tr td.active:hover[disabled],.datepicker table tr td.active[disabled]{background-color:#04c}.datepicker table tr td.active.active,.datepicker table tr td.active.disabled.active,.datepicker table tr td.active.disabled:active,.datepicker table tr td.active.disabled:hover.active,.datepicker table tr td.active.disabled:hover:active,.datepicker table tr td.active:active,.datepicker table tr td.active:hover.active,.datepicker table tr td.active:hover:active{background-color:#039\9}.datepicker table tr td span{display:block;width:23%;height:54px;line-height:54px;float:left;margin:1%;cursor:pointer;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.datepicker table tr td span.focused,.datepicker table tr td span:hover{background:#eee}.datepicker table tr td span.disabled,.datepicker table tr td span.disabled:hover{background:0 0;color:#999;cursor:default}.datepicker table tr td span.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active:hover{background-color:#006dcc;background-image:-moz-linear-gradient(to bottom,#08c,#04c);background-image:-ms-linear-gradient(to bottom,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(to bottom,#08c,#04c);background-image:-o-linear-gradient(to bottom,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0);border-color:#04c #04c #002a80;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled.disabled,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover.disabled,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active.disabled:hover:hover,.datepicker table tr td span.active.disabled:hover[disabled],.datepicker table tr td span.active.disabled[disabled],.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover.disabled,.datepicker table tr td span.active:hover:active,.datepicker table tr td span.active:hover:hover,.datepicker table tr td span.active:hover[disabled],.datepicker table tr td span.active[disabled]{background-color:#04c}.datepicker table tr td span.active.active,.datepicker table tr td span.active.disabled.active,.datepicker table tr td span.active.disabled:active,.datepicker table tr td span.active.disabled:hover.active,.datepicker table tr td span.active.disabled:hover:active,.datepicker table tr td span.active:active,.datepicker table tr td span.active:hover.active,.datepicker table tr td span.active:hover:active{background-color:#039\9}.datepicker table tr td span.new,.datepicker table tr td span.old{color:#999}.datepicker .datepicker-switch{width:145px}.datepicker .datepicker-switch,.datepicker .next,.datepicker .prev,.datepicker tfoot tr th{cursor:pointer}.datepicker .datepicker-switch:hover,.datepicker .next:hover,.datepicker .prev:hover,.datepicker tfoot tr th:hover{background:#eee}.datepicker .next.disabled,.datepicker .prev.disabled{visibility:hidden}.datepicker .cw{font-size:10px;width:12px;padding:0 2px 0 5px;vertical-align:middle}.input-append.date .add-on,.input-prepend.date .add-on{cursor:pointer}.input-append.date .add-on i,.input-prepend.date .add-on i{margin-top:3px}.input-daterange input{text-align:center}.input-daterange input:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-daterange input:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-daterange .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:400;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc;margin-left:-5px;margin-right:-5px} \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js new file mode 100644 index 00000000..017a3de6 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/bootstrap-datepicker.min.js @@ -0,0 +1,8 @@ +/*! + * Datepicker for Bootstrap v1.10.0 (https://github.com/uxsolutions/bootstrap-datepicker) + * + * Licensed under the Apache License v2.0 (https://www.apache.org/licenses/LICENSE-2.0) + */ + +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(c,d){return function(){return d!==b&&a.fn.datepicker.deprecated(d),this[c].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;c]/g)||[]).length<=0)return!0;return a(c).length>0}catch(a){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView),e.minViewMode=this._resolveViewName(e.minViewMode),e.maxViewMode=this._resolveViewName(e.maxViewMode),e.startView=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,e.startView)),!0!==e.multidate&&(e.multidate=Number(e.multidate)||!1,!1!==e.multidate&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-1/0&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-1/0),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=this._resolveDaysOfWeek(e.daysOfWeekDisabled||[]),e.daysOfWeekHighlighted=this._resolveDaysOfWeek(e.daysOfWeekHighlighted||[]),e.datesDisabled=e.datesDisabled||[],Array.isArray(e.datesDisabled)||(e.datesDisabled=e.datesDisabled.split(",")),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate instanceof Date||"string"==typeof e.defaultViewDate)e.defaultViewDate=r.parseDate(e.defaultViewDate,g,e.language,e.assumeNearbyYear);else if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_applyEvents:function(a){for(var c,d,e,f=0;fe?(this.picker.addClass("datepicker-orient-right"),m+=l-b):this.o.rtl?this.picker.addClass("datepicker-orient-right"):this.picker.addClass("datepicker-orient-left");var o,p=this.o.orientation.y;if("auto"===p&&(o=-f+n-c,p=o<0?"bottom":"top"),this.picker.addClass("datepicker-orient-"+p),"top"===p?n-=c+parseInt(this.picker.css("padding-top")):n+=k,this.o.rtl){var q=e-(m+l);this.picker.css({top:n,right:q,zIndex:i})}else this.picker.css({top:n,left:m,zIndex:i});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.o.updateViewDate&&(this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDatethis.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate),d?(this.setValue(),this.element.change()):this.dates.length&&String(b)!==String(this.dates)&&d&&(this._trigger("changeDate"),this.element.change()),!this.dates.length&&b.length&&(this._trigger("clearDate"),this.element.change()),this.fill(),this},fillDow:function(){if(this.o.showWeekDays){var b=this.o.weekStart,c="";for(this.o.calendarWeeks&&(c+=' ');b";c+="",this.picker.find(".datepicker-days thead").append(c)}},fillMonths:function(){for(var a,b=this._utc_to_local(this.viewDate),c="",d=0;d<12;d++)a=b&&b.getMonth()===d?" focused":"",c+=''+q[this.o.language].monthsShort[d]+"";this.picker.find(".datepicker-months td").html(c)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],f=this.viewDate.getUTCFullYear(),g=this.viewDate.getUTCMonth(),h=d();return b.getUTCFullYear()f||b.getUTCFullYear()===f&&b.getUTCMonth()>g)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&e(b,h)&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)&&c.push("highlighted"),this.range&&(b>this.range[0]&&bh)&&j.push("disabled"),t===r&&j.push("focused"),i!==a.noop&&(l=i(new Date(t,0,1)),l===b?l={}:"boolean"==typeof l?l={enabled:l}:"string"==typeof l&&(l={classes:l}),!1===l.enabled&&j.push("disabled"),l.classes&&(j=j.concat(l.classes.split(/\s+/))),l.tooltip&&(k=l.tooltip)),m+='"+t+"";o.find(".datepicker-switch").text(p+"-"+q),o.find("td").html(m)},fill:function(){var e,f,g=new Date(this.viewDate),h=g.getUTCFullYear(),i=g.getUTCMonth(),j=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,k=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,m=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,n=q[this.o.language].today||q.en.today||"",o=q[this.o.language].clear||q.en.clear||"",p=q[this.o.language].titleFormat||q.en.titleFormat,s=d(),t=(!0===this.o.todayBtn||"linked"===this.o.todayBtn)&&s>=this.o.startDate&&s<=this.o.endDate&&!this.weekOfDateIsDisabled(s);if(!isNaN(h)&&!isNaN(i)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(g,p,this.o.language)),this.picker.find("tfoot .today").text(n).css("display",t?"table-cell":"none"),this.picker.find("tfoot .clear").text(o).css("display",!0===this.o.clearBtn?"table-cell":"none"),this.picker.find("thead .datepicker-title").text(this.o.title).css("display","string"==typeof this.o.title&&""!==this.o.title?"table-cell":"none"),this.updateNavArrows(),this.fillMonths();var u=c(h,i,0),v=u.getUTCDate();u.setUTCDate(v-(u.getUTCDay()-this.o.weekStart+7)%7);var w=new Date(u);u.getUTCFullYear()<100&&w.setUTCFullYear(u.getUTCFullYear()),w.setUTCDate(w.getUTCDate()+42),w=w.valueOf();for(var x,y,z=[];u.valueOf()"),this.o.calendarWeeks)){var A=new Date(+u+(this.o.weekStart-x-7)%7*864e5),B=new Date(Number(A)+(11-A.getUTCDay())%7*864e5),C=new Date(Number(C=c(B.getUTCFullYear(),0,1))+(11-C.getUTCDay())%7*864e5),D=(B-C)/864e5/7+1;z.push(''+D+"")}y=this.getClassNames(u),y.push("day");var E=u.getUTCDate();this.o.beforeShowDay!==a.noop&&(f=this.o.beforeShowDay(this._utc_to_local(u)),f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1===f.enabled&&y.push("disabled"),f.classes&&(y=y.concat(f.classes.split(/\s+/))),f.tooltip&&(e=f.tooltip),f.content&&(E=f.content)),y="function"==typeof a.uniqueSort?a.uniqueSort(y):a.unique(y),z.push(''+E+""),e=null,x===this.o.weekEnd&&z.push(""),u.setUTCDate(u.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").html(z.join(""));var F=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",G=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?F:h).end().find("tbody span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===h&&G.eq(b.getUTCMonth()).addClass("active")}),(hl)&&G.addClass("disabled"),h===j&&G.slice(0,k).addClass("disabled"),h===l&&G.slice(m+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var H=this;a.each(G,function(c,d){var e=new Date(h,c,1),f=H.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),!1!==f.enabled||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,h,j,l,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,h,j,l,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,h,j,l,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a,b,c=new Date(this.viewDate),d=c.getUTCFullYear(),e=c.getUTCMonth(),f=this.o.startDate!==-1/0?this.o.startDate.getUTCFullYear():-1/0,g=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,h=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,i=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,j=1;switch(this.viewMode){case 4:j*=10;case 3:j*=10;case 2:j*=10;case 1:a=Math.floor(d/j)*j<=f,b=Math.floor(d/j)*j+j>h;break;case 0:a=d<=f&&e<=g,b=d>=h&&e>=i}this.picker.find(".prev").toggleClass("disabled",a),this.picker.find(".next").toggleClass("disabled",b)}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h;e=a(b.target),e.hasClass("datepicker-switch")&&this.viewMode!==this.o.maxViewMode&&this.setViewMode(this.viewMode+1),e.hasClass("today")&&!e.hasClass("day")&&(this.setViewMode(0),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("month")||e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),f=1,1===this.viewMode?(h=e.parent().find("span").index(e),g=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(h)):(h=0,g=Number(e.text()),this.viewDate.setUTCFullYear(g)),this._trigger(r.viewModes[this.viewMode-1].e,this.viewDate),this.viewMode===this.o.minViewMode?this._setDate(c(g,h,f)):(this.setViewMode(this.viewMode-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&this._focused_from.focus(),delete this._focused_from},dayCellClick:function(b){var c=a(b.currentTarget),d=c.data("date"),e=new Date(d);this.o.updateViewDate&&(e.getUTCFullYear()!==this.viewDate.getUTCFullYear()&&this._trigger("changeYear",this.viewDate),e.getUTCMonth()!==this.viewDate.getUTCMonth()&&this._trigger("changeMonth",this.viewDate)),this._setDate(e)},navArrowsClick:function(b){var c=a(b.currentTarget),d=c.hasClass("prev")?-1:1;0!==this.viewMode&&(d*=12*r.viewModes[this.viewMode].navStep),this.viewDate=this.moveMonth(this.viewDate,d),this._trigger(r.viewModes[this.viewMode].e,this.viewDate),this.fill()},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(!0===this.o.multidate||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):!1===this.o.multidate?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),(!b&&this.o.updateViewDate||"view"===b)&&(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField.trigger("change"),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=-1===b?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),c=(c+12)%12;else{for(var j=0;j0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void(40!==a.keyCode&&27!==a.keyCode||(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"))&&this._trigger("changeYear",this.viewDate):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"))&&this._trigger("changeMonth",this.viewDate):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&(38!==a.keyCode&&40!==a.keyCode||(b*=4),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField.trigger("change"))},setViewMode:function(a){this.viewMode=a,this.picker.children("div").hide().filter(".datepicker-"+r.viewModes[this.viewMode].clsName).show(),this.updateNavArrows(),this._trigger("changeViewMode",new Date(this.viewDate))}};var l=function(b,c){a.data(b,"datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,this.keepEmptyValues=c.keepEmptyValues,delete c.keepEmptyValues,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a.data(b,"datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},clearDates:function(){a.each(this.pickers,function(a,b){b.clearDates()})},dateUpdated:function(c){if(!this.updating){this.updating=!0;var d=a.data(c.target,"datepicker");if(d!==b){var e=d.getUTCDate(),f=this.keepEmptyValues,g=a.inArray(c.target,this.inputs),h=g-1,i=g+1,j=this.inputs.length;if(-1!==g){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b!==d&&f||b.setUTCDate(e)}),e=0&&e0;)this.pickers[h--].setUTCDate(e);else if(e>this.dates[i])for(;ithis.dates[i]&&(this.pickers[i].element.val()||"").length>0;)this.pickers[i++].setUTCDate(e);this.updateDates(),delete this.updating}}}},destroy:function(){a.map(this.pickers,function(a){a.destroy()}),a(this.inputs).off("changeDate",this.dateUpdated),delete this.element.data().datepicker},remove:f("destroy","Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead")};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",isInline:null,keepEmptyValues:!1,keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,updateViewDate:!0,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"},showWeekDays:!0},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={viewModes:[{names:["days","month"],clsName:"days",e:"changeMonth"},{names:["months","year"],clsName:"months",e:"changeYear",navStep:1},{names:["years","decade"],clsName:"years",e:"changeDecade",navStep:10},{names:["decades","century"],clsName:"decades",e:"changeCentury",navStep:100},{names:["centuries","millennium"],clsName:"centuries",e:"changeMillennium",navStep:1e3}],validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,e,f,g){function h(a,b){return!0===b&&(b=10),a<100&&(a+=2e3)>(new Date).getFullYear()+b&&(a-=100),a}function i(){var a=this.slice(0,j[n].length),b=j[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!c)return b;if(c instanceof Date)return c;if("string"==typeof e&&(e=r.parseFormat(e)),e.toValue)return e.toValue(c,e,f);var j,l,m,n,o,p={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},s={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(c in s&&(c=s[c]),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/i.test(c)){for(j=c.match(/([\-+]\d+)([dmwy])/gi),c=new Date,n=0;n'+o.templates.leftArrow+''+o.templates.rightArrow+"",contTemplate:'',footTemplate:''};r.template='
'+r.headTemplate+""+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+"
",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.10.0",a.fn.datepicker.deprecated=function(a){var b=window.console;b&&b.warn&&b.warn("DEPRECATED: "+a)},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js new file mode 100644 index 00000000..0aab38f3 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"},a.fn.datepicker.deprecated("This filename doesn't follow the convention, use bootstrap-datepicker.en-CA.js instead.")}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-DZ.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-DZ.min.js new file mode 100644 index 00000000..58096cf1 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-DZ.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["ar-DZ"]={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0,monthsTitle:"أشهر",clear:"إزالة",format:"yyyy/mm/dd",weekStart:0}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js new file mode 100644 index 00000000..9d70dc2f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["ar-tn"]={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويليه","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js new file mode 100644 index 00000000..ece41af7 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ar={days:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],daysShort:["أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة","سبت","أحد"],daysMin:["ح","ن","ث","ع","خ","ج","س","ح"],months:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],monthsShort:["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"],today:"هذا اليوم",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js new file mode 100644 index 00000000..aa1edbf4 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.az={days:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"],daysShort:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],daysMin:["B.","B.e","Ç.a","Ç.","C.a","C.","Ş."],months:["Yanvar","Fevral","Mart","Aprel","May","İyun","İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","İyun","İyul","Avq","Sen","Okt","Noy","Dek"],today:"Bu gün",weekStart:1,clear:"Təmizlə",monthsTitle:"Aylar"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js new file mode 100644 index 00000000..28e8b22d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bg={days:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"],daysShort:["Нед","Пон","Вто","Сря","Чет","Пет","Съб"],daysMin:["Н","П","В","С","Ч","П","С"],months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Ян","Фев","Мар","Апр","Май","Юни","Юли","Авг","Сеп","Окт","Ное","Дек"],today:"днес"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js new file mode 100644 index 00000000..e0796a3b --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bm={days:["Kari","Ntɛnɛn","Tarata","Araba","Alamisa","Juma","Sibiri"],daysShort:["Kar","Ntɛ","Tar","Ara","Ala","Jum","Sib"],daysMin:["Ka","Nt","Ta","Ar","Al","Ju","Si"],months:["Zanwuyekalo","Fewuruyekalo","Marisikalo","Awirilikalo","Mɛkalo","Zuwɛnkalo","Zuluyekalo","Utikalo","Sɛtanburukalo","ɔkutɔburukalo","Nowanburukalo","Desanburukalo"],monthsShort:["Zan","Few","Mar","Awi","Mɛ","Zuw","Zul","Uti","Sɛt","ɔku","Now","Des"],today:"Bi",monthsTitle:"Kalo",clear:"Ka jɔsi",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js new file mode 100644 index 00000000..f67b5e26 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bn={days:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysShort:["রবিবার","সোমবার","মঙ্গলবার","বুধবার","বৃহস্পতিবার","শুক্রবার","শনিবার"],daysMin:["রবি","সোম","মঙ্গল","বুধ","বৃহস্পতি","শুক্র","শনি"],months:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],monthsShort:["জানুয়ারী","ফেব্রুয়ারি","মার্চ","এপ্রিল","মে","জুন","জুলাই","অগাস্ট","সেপ্টেম্বর","অক্টোবর","নভেম্বর","ডিসেম্বর"],today:"আজ",monthsTitle:"মাস",clear:"পরিষ্কার",weekStart:0,format:"mm/dd/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js new file mode 100644 index 00000000..af3e3bd0 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.br={days:["Sul","Lun","Meurzh","Merc'her","Yaou","Gwener","Sadorn"],daysShort:["Sul","Lun","Meu.","Mer.","Yao.","Gwe.","Sad."],daysMin:["Su","L","Meu","Mer","Y","G","Sa"],months:["Genver","C'hwevrer","Meurzh","Ebrel","Mae","Mezheven","Gouere","Eost","Gwengolo","Here","Du","Kerzu"],monthsShort:["Genv.","C'hw.","Meur.","Ebre.","Mae","Mezh.","Goue.","Eost","Gwen.","Here","Du","Kerz."],today:"Hiziv",monthsTitle:"Miz",clear:"Dilemel",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js new file mode 100644 index 00000000..cfb06fde --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.bs={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Juni","Juli","August","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js new file mode 100644 index 00000000..d2135186 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ca={days:["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"],daysShort:["dg.","dl.","dt.","dc.","dj.","dv.","ds."],daysMin:["dg","dl","dt","dc","dj","dv","ds"],months:["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"],monthsShort:["gen.","febr.","març","abr.","maig","juny","jul.","ag.","set.","oct.","nov.","des."],today:"Avui",monthsTitle:"Mesos",clear:"Esborra",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js new file mode 100644 index 00000000..42dfd1a2 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.cs={days:["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"],daysShort:["Ned","Pon","Úte","Stř","Čtv","Pát","Sob"],daysMin:["Ne","Po","Út","St","Čt","Pá","So"],months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],monthsShort:["Led","Úno","Bře","Dub","Kvě","Čer","Čnc","Srp","Zář","Říj","Lis","Pro"],today:"Dnes",clear:"Vymazat",monthsTitle:"Měsíc",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js new file mode 100644 index 00000000..f85ea031 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.cy={days:["Sul","Llun","Mawrth","Mercher","Iau","Gwener","Sadwrn"],daysShort:["Sul","Llu","Maw","Mer","Iau","Gwe","Sad"],daysMin:["Su","Ll","Ma","Me","Ia","Gwe","Sa"],months:["Ionawr","Chewfror","Mawrth","Ebrill","Mai","Mehefin","Gorfennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr"],monthsShort:["Ion","Chw","Maw","Ebr","Mai","Meh","Gor","Aws","Med","Hyd","Tach","Rha"],today:"Heddiw"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js new file mode 100644 index 00000000..53c81805 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.da={days:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"],daysShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],daysMin:["Sø","Ma","Ti","On","To","Fr","Lø"],months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],today:"I Dag",weekStart:1,clear:"Nulstil",format:"dd/mm/yyyy",monthsTitle:"Måneder"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js new file mode 100644 index 00000000..c76f75d3 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["So","Mo","Di","Mi","Do","Fr","Sa"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",monthsTitle:"Monate",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js new file mode 100644 index 00000000..046e9eb5 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.el={days:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"],daysShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],daysMin:["Κυ","Δε","Τρ","Τε","Πε","Πα","Σα"],months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],monthsShort:["Ιαν","Φεβ","Μαρ","Απρ","Μάι","Ιουν","Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ"],today:"Σήμερα",clear:"Καθαρισμός",weekStart:1,format:"d/m/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js new file mode 100644 index 00000000..b8d5f41c --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-AU"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js new file mode 100644 index 00000000..7b1070f7 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-CA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js new file mode 100644 index 00000000..2966f541 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-GB"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js new file mode 100644 index 00000000..dc8f71c0 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-IE"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js new file mode 100644 index 00000000..c374a8d4 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-NZ"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"d/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-US.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-US.min.js new file mode 100644 index 00000000..126f2ded --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-US.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-US"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:0,format:"m/d/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js new file mode 100644 index 00000000..885a928c --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["en-ZA"]={days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",monthsTitle:"Months",clear:"Clear",weekStart:1,format:"yyyy/mm/d"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js new file mode 100644 index 00000000..736db021 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.eo={days:["dimanĉo","lundo","mardo","merkredo","ĵaŭdo","vendredo","sabato"],daysShort:["dim.","lun.","mar.","mer.","ĵaŭ.","ven.","sam."],daysMin:["d","l","ma","me","ĵ","v","s"],months:["januaro","februaro","marto","aprilo","majo","junio","julio","aŭgusto","septembro","oktobro","novembro","decembro"],monthsShort:["jan.","feb.","mar.","apr.","majo","jun.","jul.","aŭg.","sep.","okt.","nov.","dec."],today:"Hodiaŭ",clear:"Nuligi",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js new file mode 100644 index 00000000..f3cef5d2 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.es={days:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],daysShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],daysMin:["Do","Lu","Ma","Mi","Ju","Vi","Sa"],months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthsShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],today:"Hoy",monthsTitle:"Meses",clear:"Borrar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js new file mode 100644 index 00000000..34cd9c60 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.et={days:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"],daysShort:["Pühap","Esmasp","Teisip","Kolmap","Neljap","Reede","Laup"],daysMin:["P","E","T","K","N","R","L"],months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],monthsShort:["Jaan","Veebr","Märts","Apr","Mai","Juuni","Juuli","Aug","Sept","Okt","Nov","Dets"],today:"Täna",clear:"Tühjenda",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js new file mode 100644 index 00000000..c5aa359e --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.eu={days:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"],daysShort:["Ig","Al","Ar","Az","Og","Ol","Lr"],daysMin:["Ig","Al","Ar","Az","Og","Ol","Lr"],months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],monthsShort:["Urt","Ots","Mar","Api","Mai","Eka","Uzt","Abu","Ira","Urr","Aza","Abe"],today:"Gaur",monthsTitle:"Hilabeteak",clear:"Ezabatu",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js new file mode 100644 index 00000000..8575237a --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fa={days:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"],daysShort:["یک","دو","سه","چهار","پنج","جمعه","شنبه","یک"],daysMin:["ی","د","س","چ","پ","ج","ش","ی"],months:["ژانویه","فوریه","مارس","آوریل","مه","ژوئن","ژوئیه","اوت","سپتامبر","اکتبر","نوامبر","دسامبر"],monthsShort:["ژان","فور","مار","آور","مه","ژون","ژوی","اوت","سپت","اکت","نوا","دسا"],today:"امروز",clear:"پاک کن",weekStart:1,format:"yyyy/mm/dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js new file mode 100644 index 00000000..33af3d3e --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fi={days:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"],daysShort:["sun","maa","tii","kes","tor","per","lau"],daysMin:["su","ma","ti","ke","to","pe","la"],months:["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"],monthsShort:["tammi","helmi","maalis","huhti","touko","kesä","heinä","elo","syys","loka","marras","joulu"],today:"tänään",clear:"Tyhjennä",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js new file mode 100644 index 00000000..fa24e3a1 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fo={days:["Sunnudagur","Mánadagur","Týsdagur","Mikudagur","Hósdagur","Fríggjadagur","Leygardagur"],daysShort:["Sun","Mán","Týs","Mik","Hós","Frí","Ley"],daysMin:["Su","Má","Tý","Mi","Hó","Fr","Le"],months:["Januar","Februar","Marts","Apríl","Mei","Juni","Juli","August","Septembur","Oktobur","Novembur","Desembur"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Des"],today:"Í Dag",clear:"Reinsa"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js new file mode 100644 index 00000000..1c6bcdcb --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fr={days:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],daysShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],daysMin:["D","L","Ma","Me","J","V","S"],months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthsShort:["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aou","Sep","Oct","Nov","Déc"],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js new file mode 100644 index 00000000..244cfba8 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.fr={days:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],daysShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],daysMin:["d","l","ma","me","j","v","s"],months:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthsShort:["janv.","févr.","mars","avril","mai","juin","juil.","août","sept.","oct.","nov.","déc."],today:"Aujourd'hui",monthsTitle:"Mois",clear:"Effacer",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js new file mode 100644 index 00000000..3d92606b --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.gl={days:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"],daysShort:["Dom","Lun","Mar","Mér","Xov","Ven","Sáb"],daysMin:["Do","Lu","Ma","Me","Xo","Ve","Sa"],months:["Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño","Xullo","Agosto","Setembro","Outubro","Novembro","Decembro"],monthsShort:["Xan","Feb","Mar","Abr","Mai","Xun","Xul","Ago","Sep","Out","Nov","Dec"],today:"Hoxe",clear:"Limpar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js new file mode 100644 index 00000000..191cb453 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.he={days:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"],daysShort:["א","ב","ג","ד","ה","ו","ש","א"],daysMin:["א","ב","ג","ד","ה","ו","ש","א"],months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],monthsShort:["ינו","פבר","מרץ","אפר","מאי","יונ","יול","אוג","ספט","אוק","נוב","דצמ"],today:"היום",rtl:!0}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js new file mode 100644 index 00000000..635baffa --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hi={days:["रविवार","सोमवार","मंगलवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],daysShort:["सूर्य","सोम","मंगल","बुध","गुरु","शुक्र","शनि"],daysMin:["र","सो","मं","बु","गु","शु","श"],months:["जनवरी","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितम्बर","अक्टूबर","नवंबर","दिसम्बर"],monthsShort:["जन","फ़रवरी","मार्च","अप्रैल","मई","जून","जुलाई","अगस्त","सितं","अक्टूबर","नवं","दिसम्बर"],today:"आज",monthsTitle:"महीने",clear:"साफ",weekStart:1,format:"dd / mm / yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js new file mode 100644 index 00000000..8b34bce0 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hr={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],monthsShort:["Sij","Velj","Ožu","Tra","Svi","Lip","Srp","Kol","Ruj","Lis","Stu","Pro"],today:"Danas"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js new file mode 100644 index 00000000..f9decf9a --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hu={days:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"],daysShort:["vas","hét","ked","sze","csü","pén","szo"],daysMin:["V","H","K","Sze","Cs","P","Szo"],months:["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"],monthsShort:["jan","feb","már","ápr","máj","jún","júl","aug","sze","okt","nov","dec"],today:"ma",weekStart:1,clear:"töröl",titleFormat:"yyyy. MM",format:"yyyy.mm.dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js new file mode 100644 index 00000000..a1cf653d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.hy={days:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"],daysShort:["Կիր","Երկ","Երե","Չոր","Հին","Ուրբ","Շաբ"],daysMin:["Կի","Եկ","Եք","Չո","Հի","Ու","Շա"],months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],monthsShort:["Հնվ","Փետ","Մար","Ապր","Մայ","Հուն","Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ"],today:"Այսօր",clear:"Ջնջել",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ամիսնէր"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js new file mode 100644 index 00000000..bc9258d6 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.id={days:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"],daysShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],daysMin:["Mg","Sn","Sl","Rb","Km","Jm","Sb"],months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agt","Sep","Okt","Nov","Des"],today:"Hari Ini",monthsTitle:"Bulan",clear:"Kosongkan",weekStart:0,format:"dd-mm-yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js new file mode 100644 index 00000000..f49bd18c --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.is={days:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"],daysShort:["Sun","Mán","Þri","Mið","Fim","Fös","Lau"],daysMin:["Su","Má","Þr","Mi","Fi","Fö","La"],months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],monthsShort:["Jan","Feb","Mar","Apr","Maí","Jún","Júl","Ágú","Sep","Okt","Nóv","Des"],today:"Í Dag"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js new file mode 100644 index 00000000..7e1adbb9 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",clear:"Cancella",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js new file mode 100644 index 00000000..cc30766f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.it={days:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"],daysShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],daysMin:["Do","Lu","Ma","Me","Gi","Ve","Sa"],months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],monthsShort:["Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dic"],today:"Oggi",monthsTitle:"Mesi",clear:"Cancella",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js new file mode 100644 index 00000000..e321f04f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ja={days:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"],daysShort:["日","月","火","水","木","金","土"],daysMin:["日","月","火","水","木","金","土"],months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今日",format:"yyyy/mm/dd",titleFormat:"yyyy年mm月",clear:"クリア"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js new file mode 100644 index 00000000..84f14c0e --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ka={days:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"],daysShort:["კვი","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ"],daysMin:["კვ","ორ","სა","ოთ","ხუ","პა","შა"],months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],monthsShort:["იან","თებ","მარ","აპრ","მაი","ივნ","ივლ","აგვ","სექ","ოქტ","ნოე","დეკ"],today:"დღეს",clear:"გასუფთავება",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js new file mode 100644 index 00000000..bf2abc5d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.kh={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"},a.fn.datepicker.deprecated('The language code "kh" is deprecated and will be removed in 2.0. For Khmer support use "km" instead.')}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js new file mode 100644 index 00000000..f4e2f3f1 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.kk={days:["Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі"],daysShort:["Жек","Дүй","Сей","Сәр","Бей","Жұм","Сен"],daysMin:["Жк","Дс","Сс","Ср","Бс","Жм","Сн"],months:["Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым","Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан"],monthsShort:["Қаң","Ақп","Нау","Сәу","Мам","Мау","Шіл","Там","Қыр","Қаз","Қар","Жел"],today:"Бүгін",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js new file mode 100644 index 00000000..648d83f8 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.km={days:["អាទិត្យ","ចន្ទ","អង្គារ","ពុធ","ព្រហស្បតិ៍","សុក្រ","សៅរ៍"],daysShort:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],daysMin:["អា.ទិ","ចន្ទ","អង្គារ","ពុធ","ព្រ.ហ","សុក្រ","សៅរ៍"],months:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],monthsShort:["មករា","កុម្ភះ","មិនា","មេសា","ឧសភា","មិថុនា","កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ"],today:"ថ្ងៃនេះ",clear:"សំអាត"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js new file mode 100644 index 00000000..9751ee5c --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ko={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],today:"오늘",clear:"삭제",format:"yyyy-mm-dd",titleFormat:"yyyy년mm월",weekStart:0}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js new file mode 100644 index 00000000..43393409 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.kr={days:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"],daysShort:["일","월","화","수","목","금","토"],daysMin:["일","월","화","수","목","금","토"],months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],monthsShort:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},a.fn.datepicker.deprecated('The language code "kr" is deprecated and will be removed in 2.0. For korean support use "ko" instead.')}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js new file mode 100644 index 00000000..da78ea85 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.lt={days:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"],daysShort:["S","Pr","A","T","K","Pn","Š"],daysMin:["Sk","Pr","An","Tr","Ke","Pn","Št"],months:["Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis","Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis"],monthsShort:["Sau","Vas","Kov","Bal","Geg","Bir","Lie","Rugp","Rugs","Spa","Lap","Gru"],today:"Šiandien",monthsTitle:"Mėnesiai",clear:"Išvalyti",weekStart:1,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js new file mode 100644 index 00000000..89cea00f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.lv={days:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"],daysShort:["Sv","P","O","T","C","Pk","S"],daysMin:["Sv","Pr","Ot","Tr","Ce","Pk","Se"],months:["Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],monthsShort:["Jan","Feb","Mar","Apr","Mai","Jūn","Jūl","Aug","Sep","Okt","Nov","Dec"],monthsTitle:"Mēneši",today:"Šodien",clear:"Nodzēst",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js new file mode 100644 index 00000000..c65a8916 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.me={days:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],daysMin:["Ne","Po","Ut","Sr","Če","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,clear:"Izbriši",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js new file mode 100644 index 00000000..46423f75 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.mk={days:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"],daysShort:["Нед","Пон","Вто","Сре","Чет","Пет","Саб"],daysMin:["Не","По","Вт","Ср","Че","Пе","Са"],months:["Јануари","Февруари","Март","Април","Мај","Јуни","Јули","Август","Септември","Октомври","Ноември","Декември"],monthsShort:["Јан","Фев","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Ное","Дек"],today:"Денес",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js new file mode 100644 index 00000000..6ebaec9d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.mn={days:["Ням","Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба"],daysShort:["Ням","Дав","Мяг","Лха","Пүр","Баа","Бям"],daysMin:["Ня","Да","Мя","Лх","Пү","Ба","Бя"],months:["Хулгана","Үхэр","Бар","Туулай","Луу","Могой","Морь","Хонь","Бич","Тахиа","Нохой","Гахай"],monthsShort:["Хул","Үхэ","Бар","Туу","Луу","Мог","Мор","Хон","Бич","Тах","Нох","Гах"],today:"Өнөөдөр",clear:"Тодорхой",format:"yyyy.mm.dd",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mr.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mr.min.js new file mode 100644 index 00000000..2f25159d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.mr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.mar={days:["रविवार","सोमवार","मंगळवार","बुधवार","गुरुवार","शुक्रवार","शनिवार"],daysShort:["रवि","सोम","मंगळ","बुध","गुरु","शुक्र","शनि"],daysMin:["र","सो","मं","बु","गु","शु","श"],months:["जानेवारी","फेब्रुवारी","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टेंबर","ऑक्टोबर","नोव्हेंबर","डिसेंबर"],monthsShort:["जाने.","फेब्रु.","मार्च","एप्रिल","मे","जून","जुलै","ऑगस्ट","सप्टें.","ऑक्टो.","नोव्हें.","डिसें."],today:"आज",monthsTitle:"महीने",clear:"हटवा",weekStart:1,format:"dd / mm / yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js new file mode 100644 index 00000000..47efafdc --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ms={days:["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"],daysShort:["Aha","Isn","Sel","Rab","Kha","Jum","Sab"],daysMin:["Ah","Is","Se","Ra","Kh","Ju","Sa"],months:["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"],monthsShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Ogo","Sep","Okt","Nov","Dis"],today:"Hari Ini",clear:"Bersihkan"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js new file mode 100644 index 00000000..85d3146d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["nl-BE"]={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Leegmaken",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js new file mode 100644 index 00000000..af977b71 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.nl={days:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"],daysShort:["zo","ma","di","wo","do","vr","za"],daysMin:["zo","ma","di","wo","do","vr","za"],months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],monthsShort:["jan","feb","mrt","apr","mei","jun","jul","aug","sep","okt","nov","dec"],today:"Vandaag",monthsTitle:"Maanden",clear:"Wissen",weekStart:1,format:"dd-mm-yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js new file mode 100644 index 00000000..0c5136e4 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.no={days:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"],daysShort:["søn","man","tir","ons","tor","fre","lør"],daysMin:["sø","ma","ti","on","to","fr","lø"],months:["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],monthsShort:["jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des"],today:"i dag",monthsTitle:"Måneder",clear:"Nullstill",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js new file mode 100644 index 00000000..630fa16b --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.oc={days:["Dimenge","Diluns","Dimars","Dimècres","Dijòus","Divendres","Dissabte"],daysShort:["Dim","Dil","Dmr","Dmc","Dij","Div","Dis"],daysMin:["dg","dl","dr","dc","dj","dv","ds"],months:["Genièr","Febrièr","Març","Abrial","Mai","Junh","Julhet","Agost","Setembre","Octobre","Novembre","Decembre"],monthsShort:["Gen","Feb","Mar","Abr","Mai","Jun","Jul","Ago","Set","Oct","Nov","Dec"],today:"Uèi",monthsTitle:"Meses",clear:"Escafar",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js new file mode 100644 index 00000000..ffb30ec8 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.pl={days:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],daysShort:["Niedz.","Pon.","Wt.","Śr.","Czw.","Piąt.","Sob."],daysMin:["Ndz.","Pn.","Wt.","Śr.","Czw.","Pt.","Sob."],months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthsShort:["Sty.","Lut.","Mar.","Kwi.","Maj","Cze.","Lip.","Sie.","Wrz.","Paź.","Lis.","Gru."],today:"Dzisiaj",weekStart:1,clear:"Wyczyść",format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js new file mode 100644 index 00000000..2d3f8afd --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["pt-BR"]={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js new file mode 100644 index 00000000..e2b4e64d --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.pt={days:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],daysShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],daysMin:["Do","Se","Te","Qu","Qu","Se","Sa"],months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthsShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],today:"Hoje",monthsTitle:"Meses",clear:"Limpar",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js new file mode 100644 index 00000000..5fff2986 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ro={days:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"],daysShort:["Dum","Lun","Mar","Mie","Joi","Vin","Sâm"],daysMin:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],monthsShort:["Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sep","Oct","Nov","Dec"],today:"Astăzi",clear:"Șterge",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js new file mode 100644 index 00000000..e520c957 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["rs-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs-latin" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian latin support use "sr-latin" instead.')}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js new file mode 100644 index 00000000..ba95ae29 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.rs={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"},a.fn.datepicker.deprecated('This language code "rs" is deprecated (invalid serbian language code) and will be removed in 2.0. For Serbian support use "sr" instead.')}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js new file mode 100644 index 00000000..52bc010b --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ru={days:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],daysShort:["Вск","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Сегодня",clear:"Очистить",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Месяцы"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js new file mode 100644 index 00000000..b9746b8f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.si={days:["ඉරිදා","සඳුදා","අඟහරුවාදා","බදාදා","බ්‍රහස්පතින්දා","සිකුරාදා","සෙනසුරාදා"],daysShort:["ඉරි","සඳු","අඟ","බදා","බ්‍රහ","සිකු","සෙන"],daysMin:["ඉ","ස","අ","බ","බ්‍ර","සි","සෙ"],months:["ජනවාරි","පෙබරවාරි","මාර්තු","අප්‍රේල්","මැයි","ජුනි","ජූලි","අගෝස්තු","සැප්තැම්බර්","ඔක්තෝබර්","නොවැම්බර්","දෙසැම්බර්"],monthsShort:["ජන","පෙබ","මාර්","අප්‍රේ","මැයි","ජුනි","ජූලි","අගෝ","සැප්","ඔක්","නොවැ","දෙසැ"],today:"අද",monthsTitle:"මාස",clear:"මකන්න",weekStart:0,format:"yyyy-mm-dd"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js new file mode 100644 index 00000000..79a9267f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sk={days:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"],daysShort:["Ned","Pon","Uto","Str","Štv","Pia","Sob"],daysMin:["Ne","Po","Ut","St","Št","Pia","So"],months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Máj","Jún","Júl","Aug","Sep","Okt","Nov","Dec"],today:"Dnes",clear:"Vymazať",weekStart:1,format:"d.m.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js new file mode 100644 index 00000000..831cf739 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sl={days:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"],daysShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],daysMin:["Ne","Po","To","Sr","Če","Pe","So"],months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danes",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js new file mode 100644 index 00000000..8c586055 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sq={days:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"],daysShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],daysMin:["Di","Hë","Ma","Më","En","Pr","Sht"],months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],monthsShort:["Jan","Shk","Mar","Pri","Maj","Qer","Korr","Gu","Sht","Tet","Nën","Dhjet"],monthsTitle:"Muaj",today:"Sot",weekStart:1,format:"dd/mm/yyyy",clear:"Pastro"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js new file mode 100644 index 00000000..c6b7001a --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["sr-latin"]={days:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"],daysShort:["Ned","Pon","Uto","Sre","Čet","Pet","Sub"],daysMin:["N","Po","U","Sr","Č","Pe","Su"],months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],monthsShort:["Jan","Feb","Mar","Apr","Maj","Jun","Jul","Avg","Sep","Okt","Nov","Dec"],today:"Danas",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js new file mode 100644 index 00000000..4e46dbf6 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sr={days:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"],daysShort:["Нед","Пон","Уто","Сре","Чет","Пет","Суб"],daysMin:["Н","По","У","Ср","Ч","Пе","Су"],months:["Јануар","Фебруар","Март","Април","Мај","Јун","Јул","Август","Септембар","Октобар","Новембар","Децембар"],monthsShort:["Јан","Феб","Мар","Апр","Мај","Јун","Јул","Авг","Сеп","Окт","Нов","Дец"],today:"Данас",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js new file mode 100644 index 00000000..7ab6becb --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sv={days:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],daysShort:["sön","mån","tis","ons","tor","fre","lör"],daysMin:["sö","må","ti","on","to","fr","lö"],months:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthsShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],today:"Idag",format:"yyyy-mm-dd",weekStart:1,clear:"Rensa"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js new file mode 100644 index 00000000..454d3053 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.sw={days:["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"],daysShort:["J2","J3","J4","J5","Alh","Ij","J1"],daysMin:["2","3","4","5","A","I","1"],months:["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"],monthsShort:["Jan","Feb","Mac","Apr","Mei","Jun","Jul","Ago","Sep","Okt","Nov","Des"],today:"Leo"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js new file mode 100644 index 00000000..e7909494 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.ta={days:["ஞாயிறு","திங்கள்","செவ்வாய்","புதன்","வியாழன்","வெள்ளி","சனி"],daysShort:["ஞாயி","திங்","செவ்","புத","வியா","வெள்","சனி"],daysMin:["ஞா","தி","செ","பு","வி","வெ","ச"],months:["ஜனவரி","பிப்ரவரி","மார்ச்","ஏப்ரல்","மே","ஜூன்","ஜூலை","ஆகஸ்டு","செப்டம்பர்","அக்டோபர்","நவம்பர்","டிசம்பர்"],monthsShort:["ஜன","பிப்","மார்","ஏப்","மே","ஜூன்","ஜூலை","ஆக","செப்","அக்","நவ","டிச"],today:"இன்று",monthsTitle:"மாதங்கள்",clear:"நீக்கு",weekStart:1,format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js new file mode 100644 index 00000000..104b6dd9 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.tg={days:["Якшанбе","Душанбе","Сешанбе","Чоршанбе","Панҷшанбе","Ҷумъа","Шанбе"],daysShort:["Яшб","Дшб","Сшб","Чшб","Пшб","Ҷум","Шнб"],daysMin:["Яш","Дш","Сш","Чш","Пш","Ҷм","Шб"],months:["Январ","Феврал","Март","Апрел","Май","Июн","Июл","Август","Сентябр","Октябр","Ноябр","Декабр"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Имрӯз",monthsTitle:"Моҳҳо",clear:"Тоза намудан",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js new file mode 100644 index 00000000..1e398ba8 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.th={days:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"],daysShort:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],daysMin:["อา","จ","อ","พ","พฤ","ศ","ส","อา"],months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],monthsShort:["ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค."],today:"วันนี้"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js new file mode 100644 index 00000000..716edef2 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.tk={days:["Ýekşenbe","Duşenbe","Sişenbe","Çarşenbe","Penşenbe","Anna","Şenbe"],daysShort:["Ýek","Duş","Siş","Çar","Pen","Ann","Şen"],daysMin:["Ýe","Du","Si","Ça","Pe","An","Şe"],months:["Ýanwar","Fewral","Mart","Aprel","Maý","Iýun","Iýul","Awgust","Sentýabr","Oktýabr","Noýabr","Dekabr"],monthsShort:["Ýan","Few","Mar","Apr","Maý","Iýn","Iýl","Awg","Sen","Okt","Noý","Dek"],today:"Bu gün",monthsTitle:"Aýlar",clear:"Aýyr",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js new file mode 100644 index 00000000..7889b113 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.tr={days:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"],daysShort:["Pz","Pzt","Sal","Çrş","Prş","Cu","Cts"],daysMin:["Pz","Pzt","Sa","Çr","Pr","Cu","Ct"],months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],monthsShort:["Oca","Şub","Mar","Nis","May","Haz","Tem","Ağu","Eyl","Eki","Kas","Ara"],today:"Bugün",clear:"Temizle",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js new file mode 100644 index 00000000..a555be80 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.uk={days:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"],daysShort:["Нед","Пнд","Втр","Срд","Чтв","Птн","Суб"],daysMin:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],monthsShort:["Січ","Лют","Бер","Кві","Тра","Чер","Лип","Сер","Вер","Жов","Лис","Гру"],today:"Сьогодні",clear:"Очистити",format:"dd.mm.yyyy",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js new file mode 100644 index 00000000..a0a8f213 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["uz-cyrl"]={days:["Якшанба","Душанба","Сешанба","Чоршанба","Пайшанба","Жума","Шанба"],daysShort:["Якш","Ду","Се","Чор","Пай","Жу","Ша"],daysMin:["Як","Ду","Се","Чо","Па","Жу","Ша"],months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthsShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],today:"Бугун",clear:"Ўчириш",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Ойлар"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js new file mode 100644 index 00000000..2f58e343 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["uz-latn"]={days:["Yakshanba","Dushanba","Seshanba","Chorshanba","Payshanba","Juma","Shanba"],daysShort:["Yak","Du","Se","Chor","Pay","Ju","Sha"],daysMin:["Ya","Du","Se","Cho","Pa","Ju","Sha"],months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avgust","Sentabr","Oktabr","Noyabr","Dekabr"],monthsShort:["Yan","Fev","Mar","Apr","May","Iyn","Iyl","Avg","Sen","Okt","Noy","Dek"],today:"Bugun",clear:"O'chirish",format:"dd.mm.yyyy",weekStart:1,monthsTitle:"Oylar"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js new file mode 100644 index 00000000..3311d23f --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.vi={days:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"],daysShort:["CN","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7"],daysMin:["CN","T2","T3","T4","T5","T6","T7"],months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],monthsShort:["Th1","Th2","Th3","Th4","Th5","Th6","Th7","Th8","Th9","Th10","Th11","Th12"],today:"Hôm nay",clear:"Xóa",format:"dd/mm/yyyy"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js new file mode 100644 index 00000000..8e6920b0 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["zh-CN"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["周日","周一","周二","周三","周四","周五","周六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",monthsTitle:"选择月份",clear:"清除",format:"yyyy-mm-dd",titleFormat:"yyyy年mm月",weekStart:1}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js new file mode 100644 index 00000000..5d2c0b55 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates["zh-TW"]={days:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],daysShort:["週日","週一","週二","週三","週四","週五","週六"],daysMin:["日","一","二","三","四","五","六"],months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthsShort:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],today:"今天",monthsTitle:"月份",format:"yyyy/mm/dd",weekStart:0,titleFormat:"yyyy年mm月",clear:"清除"}}(jQuery); \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css new file mode 100644 index 00000000..a9638049 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.css @@ -0,0 +1,410 @@ +.daterangepicker { + position: absolute; + color: inherit; + background-color: #fff; + border-radius: 4px; + border: 1px solid #ddd; + width: 278px; + max-width: none; + padding: 0; + margin-top: 7px; + top: 100px; + left: 20px; + z-index: 3001; + display: none; + font-family: arial; + font-size: 15px; + line-height: 1em; +} + +.daterangepicker:before, .daterangepicker:after { + position: absolute; + display: inline-block; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.daterangepicker:before { + top: -7px; + border-right: 7px solid transparent; + border-left: 7px solid transparent; + border-bottom: 7px solid #ccc; +} + +.daterangepicker:after { + top: -6px; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-left: 6px solid transparent; +} + +.daterangepicker.opensleft:before { + right: 9px; +} + +.daterangepicker.opensleft:after { + right: 10px; +} + +.daterangepicker.openscenter:before { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; +} + +.daterangepicker.openscenter:after { + left: 0; + right: 0; + width: 0; + margin-left: auto; + margin-right: auto; +} + +.daterangepicker.opensright:before { + left: 9px; +} + +.daterangepicker.opensright:after { + left: 10px; +} + +.daterangepicker.drop-up { + margin-top: -7px; +} + +.daterangepicker.drop-up:before { + top: initial; + bottom: -7px; + border-bottom: initial; + border-top: 7px solid #ccc; +} + +.daterangepicker.drop-up:after { + top: initial; + bottom: -6px; + border-bottom: initial; + border-top: 6px solid #fff; +} + +.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar { + float: none; +} + +.daterangepicker.single .drp-selected { + display: none; +} + +.daterangepicker.show-calendar .drp-calendar { + display: block; +} + +.daterangepicker.show-calendar .drp-buttons { + display: block; +} + +.daterangepicker.auto-apply .drp-buttons { + display: none; +} + +.daterangepicker .drp-calendar { + display: none; + max-width: 270px; +} + +.daterangepicker .drp-calendar.left { + padding: 8px 0 8px 8px; +} + +.daterangepicker .drp-calendar.right { + padding: 8px; +} + +.daterangepicker .drp-calendar.single .calendar-table { + border: none; +} + +.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span { + color: #fff; + border: solid black; + border-width: 0 2px 2px 0; + border-radius: 0; + display: inline-block; + padding: 3px; +} + +.daterangepicker .calendar-table .next span { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); +} + +.daterangepicker .calendar-table .prev span { + transform: rotate(135deg); + -webkit-transform: rotate(135deg); +} + +.daterangepicker .calendar-table th, .daterangepicker .calendar-table td { + white-space: nowrap; + text-align: center; + vertical-align: middle; + min-width: 32px; + width: 32px; + height: 24px; + line-height: 24px; + font-size: 12px; + border-radius: 4px; + border: 1px solid transparent; + white-space: nowrap; + cursor: pointer; +} + +.daterangepicker .calendar-table { + border: 1px solid #fff; + border-radius: 4px; + background-color: #fff; +} + +.daterangepicker .calendar-table table { + width: 100%; + margin: 0; + border-spacing: 0; + border-collapse: collapse; +} + +.daterangepicker td.available:hover, .daterangepicker th.available:hover { + background-color: #eee; + border-color: transparent; + color: inherit; +} + +.daterangepicker td.week, .daterangepicker th.week { + font-size: 80%; + color: #ccc; +} + +.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date { + background-color: #fff; + border-color: transparent; + color: #999; +} + +.daterangepicker td.in-range { + background-color: #ebf4f8; + border-color: transparent; + color: #000; + border-radius: 0; +} + +.daterangepicker td.start-date { + border-radius: 4px 0 0 4px; +} + +.daterangepicker td.end-date { + border-radius: 0 4px 4px 0; +} + +.daterangepicker td.start-date.end-date { + border-radius: 4px; +} + +.daterangepicker td.active, .daterangepicker td.active:hover { + background-color: #357ebd; + border-color: transparent; + color: #fff; +} + +.daterangepicker th.month { + width: auto; +} + +.daterangepicker td.disabled, .daterangepicker option.disabled { + color: #999; + cursor: not-allowed; + text-decoration: line-through; +} + +.daterangepicker select.monthselect, .daterangepicker select.yearselect { + font-size: 12px; + padding: 1px; + height: auto; + margin: 0; + cursor: default; +} + +.daterangepicker select.monthselect { + margin-right: 2%; + width: 56%; +} + +.daterangepicker select.yearselect { + width: 40%; +} + +.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect { + width: 50px; + margin: 0 auto; + background: #eee; + border: 1px solid #eee; + padding: 2px; + outline: 0; + font-size: 12px; +} + +.daterangepicker .calendar-time { + text-align: center; + margin: 4px auto 0 auto; + line-height: 30px; + position: relative; +} + +.daterangepicker .calendar-time select.disabled { + color: #ccc; + cursor: not-allowed; +} + +.daterangepicker .drp-buttons { + clear: both; + text-align: right; + padding: 8px; + border-top: 1px solid #ddd; + display: none; + line-height: 12px; + vertical-align: middle; +} + +.daterangepicker .drp-selected { + display: inline-block; + font-size: 12px; + padding-right: 8px; +} + +.daterangepicker .drp-buttons .btn { + margin-left: 8px; + font-size: 12px; + font-weight: bold; + padding: 4px 8px; +} + +.daterangepicker.show-ranges.single.rtl .drp-calendar.left { + border-right: 1px solid #ddd; +} + +.daterangepicker.show-ranges.single.ltr .drp-calendar.left { + border-left: 1px solid #ddd; +} + +.daterangepicker.show-ranges.rtl .drp-calendar.right { + border-right: 1px solid #ddd; +} + +.daterangepicker.show-ranges.ltr .drp-calendar.left { + border-left: 1px solid #ddd; +} + +.daterangepicker .ranges { + float: none; + text-align: left; + margin: 0; +} + +.daterangepicker.show-calendar .ranges { + margin-top: 8px; +} + +.daterangepicker .ranges ul { + list-style: none; + margin: 0 auto; + padding: 0; + width: 100%; +} + +.daterangepicker .ranges li { + font-size: 12px; + padding: 8px 12px; + cursor: pointer; +} + +.daterangepicker .ranges li:hover { + background-color: #eee; +} + +.daterangepicker .ranges li.active { + background-color: #08c; + color: #fff; +} + +/* Larger Screen Styling */ +@media (min-width: 564px) { + .daterangepicker { + width: auto; + } + + .daterangepicker .ranges ul { + width: 140px; + } + + .daterangepicker.single .ranges ul { + width: 100%; + } + + .daterangepicker.single .drp-calendar.left { + clear: none; + } + + .daterangepicker.single .ranges, .daterangepicker.single .drp-calendar { + float: left; + } + + .daterangepicker { + direction: ltr; + text-align: left; + } + + .daterangepicker .drp-calendar.left { + clear: left; + margin-right: 0; + } + + .daterangepicker .drp-calendar.left .calendar-table { + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + .daterangepicker .drp-calendar.right { + margin-left: 0; + } + + .daterangepicker .drp-calendar.right .calendar-table { + border-left: none; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + + .daterangepicker .drp-calendar.left .calendar-table { + padding-right: 8px; + } + + .daterangepicker .ranges, .daterangepicker .drp-calendar { + float: left; + } +} + +@media (min-width: 730px) { + .daterangepicker .ranges { + width: auto; + } + + .daterangepicker .ranges { + float: left; + } + + .daterangepicker.rtl .ranges { + float: right; + } + + .daterangepicker .drp-calendar.left { + clear: none !important; + } +} diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js new file mode 100644 index 00000000..4048310c --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap-daterangepicker/daterangepicker.js @@ -0,0 +1,1578 @@ +/** +* @version: 3.1 +* @author: Dan Grossman http://www.dangrossman.info/ +* @copyright: Copyright (c) 2012-2019 Dan Grossman. All rights reserved. +* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php +* @website: http://www.daterangepicker.com/ +*/ +// Following the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Make globaly available as well + define(['moment', 'jquery'], function (moment, jquery) { + if (!jquery.fn) jquery.fn = {}; // webpack server rendering + if (typeof moment !== 'function' && moment.hasOwnProperty('default')) moment = moment['default'] + return factory(moment, jquery); + }); + } else if (typeof module === 'object' && module.exports) { + // Node / Browserify + //isomorphic issue + var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined; + if (!jQuery) { + jQuery = require('jquery'); + if (!jQuery.fn) jQuery.fn = {}; + } + var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment'); + module.exports = factory(moment, jQuery); + } else { + // Browser globals + root.daterangepicker = factory(root.moment, root.jQuery); + } +}(this, function(moment, $) { + var DateRangePicker = function(element, options, cb) { + + //default settings for options + this.parentEl = 'body'; + this.element = $(element); + this.startDate = moment().startOf('day'); + this.endDate = moment().endOf('day'); + this.minDate = false; + this.maxDate = false; + this.maxSpan = false; + this.autoApply = false; + this.singleDatePicker = false; + this.showDropdowns = false; + this.minYear = moment().subtract(100, 'year').format('YYYY'); + this.maxYear = moment().add(100, 'year').format('YYYY'); + this.showWeekNumbers = false; + this.showISOWeekNumbers = false; + this.showCustomRangeLabel = true; + this.timePicker = false; + this.timePicker24Hour = false; + this.timePickerIncrement = 1; + this.timePickerSeconds = false; + this.linkedCalendars = true; + this.autoUpdateInput = true; + this.alwaysShowCalendars = false; + this.ranges = {}; + + this.opens = 'right'; + if (this.element.hasClass('pull-right')) + this.opens = 'left'; + + this.drops = 'down'; + if (this.element.hasClass('dropup')) + this.drops = 'up'; + + this.buttonClasses = 'btn btn-sm'; + this.applyButtonClasses = 'btn-primary'; + this.cancelButtonClasses = 'btn-default'; + + this.locale = { + direction: 'ltr', + format: moment.localeData().longDateFormat('L'), + separator: ' - ', + applyLabel: 'Apply', + cancelLabel: 'Cancel', + weekLabel: 'W', + customRangeLabel: 'Custom Range', + daysOfWeek: moment.weekdaysMin(), + monthNames: moment.monthsShort(), + firstDay: moment.localeData().firstDayOfWeek() + }; + + this.callback = function() { }; + + //some state information + this.isShowing = false; + this.leftCalendar = {}; + this.rightCalendar = {}; + + //custom options from user + if (typeof options !== 'object' || options === null) + options = {}; + + //allow setting options with data attributes + //data-api options will be overwritten with custom javascript options + options = $.extend(this.element.data(), options); + + //html template for the picker UI + if (typeof options.template !== 'string' && !(options.template instanceof $)) + options.template = + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '' + + '' + + ' ' + + '
' + + '
'; + + this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl); + this.container = $(options.template).appendTo(this.parentEl); + + // + // handle all the possible options overriding defaults + // + + if (typeof options.locale === 'object') { + + if (typeof options.locale.direction === 'string') + this.locale.direction = options.locale.direction; + + if (typeof options.locale.format === 'string') + this.locale.format = options.locale.format; + + if (typeof options.locale.separator === 'string') + this.locale.separator = options.locale.separator; + + if (typeof options.locale.daysOfWeek === 'object') + this.locale.daysOfWeek = options.locale.daysOfWeek.slice(); + + if (typeof options.locale.monthNames === 'object') + this.locale.monthNames = options.locale.monthNames.slice(); + + if (typeof options.locale.firstDay === 'number') + this.locale.firstDay = options.locale.firstDay; + + if (typeof options.locale.applyLabel === 'string') + this.locale.applyLabel = options.locale.applyLabel; + + if (typeof options.locale.cancelLabel === 'string') + this.locale.cancelLabel = options.locale.cancelLabel; + + if (typeof options.locale.weekLabel === 'string') + this.locale.weekLabel = options.locale.weekLabel; + + if (typeof options.locale.customRangeLabel === 'string'){ + //Support unicode chars in the custom range name. + var elem = document.createElement('textarea'); + elem.innerHTML = options.locale.customRangeLabel; + var rangeHtml = elem.value; + this.locale.customRangeLabel = rangeHtml; + } + } + this.container.addClass(this.locale.direction); + + if (typeof options.startDate === 'string') + this.startDate = moment(options.startDate, this.locale.format); + + if (typeof options.endDate === 'string') + this.endDate = moment(options.endDate, this.locale.format); + + if (typeof options.minDate === 'string') + this.minDate = moment(options.minDate, this.locale.format); + + if (typeof options.maxDate === 'string') + this.maxDate = moment(options.maxDate, this.locale.format); + + if (typeof options.startDate === 'object') + this.startDate = moment(options.startDate); + + if (typeof options.endDate === 'object') + this.endDate = moment(options.endDate); + + if (typeof options.minDate === 'object') + this.minDate = moment(options.minDate); + + if (typeof options.maxDate === 'object') + this.maxDate = moment(options.maxDate); + + // sanity check for bad options + if (this.minDate && this.startDate.isBefore(this.minDate)) + this.startDate = this.minDate.clone(); + + // sanity check for bad options + if (this.maxDate && this.endDate.isAfter(this.maxDate)) + this.endDate = this.maxDate.clone(); + + if (typeof options.applyButtonClasses === 'string') + this.applyButtonClasses = options.applyButtonClasses; + + if (typeof options.applyClass === 'string') //backwards compat + this.applyButtonClasses = options.applyClass; + + if (typeof options.cancelButtonClasses === 'string') + this.cancelButtonClasses = options.cancelButtonClasses; + + if (typeof options.cancelClass === 'string') //backwards compat + this.cancelButtonClasses = options.cancelClass; + + if (typeof options.maxSpan === 'object') + this.maxSpan = options.maxSpan; + + if (typeof options.dateLimit === 'object') //backwards compat + this.maxSpan = options.dateLimit; + + if (typeof options.opens === 'string') + this.opens = options.opens; + + if (typeof options.drops === 'string') + this.drops = options.drops; + + if (typeof options.showWeekNumbers === 'boolean') + this.showWeekNumbers = options.showWeekNumbers; + + if (typeof options.showISOWeekNumbers === 'boolean') + this.showISOWeekNumbers = options.showISOWeekNumbers; + + if (typeof options.buttonClasses === 'string') + this.buttonClasses = options.buttonClasses; + + if (typeof options.buttonClasses === 'object') + this.buttonClasses = options.buttonClasses.join(' '); + + if (typeof options.showDropdowns === 'boolean') + this.showDropdowns = options.showDropdowns; + + if (typeof options.minYear === 'number') + this.minYear = options.minYear; + + if (typeof options.maxYear === 'number') + this.maxYear = options.maxYear; + + if (typeof options.showCustomRangeLabel === 'boolean') + this.showCustomRangeLabel = options.showCustomRangeLabel; + + if (typeof options.singleDatePicker === 'boolean') { + this.singleDatePicker = options.singleDatePicker; + if (this.singleDatePicker) + this.endDate = this.startDate.clone(); + } + + if (typeof options.timePicker === 'boolean') + this.timePicker = options.timePicker; + + if (typeof options.timePickerSeconds === 'boolean') + this.timePickerSeconds = options.timePickerSeconds; + + if (typeof options.timePickerIncrement === 'number') + this.timePickerIncrement = options.timePickerIncrement; + + if (typeof options.timePicker24Hour === 'boolean') + this.timePicker24Hour = options.timePicker24Hour; + + if (typeof options.autoApply === 'boolean') + this.autoApply = options.autoApply; + + if (typeof options.autoUpdateInput === 'boolean') + this.autoUpdateInput = options.autoUpdateInput; + + if (typeof options.linkedCalendars === 'boolean') + this.linkedCalendars = options.linkedCalendars; + + if (typeof options.isInvalidDate === 'function') + this.isInvalidDate = options.isInvalidDate; + + if (typeof options.isCustomDate === 'function') + this.isCustomDate = options.isCustomDate; + + if (typeof options.alwaysShowCalendars === 'boolean') + this.alwaysShowCalendars = options.alwaysShowCalendars; + + // update day names order to firstDay + if (this.locale.firstDay != 0) { + var iterator = this.locale.firstDay; + while (iterator > 0) { + this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift()); + iterator--; + } + } + + var start, end, range; + + //if no start/end dates set, check if an input element contains initial values + if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') { + if ($(this.element).is(':text')) { + var val = $(this.element).val(), + split = val.split(this.locale.separator); + + start = end = null; + + if (split.length == 2) { + start = moment(split[0], this.locale.format); + end = moment(split[1], this.locale.format); + } else if (this.singleDatePicker && val !== "") { + start = moment(val, this.locale.format); + end = moment(val, this.locale.format); + } + if (start !== null && end !== null) { + this.setStartDate(start); + this.setEndDate(end); + } + } + } + + if (typeof options.ranges === 'object') { + for (range in options.ranges) { + + if (typeof options.ranges[range][0] === 'string') + start = moment(options.ranges[range][0], this.locale.format); + else + start = moment(options.ranges[range][0]); + + if (typeof options.ranges[range][1] === 'string') + end = moment(options.ranges[range][1], this.locale.format); + else + end = moment(options.ranges[range][1]); + + // If the start or end date exceed those allowed by the minDate or maxSpan + // options, shorten the range to the allowable period. + if (this.minDate && start.isBefore(this.minDate)) + start = this.minDate.clone(); + + var maxDate = this.maxDate; + if (this.maxSpan && maxDate && start.clone().add(this.maxSpan).isAfter(maxDate)) + maxDate = start.clone().add(this.maxSpan); + if (maxDate && end.isAfter(maxDate)) + end = maxDate.clone(); + + // If the end of the range is before the minimum or the start of the range is + // after the maximum, don't display this range option at all. + if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day')) + || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day'))) + continue; + + //Support unicode chars in the range names. + var elem = document.createElement('textarea'); + elem.innerHTML = range; + var rangeHtml = elem.value; + + this.ranges[rangeHtml] = [start, end]; + } + + var list = '
    '; + for (range in this.ranges) { + list += '
  • ' + range + '
  • '; + } + if (this.showCustomRangeLabel) { + list += '
  • ' + this.locale.customRangeLabel + '
  • '; + } + list += '
'; + this.container.find('.ranges').prepend(list); + } + + if (typeof cb === 'function') { + this.callback = cb; + } + + if (!this.timePicker) { + this.startDate = this.startDate.startOf('day'); + this.endDate = this.endDate.endOf('day'); + this.container.find('.calendar-time').hide(); + } + + //can't be used together for now + if (this.timePicker && this.autoApply) + this.autoApply = false; + + if (this.autoApply) { + this.container.addClass('auto-apply'); + } + + if (typeof options.ranges === 'object') + this.container.addClass('show-ranges'); + + if (this.singleDatePicker) { + this.container.addClass('single'); + this.container.find('.drp-calendar.left').addClass('single'); + this.container.find('.drp-calendar.left').show(); + this.container.find('.drp-calendar.right').hide(); + if (!this.timePicker && this.autoApply) { + this.container.addClass('auto-apply'); + } + } + + if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) { + this.container.addClass('show-calendar'); + } + + this.container.addClass('opens' + this.opens); + + //apply CSS classes and labels to buttons + this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses); + if (this.applyButtonClasses.length) + this.container.find('.applyBtn').addClass(this.applyButtonClasses); + if (this.cancelButtonClasses.length) + this.container.find('.cancelBtn').addClass(this.cancelButtonClasses); + this.container.find('.applyBtn').html(this.locale.applyLabel); + this.container.find('.cancelBtn').html(this.locale.cancelLabel); + + // + // event listeners + // + + this.container.find('.drp-calendar') + .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this)) + .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this)) + .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this)) + .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this)) + .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this)) + .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this)) + .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this)); + + this.container.find('.ranges') + .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this)); + + this.container.find('.drp-buttons') + .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this)) + .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this)); + + if (this.element.is('input') || this.element.is('button')) { + this.element.on({ + 'click.daterangepicker': $.proxy(this.show, this), + 'focus.daterangepicker': $.proxy(this.show, this), + 'keyup.daterangepicker': $.proxy(this.elementChanged, this), + 'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility + }); + } else { + this.element.on('click.daterangepicker', $.proxy(this.toggle, this)); + this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this)); + } + + // + // if attached to a text input, set the initial value + // + + this.updateElement(); + + }; + + DateRangePicker.prototype = { + + constructor: DateRangePicker, + + setStartDate: function(startDate) { + if (typeof startDate === 'string') + this.startDate = moment(startDate, this.locale.format); + + if (typeof startDate === 'object') + this.startDate = moment(startDate); + + if (!this.timePicker) + this.startDate = this.startDate.startOf('day'); + + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + + if (this.minDate && this.startDate.isBefore(this.minDate)) { + this.startDate = this.minDate.clone(); + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + + if (this.maxDate && this.startDate.isAfter(this.maxDate)) { + this.startDate = this.maxDate.clone(); + if (this.timePicker && this.timePickerIncrement) + this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + } + + if (!this.isShowing) + this.updateElement(); + + this.updateMonthsInView(); + }, + + setEndDate: function(endDate) { + if (typeof endDate === 'string') + this.endDate = moment(endDate, this.locale.format); + + if (typeof endDate === 'object') + this.endDate = moment(endDate); + + if (!this.timePicker) + this.endDate = this.endDate.endOf('day'); + + if (this.timePicker && this.timePickerIncrement) + this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement); + + if (this.endDate.isBefore(this.startDate)) + this.endDate = this.startDate.clone(); + + if (this.maxDate && this.endDate.isAfter(this.maxDate)) + this.endDate = this.maxDate.clone(); + + if (this.maxSpan && this.startDate.clone().add(this.maxSpan).isBefore(this.endDate)) + this.endDate = this.startDate.clone().add(this.maxSpan); + + this.previousRightTime = this.endDate.clone(); + + this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); + + if (!this.isShowing) + this.updateElement(); + + this.updateMonthsInView(); + }, + + isInvalidDate: function() { + return false; + }, + + isCustomDate: function() { + return false; + }, + + updateView: function() { + if (this.timePicker) { + this.renderTimePicker('left'); + this.renderTimePicker('right'); + if (!this.endDate) { + this.container.find('.right .calendar-time select').prop('disabled', true).addClass('disabled'); + } else { + this.container.find('.right .calendar-time select').prop('disabled', false).removeClass('disabled'); + } + } + if (this.endDate) + this.container.find('.drp-selected').html(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format)); + this.updateMonthsInView(); + this.updateCalendars(); + this.updateFormInputs(); + }, + + updateMonthsInView: function() { + if (this.endDate) { + + //if both dates are visible already, do nothing + if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month && + (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) + && + (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM')) + ) { + return; + } + + this.leftCalendar.month = this.startDate.clone().date(2); + if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) { + this.rightCalendar.month = this.endDate.clone().date(2); + } else { + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + + } else { + if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) { + this.leftCalendar.month = this.startDate.clone().date(2); + this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month'); + } + } + if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) { + this.rightCalendar.month = this.maxDate.clone().date(2); + this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month'); + } + }, + + updateCalendars: function() { + + if (this.timePicker) { + var hour, minute, second; + if (this.endDate) { + hour = parseInt(this.container.find('.left .hourselect').val(), 10); + minute = parseInt(this.container.find('.left .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10); + } + second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.container.find('.left .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + } else { + hour = parseInt(this.container.find('.right .hourselect').val(), 10); + minute = parseInt(this.container.find('.right .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10); + } + second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; + if (!this.timePicker24Hour) { + var ampm = this.container.find('.right .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + } + this.leftCalendar.month.hour(hour).minute(minute).second(second); + this.rightCalendar.month.hour(hour).minute(minute).second(second); + } + + this.renderCalendar('left'); + this.renderCalendar('right'); + + //highlight any predefined range matching the current start and end dates + this.container.find('.ranges li').removeClass('active'); + if (this.endDate == null) return; + + this.calculateChosenLabel(); + }, + + renderCalendar: function(side) { + + // + // Build the matrix of dates that will populate the calendar + // + + var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar; + var month = calendar.month.month(); + var year = calendar.month.year(); + var hour = calendar.month.hour(); + var minute = calendar.month.minute(); + var second = calendar.month.second(); + var daysInMonth = moment([year, month]).daysInMonth(); + var firstDay = moment([year, month, 1]); + var lastDay = moment([year, month, daysInMonth]); + var lastMonth = moment(firstDay).subtract(1, 'month').month(); + var lastYear = moment(firstDay).subtract(1, 'month').year(); + var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth(); + var dayOfWeek = firstDay.day(); + + //initialize a 6 rows x 7 columns array for the calendar + var calendar = []; + calendar.firstDay = firstDay; + calendar.lastDay = lastDay; + + for (var i = 0; i < 6; i++) { + calendar[i] = []; + } + + //populate the calendar with date objects + var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1; + if (startDay > daysInLastMonth) + startDay -= 7; + + if (dayOfWeek == this.locale.firstDay) + startDay = daysInLastMonth - 6; + + var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]); + + var col, row; + for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) { + if (i > 0 && col % 7 === 0) { + col = 0; + row++; + } + calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second); + curDate.hour(12); + + if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') { + calendar[row][col] = this.minDate.clone(); + } + + if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') { + calendar[row][col] = this.maxDate.clone(); + } + + } + + //make the calendar object available to hoverDate/clickDate + if (side == 'left') { + this.leftCalendar.calendar = calendar; + } else { + this.rightCalendar.calendar = calendar; + } + + // + // Display the calendar + // + + var minDate = side == 'left' ? this.minDate : this.startDate; + var maxDate = this.maxDate; + var selected = side == 'left' ? this.startDate : this.endDate; + var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'}; + + var html = ''; + html += ''; + html += ''; + + // add empty cell for week number + if (this.showWeekNumbers || this.showISOWeekNumbers) + html += ''; + + if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) { + html += ''; + } else { + html += ''; + } + + var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY"); + + if (this.showDropdowns) { + var currentMonth = calendar[1][1].month(); + var currentYear = calendar[1][1].year(); + var maxYear = (maxDate && maxDate.year()) || (this.maxYear); + var minYear = (minDate && minDate.year()) || (this.minYear); + var inMinYear = currentYear == minYear; + var inMaxYear = currentYear == maxYear; + + var monthHtml = '"; + + var yearHtml = ''; + + dateHtml = monthHtml + yearHtml; + } + + html += ''; + if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) { + html += ''; + } else { + html += ''; + } + + html += ''; + html += ''; + + // add week number label + if (this.showWeekNumbers || this.showISOWeekNumbers) + html += ''; + + $.each(this.locale.daysOfWeek, function(index, dayOfWeek) { + html += ''; + }); + + html += ''; + html += ''; + html += ''; + + //adjust maxDate to reflect the maxSpan setting in order to + //grey out end dates beyond the maxSpan + if (this.endDate == null && this.maxSpan) { + var maxLimit = this.startDate.clone().add(this.maxSpan).endOf('day'); + if (!maxDate || maxLimit.isBefore(maxDate)) { + maxDate = maxLimit; + } + } + + for (var row = 0; row < 6; row++) { + html += ''; + + // add week number + if (this.showWeekNumbers) + html += ''; + else if (this.showISOWeekNumbers) + html += ''; + + for (var col = 0; col < 7; col++) { + + var classes = []; + + //highlight today's date + if (calendar[row][col].isSame(new Date(), "day")) + classes.push('today'); + + //highlight weekends + if (calendar[row][col].isoWeekday() > 5) + classes.push('weekend'); + + //grey out the dates in other months displayed at beginning and end of this calendar + if (calendar[row][col].month() != calendar[1][1].month()) + classes.push('off', 'ends'); + + //don't allow selection of dates before the minimum date + if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day')) + classes.push('off', 'disabled'); + + //don't allow selection of dates after the maximum date + if (maxDate && calendar[row][col].isAfter(maxDate, 'day')) + classes.push('off', 'disabled'); + + //don't allow selection of date if a custom function decides it's invalid + if (this.isInvalidDate(calendar[row][col])) + classes.push('off', 'disabled'); + + //highlight the currently selected start date + if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD')) + classes.push('active', 'start-date'); + + //highlight the currently selected end date + if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD')) + classes.push('active', 'end-date'); + + //highlight dates in-between the selected dates + if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate) + classes.push('in-range'); + + //apply custom classes for this date + var isCustom = this.isCustomDate(calendar[row][col]); + if (isCustom !== false) { + if (typeof isCustom === 'string') + classes.push(isCustom); + else + Array.prototype.push.apply(classes, isCustom); + } + + var cname = '', disabled = false; + for (var i = 0; i < classes.length; i++) { + cname += classes[i] + ' '; + if (classes[i] == 'disabled') + disabled = true; + } + if (!disabled) + cname += 'available'; + + html += ''; + + } + html += ''; + } + + html += ''; + html += '
' + dateHtml + '
' + this.locale.weekLabel + '' + dayOfWeek + '
' + calendar[row][0].week() + '' + calendar[row][0].isoWeek() + '' + calendar[row][col].date() + '
'; + + this.container.find('.drp-calendar.' + side + ' .calendar-table').html(html); + + }, + + renderTimePicker: function(side) { + + // Don't bother updating the time picker if it's currently disabled + // because an end date hasn't been clicked yet + if (side == 'right' && !this.endDate) return; + + var html, selected, minDate, maxDate = this.maxDate; + + if (this.maxSpan && (!this.maxDate || this.startDate.clone().add(this.maxSpan).isBefore(this.maxDate))) + maxDate = this.startDate.clone().add(this.maxSpan); + + if (side == 'left') { + selected = this.startDate.clone(); + minDate = this.minDate; + } else if (side == 'right') { + selected = this.endDate.clone(); + minDate = this.startDate; + + //Preserve the time already selected + var timeSelector = this.container.find('.drp-calendar.right .calendar-time'); + if (timeSelector.html() != '') { + + selected.hour(!isNaN(selected.hour()) ? selected.hour() : timeSelector.find('.hourselect option:selected').val()); + selected.minute(!isNaN(selected.minute()) ? selected.minute() : timeSelector.find('.minuteselect option:selected').val()); + selected.second(!isNaN(selected.second()) ? selected.second() : timeSelector.find('.secondselect option:selected').val()); + + if (!this.timePicker24Hour) { + var ampm = timeSelector.find('.ampmselect option:selected').val(); + if (ampm === 'PM' && selected.hour() < 12) + selected.hour(selected.hour() + 12); + if (ampm === 'AM' && selected.hour() === 12) + selected.hour(0); + } + + } + + if (selected.isBefore(this.startDate)) + selected = this.startDate.clone(); + + if (maxDate && selected.isAfter(maxDate)) + selected = maxDate.clone(); + + } + + // + // hours + // + + html = ' '; + + // + // minutes + // + + html += ': '; + + // + // seconds + // + + if (this.timePickerSeconds) { + html += ': '; + } + + // + // AM/PM + // + + if (!this.timePicker24Hour) { + html += ''; + } + + this.container.find('.drp-calendar.' + side + ' .calendar-time').html(html); + + }, + + updateFormInputs: function() { + + if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) { + this.container.find('button.applyBtn').prop('disabled', false); + } else { + this.container.find('button.applyBtn').prop('disabled', true); + } + + }, + + move: function() { + var parentOffset = { top: 0, left: 0 }, + containerTop, + drops = this.drops; + + var parentRightEdge = $(window).width(); + if (!this.parentEl.is('body')) { + parentOffset = { + top: this.parentEl.offset().top - this.parentEl.scrollTop(), + left: this.parentEl.offset().left - this.parentEl.scrollLeft() + }; + parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left; + } + + switch (drops) { + case 'auto': + containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + if (containerTop + this.container.outerHeight() >= this.parentEl[0].scrollHeight) { + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + drops = 'up'; + } + break; + case 'up': + containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top; + break; + default: + containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top; + break; + } + + // Force the container to it's actual width + this.container.css({ + top: 0, + left: 0, + right: 'auto' + }); + var containerWidth = this.container.outerWidth(); + + this.container.toggleClass('drop-up', drops == 'up'); + + if (this.opens == 'left') { + var containerRight = parentRightEdge - this.element.offset().left - this.element.outerWidth(); + if (containerWidth + containerRight > $(window).width()) { + this.container.css({ + top: containerTop, + right: 'auto', + left: 9 + }); + } else { + this.container.css({ + top: containerTop, + right: containerRight, + left: 'auto' + }); + } + } else if (this.opens == 'center') { + var containerLeft = this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2 + - containerWidth / 2; + if (containerLeft < 0) { + this.container.css({ + top: containerTop, + right: 'auto', + left: 9 + }); + } else if (containerLeft + containerWidth > $(window).width()) { + this.container.css({ + top: containerTop, + left: 'auto', + right: 0 + }); + } else { + this.container.css({ + top: containerTop, + left: containerLeft, + right: 'auto' + }); + } + } else { + var containerLeft = this.element.offset().left - parentOffset.left; + if (containerLeft + containerWidth > $(window).width()) { + this.container.css({ + top: containerTop, + left: 'auto', + right: 0 + }); + } else { + this.container.css({ + top: containerTop, + left: containerLeft, + right: 'auto' + }); + } + } + }, + + show: function(e) { + if (this.isShowing) return; + + // Create a click proxy that is private to this instance of datepicker, for unbinding + this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this); + + // Bind global datepicker mousedown for hiding and + $(document) + .on('mousedown.daterangepicker', this._outsideClickProxy) + // also support mobile devices + .on('touchend.daterangepicker', this._outsideClickProxy) + // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them + .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy) + // and also close when focus changes to outside the picker (eg. tabbing between controls) + .on('focusin.daterangepicker', this._outsideClickProxy); + + // Reposition the picker if the window is resized while it's open + $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this)); + + this.oldStartDate = this.startDate.clone(); + this.oldEndDate = this.endDate.clone(); + this.previousRightTime = this.endDate.clone(); + + this.updateView(); + this.container.show(); + this.move(); + this.element.trigger('show.daterangepicker', this); + this.isShowing = true; + }, + + hide: function(e) { + if (!this.isShowing) return; + + //incomplete date selection, revert to last values + if (!this.endDate) { + this.startDate = this.oldStartDate.clone(); + this.endDate = this.oldEndDate.clone(); + } + + //if a new date range was selected, invoke the user callback function + if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate)) + this.callback(this.startDate.clone(), this.endDate.clone(), this.chosenLabel); + + //if picker is attached to a text input, update it + this.updateElement(); + + $(document).off('.daterangepicker'); + $(window).off('.daterangepicker'); + this.container.hide(); + this.element.trigger('hide.daterangepicker', this); + this.isShowing = false; + }, + + toggle: function(e) { + if (this.isShowing) { + this.hide(); + } else { + this.show(); + } + }, + + outsideClick: function(e) { + var target = $(e.target); + // if the page is clicked anywhere except within the daterangerpicker/button + // itself then call this.hide() + if ( + // ie modal dialog fix + e.type == "focusin" || + target.closest(this.element).length || + target.closest(this.container).length || + target.closest('.calendar-table').length + ) return; + this.hide(); + this.element.trigger('outsideClick.daterangepicker', this); + }, + + showCalendars: function() { + this.container.addClass('show-calendar'); + this.move(); + this.element.trigger('showCalendar.daterangepicker', this); + }, + + hideCalendars: function() { + this.container.removeClass('show-calendar'); + this.element.trigger('hideCalendar.daterangepicker', this); + }, + + clickRange: function(e) { + var label = e.target.getAttribute('data-range-key'); + this.chosenLabel = label; + if (label == this.locale.customRangeLabel) { + this.showCalendars(); + } else { + var dates = this.ranges[label]; + this.startDate = dates[0]; + this.endDate = dates[1]; + + if (!this.timePicker) { + this.startDate.startOf('day'); + this.endDate.endOf('day'); + } + + if (!this.alwaysShowCalendars) + this.hideCalendars(); + this.clickApply(); + } + }, + + clickPrev: function(e) { + var cal = $(e.target).parents('.drp-calendar'); + if (cal.hasClass('left')) { + this.leftCalendar.month.subtract(1, 'month'); + if (this.linkedCalendars) + this.rightCalendar.month.subtract(1, 'month'); + } else { + this.rightCalendar.month.subtract(1, 'month'); + } + this.updateCalendars(); + }, + + clickNext: function(e) { + var cal = $(e.target).parents('.drp-calendar'); + if (cal.hasClass('left')) { + this.leftCalendar.month.add(1, 'month'); + } else { + this.rightCalendar.month.add(1, 'month'); + if (this.linkedCalendars) + this.leftCalendar.month.add(1, 'month'); + } + this.updateCalendars(); + }, + + hoverDate: function(e) { + + //ignore dates that can't be selected + if (!$(e.target).hasClass('available')) return; + + var title = $(e.target).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(e.target).parents('.drp-calendar'); + var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + + //highlight the dates between the start date and the date being hovered as a potential end date + var leftCalendar = this.leftCalendar; + var rightCalendar = this.rightCalendar; + var startDate = this.startDate; + if (!this.endDate) { + this.container.find('.drp-calendar tbody td').each(function(index, el) { + + //skip week numbers, only look at dates + if ($(el).hasClass('week')) return; + + var title = $(el).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(el).parents('.drp-calendar'); + var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col]; + + if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) { + $(el).addClass('in-range'); + } else { + $(el).removeClass('in-range'); + } + + }); + } + + }, + + clickDate: function(e) { + + if (!$(e.target).hasClass('available')) return; + + var title = $(e.target).attr('data-title'); + var row = title.substr(1, 1); + var col = title.substr(3, 1); + var cal = $(e.target).parents('.drp-calendar'); + var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col]; + + // + // this function needs to do a few things: + // * alternate between selecting a start and end date for the range, + // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date + // * if autoapply is enabled, and an end date was chosen, apply the selection + // * if single date picker mode, and time picker isn't enabled, apply the selection immediately + // * if one of the inputs above the calendars was focused, cancel that manual input + // + + if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start + if (this.timePicker) { + var hour = parseInt(this.container.find('.left .hourselect').val(), 10); + if (!this.timePicker24Hour) { + var ampm = this.container.find('.left .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + var minute = parseInt(this.container.find('.left .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.left .minuteselect option:last').val(), 10); + } + var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0; + date = date.clone().hour(hour).minute(minute).second(second); + } + this.endDate = null; + this.setStartDate(date.clone()); + } else if (!this.endDate && date.isBefore(this.startDate)) { + //special case: clicking the same date for start/end, + //but the time of the end date is before the start date + this.setEndDate(this.startDate.clone()); + } else { // picking end + if (this.timePicker) { + var hour = parseInt(this.container.find('.right .hourselect').val(), 10); + if (!this.timePicker24Hour) { + var ampm = this.container.find('.right .ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + var minute = parseInt(this.container.find('.right .minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(this.container.find('.right .minuteselect option:last').val(), 10); + } + var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0; + date = date.clone().hour(hour).minute(minute).second(second); + } + this.setEndDate(date.clone()); + if (this.autoApply) { + this.calculateChosenLabel(); + this.clickApply(); + } + } + + if (this.singleDatePicker) { + this.setEndDate(this.startDate); + if (!this.timePicker && this.autoApply) + this.clickApply(); + } + + this.updateView(); + + //This is to cancel the blur event handler if the mouse was in one of the inputs + e.stopPropagation(); + + }, + + calculateChosenLabel: function () { + var customRange = true; + var i = 0; + for (var range in this.ranges) { + if (this.timePicker) { + var format = this.timePickerSeconds ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD HH:mm"; + //ignore times when comparing dates if time picker seconds is not enabled + if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) { + customRange = false; + this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); + break; + } + } else { + //ignore times when comparing dates if time picker is not enabled + if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) { + customRange = false; + this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').attr('data-range-key'); + break; + } + } + i++; + } + if (customRange) { + if (this.showCustomRangeLabel) { + this.chosenLabel = this.container.find('.ranges li:last').addClass('active').attr('data-range-key'); + } else { + this.chosenLabel = null; + } + this.showCalendars(); + } + }, + + clickApply: function(e) { + this.hide(); + this.element.trigger('apply.daterangepicker', this); + }, + + clickCancel: function(e) { + this.startDate = this.oldStartDate; + this.endDate = this.oldEndDate; + this.hide(); + this.element.trigger('cancel.daterangepicker', this); + }, + + monthOrYearChanged: function(e) { + var isLeft = $(e.target).closest('.drp-calendar').hasClass('left'), + leftOrRight = isLeft ? 'left' : 'right', + cal = this.container.find('.drp-calendar.'+leftOrRight); + + // Month must be Number for new moment versions + var month = parseInt(cal.find('.monthselect').val(), 10); + var year = cal.find('.yearselect').val(); + + if (!isLeft) { + if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) { + month = this.startDate.month(); + year = this.startDate.year(); + } + } + + if (this.minDate) { + if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) { + month = this.minDate.month(); + year = this.minDate.year(); + } + } + + if (this.maxDate) { + if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) { + month = this.maxDate.month(); + year = this.maxDate.year(); + } + } + + if (isLeft) { + this.leftCalendar.month.month(month).year(year); + if (this.linkedCalendars) + this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month'); + } else { + this.rightCalendar.month.month(month).year(year); + if (this.linkedCalendars) + this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month'); + } + this.updateCalendars(); + }, + + timeChanged: function(e) { + + var cal = $(e.target).closest('.drp-calendar'), + isLeft = cal.hasClass('left'); + + var hour = parseInt(cal.find('.hourselect').val(), 10); + var minute = parseInt(cal.find('.minuteselect').val(), 10); + if (isNaN(minute)) { + minute = parseInt(cal.find('.minuteselect option:last').val(), 10); + } + var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0; + + if (!this.timePicker24Hour) { + var ampm = cal.find('.ampmselect').val(); + if (ampm === 'PM' && hour < 12) + hour += 12; + if (ampm === 'AM' && hour === 12) + hour = 0; + } + + if (isLeft) { + var start = this.startDate.clone(); + start.hour(hour); + start.minute(minute); + start.second(second); + this.setStartDate(start); + if (this.singleDatePicker) { + this.endDate = this.startDate.clone(); + } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) { + this.setEndDate(start.clone()); + } + } else if (this.endDate) { + var end = this.endDate.clone(); + end.hour(hour); + end.minute(minute); + end.second(second); + this.setEndDate(end); + } + + //update the calendars so all clickable dates reflect the new time component + this.updateCalendars(); + + //update the form inputs above the calendars with the new time + this.updateFormInputs(); + + //re-render the time pickers because changing one selection can affect what's enabled in another + this.renderTimePicker('left'); + this.renderTimePicker('right'); + + }, + + elementChanged: function() { + if (!this.element.is('input')) return; + if (!this.element.val().length) return; + + var dateString = this.element.val().split(this.locale.separator), + start = null, + end = null; + + if (dateString.length === 2) { + start = moment(dateString[0], this.locale.format); + end = moment(dateString[1], this.locale.format); + } + + if (this.singleDatePicker || start === null || end === null) { + start = moment(this.element.val(), this.locale.format); + end = start; + } + + if (!start.isValid() || !end.isValid()) return; + + this.setStartDate(start); + this.setEndDate(end); + this.updateView(); + }, + + keydown: function(e) { + //hide on tab or enter + if ((e.keyCode === 9) || (e.keyCode === 13)) { + this.hide(); + } + + //hide on esc and prevent propagation + if (e.keyCode === 27) { + e.preventDefault(); + e.stopPropagation(); + + this.hide(); + } + }, + + updateElement: function() { + if (this.element.is('input') && this.autoUpdateInput) { + var newValue = this.startDate.format(this.locale.format); + if (!this.singleDatePicker) { + newValue += this.locale.separator + this.endDate.format(this.locale.format); + } + if (newValue !== this.element.val()) { + this.element.val(newValue).trigger('change'); + } + } + }, + + remove: function() { + this.container.remove(); + this.element.off('.daterangepicker'); + this.element.removeData(); + } + + }; + + $.fn.daterangepicker = function(options, callback) { + var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options); + this.each(function() { + var el = $(this); + if (el.data('daterangepicker')) + el.data('daterangepicker').remove(); + el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback)); + }); + return this; + }; + + return DateRangePicker; + +})); diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/css/bootstrap.css b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/css/bootstrap.css new file mode 100644 index 00000000..b7ab57f2 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/css/bootstrap.css @@ -0,0 +1,12057 @@ +@charset "UTF-8"; +/*! + * Bootstrap v5.3.3 (https://getbootstrap.com/) + * Copyright 2011-2024 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +:root, +[data-bs-theme=light] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg: #fff; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545; +} + +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + +body { + margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; +} + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color); +} + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); +} +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; + } +} + +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); +} +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; + } +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title] { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); +} + +sub, +sup { + position: relative; + font-size: 0.75em; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: underline; +} +a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb); +} + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: var(--bs-font-monospace); + font-size: 1em; +} + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; +} +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; +} +a > code { + color: inherit; +} + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; +} +kbd kbd { + padding: 0; + font-size: 1em; +} + +figure { + margin: 0 0 1rem; +} + +img, +svg { + vertical-align: middle; +} + +table { + caption-side: bottom; + border-collapse: collapse; +} + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, +td, +th { + border-color: inherit; + border-style: solid; + border-width: 0; +} + +label { + display: inline-block; +} + +button { + border-radius: 0; +} + +button:focus:not(:focus-visible) { + outline: 0; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +select { + text-transform: none; +} + +[role=button] { + cursor: pointer; +} + +select { + word-wrap: normal; +} +select:disabled { + opacity: 1; +} + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; +} + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; +} +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; +} + +::-moz-focus-inner { + padding: 0; + border-style: none; +} + +textarea { + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; +} +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } +} +legend + * { + clear: left; +} + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; +} + +::-webkit-inner-spin-button { + height: auto; +} + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; +} + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-color-swatch-wrapper { + padding: 0; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +::file-selector-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +iframe { + border: 0; +} + +summary { + display: list-item; + cursor: pointer; +} + +progress { + vertical-align: baseline; +} + +[hidden] { + display: none !important; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } +} + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } +} + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } +} + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } +} + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } +} + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; +} +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 0.875em; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} +.blockquote > :last-child { + margin-bottom: 0; +} + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; +} +.blockquote-footer::before { + content: "— "; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } +} +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } +} +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } +} +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } +} +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } +} +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; +} + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); +} + +.col { + flex: 1 0 0%; +} + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; +} + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; +} + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; +} + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; +} + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; +} + +.col-3 { + flex: 0 0 auto; + width: 25%; +} + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; +} + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; +} + +.col-6 { + flex: 0 0 auto; + width: 50%; +} + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; +} + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; +} + +.col-9 { + flex: 0 0 auto; + width: 75%; +} + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; +} + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; +} + +.col-12 { + flex: 0 0 auto; + width: 100%; +} + +.offset-1 { + margin-left: 8.33333333%; +} + +.offset-2 { + margin-left: 16.66666667%; +} + +.offset-3 { + margin-left: 25%; +} + +.offset-4 { + margin-left: 33.33333333%; +} + +.offset-5 { + margin-left: 41.66666667%; +} + +.offset-6 { + margin-left: 50%; +} + +.offset-7 { + margin-left: 58.33333333%; +} + +.offset-8 { + margin-left: 66.66666667%; +} + +.offset-9 { + margin-left: 75%; +} + +.offset-10 { + margin-left: 83.33333333%; +} + +.offset-11 { + margin-left: 91.66666667%; +} + +.g-0, +.gx-0 { + --bs-gutter-x: 0; +} + +.g-0, +.gy-0 { + --bs-gutter-y: 0; +} + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; +} + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; +} + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; +} + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; +} + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; +} + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; +} + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; +} + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; +} + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; +} + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; +} + +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-sm-0 { + margin-left: 0; + } + .offset-sm-1 { + margin-left: 8.33333333%; + } + .offset-sm-2 { + margin-left: 16.66666667%; + } + .offset-sm-3 { + margin-left: 25%; + } + .offset-sm-4 { + margin-left: 33.33333333%; + } + .offset-sm-5 { + margin-left: 41.66666667%; + } + .offset-sm-6 { + margin-left: 50%; + } + .offset-sm-7 { + margin-left: 58.33333333%; + } + .offset-sm-8 { + margin-left: 66.66666667%; + } + .offset-sm-9 { + margin-left: 75%; + } + .offset-sm-10 { + margin-left: 83.33333333%; + } + .offset-sm-11 { + margin-left: 91.66666667%; + } + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-md-0 { + margin-left: 0; + } + .offset-md-1 { + margin-left: 8.33333333%; + } + .offset-md-2 { + margin-left: 16.66666667%; + } + .offset-md-3 { + margin-left: 25%; + } + .offset-md-4 { + margin-left: 33.33333333%; + } + .offset-md-5 { + margin-left: 41.66666667%; + } + .offset-md-6 { + margin-left: 50%; + } + .offset-md-7 { + margin-left: 58.33333333%; + } + .offset-md-8 { + margin-left: 66.66666667%; + } + .offset-md-9 { + margin-left: 75%; + } + .offset-md-10 { + margin-left: 83.33333333%; + } + .offset-md-11 { + margin-left: 91.66666667%; + } + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-lg-0 { + margin-left: 0; + } + .offset-lg-1 { + margin-left: 8.33333333%; + } + .offset-lg-2 { + margin-left: 16.66666667%; + } + .offset-lg-3 { + margin-left: 25%; + } + .offset-lg-4 { + margin-left: 33.33333333%; + } + .offset-lg-5 { + margin-left: 41.66666667%; + } + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xl-0 { + margin-left: 0; + } + .offset-xl-1 { + margin-left: 8.33333333%; + } + .offset-xl-2 { + margin-left: 16.66666667%; + } + .offset-xl-3 { + margin-left: 25%; + } + .offset-xl-4 { + margin-left: 33.33333333%; + } + .offset-xl-5 { + margin-left: 41.66666667%; + } + .offset-xl-6 { + margin-left: 50%; + } + .offset-xl-7 { + margin-left: 58.33333333%; + } + .offset-xl-8 { + margin-left: 66.66666667%; + } + .offset-xl-9 { + margin-left: 75%; + } + .offset-xl-10 { + margin-left: 83.33333333%; + } + .offset-xl-11 { + margin-left: 91.66666667%; + } + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { + margin-left: 0; + } + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } +} +.table { + --bs-table-color-type: initial; + --bs-table-bg-type: initial; + --bs-table-color-state: initial; + --bs-table-bg-state: initial; + --bs-table-color: var(--bs-emphasis-color); + --bs-table-bg: var(--bs-body-bg); + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); + width: 100%; + margin-bottom: 1rem; + vertical-align: top; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); + background-color: var(--bs-table-bg); + border-bottom-width: var(--bs-border-width); + box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); +} +.table > tbody { + vertical-align: inherit; +} +.table > thead { + vertical-align: bottom; +} + +.table-group-divider { + border-top: calc(var(--bs-border-width) * 2) solid currentcolor; +} + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: var(--bs-border-width) 0; +} +.table-bordered > :not(caption) > * > * { + border-width: 0 var(--bs-border-width); +} + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; +} +.table-borderless > :not(:first-child) { + border-top-width: 0; +} + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); +} + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); +} + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); +} + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #a6b5cc; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #b5b6b7; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #a7b9b1; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #a6c3ca; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #ccc2a4; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #c6acae; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #c6c7c8; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #4d5154; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-responsive { + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } +} +.form-label { + margin-bottom: 0.5rem; +} + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; +} + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); +} + +.form-control { + display: block; + width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-clip: padding-box; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} +.form-control[type=file] { + overflow: hidden; +} +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control:focus { + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; +} +.form-control::-webkit-datetime-edit { + display: block; + padding: 0; +} +.form-control::-moz-placeholder { + color: var(--bs-secondary-color); + opacity: 1; +} +.form-control::placeholder { + color: var(--bs-secondary-color); + opacity: 1; +} +.form-control:disabled { + background-color: var(--bs-secondary-bg); + opacity: 1; +} +.form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; + } + .form-control::file-selector-button { + transition: none; + } +} +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: var(--bs-secondary-bg); +} +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; +} +.form-control-plaintext:focus { + outline: 0; +} +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); +} + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.375rem; +} +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; +} +.form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); +} +.form-control-color::-webkit-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); +} +.form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); +} + +.form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); + display: block; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; +} +.form-select:disabled { + background-color: var(--bs-secondary-bg); +} +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 var(--bs-body-color); +} + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} + +[data-bs-theme=dark] .form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); +} + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; +} +.form-check .form-check-input { + float: left; + margin-left: -1.5em; +} + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; +} +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; +} + +.form-check-input { + --bs-form-check-bg: var(--bs-body-bg); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-form-check-bg); + background-image: var(--bs-form-check-bg-image); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: var(--bs-border-width) solid var(--bs-border-color); + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; +} +.form-check-input:active { + filter: brightness(90%); +} +.form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; +} +.form-check-input:checked[type=checkbox] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); +} +.form-check-input:checked[type=radio] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); +} +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; +} +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; +} + +.form-switch { + padding-left: 2.5em; +} +.form-switch .form-check-input { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + width: 2em; + margin-left: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } +} +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); +} +.form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} +.form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; +} +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; +} + +.form-check-inline { + display: inline-block; + margin-right: 1rem; +} + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; +} + +[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); +} + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: transparent; +} +.form-range:focus { + outline: 0; +} +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.form-range::-moz-focus-outer { + border: 0; +} +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + -webkit-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} +.form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; +} +.form-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + -moz-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} +.form-range::-moz-range-thumb:active { + background-color: #b6d4fe; +} +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; +} +.form-range:disabled { + pointer-events: none; +} +.form-range:disabled::-webkit-slider-thumb { + background-color: var(--bs-secondary-color); +} +.form-range:disabled::-moz-range-thumb { + background-color: var(--bs-secondary-color); +} + +.form-floating { + position: relative; +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext, +.form-floating > .form-select { + height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + line-height: 1.25; +} +.form-floating > label { + position: absolute; + top: 0; + left: 0; + z-index: 2; + height: 100%; + padding: 1rem 0.75rem; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } +} +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; +} +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; +} +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; +} +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); +} +.form-floating > .form-control:focus ~ label::after, +.form-floating > .form-control:not(:placeholder-shown) ~ label::after, +.form-floating > .form-control-plaintext ~ label::after, +.form-floating > .form-select ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); +} +.form-floating > .form-control:-webkit-autofill ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; +} +.form-floating > :disabled ~ label, +.form-floating > .form-control:disabled ~ label { + color: #6c757d; +} +.form-floating > :disabled ~ label::after, +.form-floating > .form-control:disabled ~ label::after { + background-color: var(--bs-secondary-bg); +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { + position: relative; + flex: 1 1 auto; + width: 1%; + min-width: 0; +} +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; +} +.input-group .btn { + position: relative; + z-index: 2; +} +.input-group .btn:focus { + z-index: 5; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-tertiary-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); +} + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; +} + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(var(--bs-border-width) * -1); + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius); +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); +} +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); +} +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); +} +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); +} + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius); +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); +} + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); +} +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); +} +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); +} +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); +} + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; +} + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; +} + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); +} +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn-check:checked:focus-visible + .btn { + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); +} + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; +} + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; +} + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; +} + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; +} + +.btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; +} + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; +} + +.btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; +} + +.btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; +} + +.btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; +} + +.btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; +} + +.btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; +} + +.btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; +} + +.btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; +} + +.btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; +} + +.btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; +} + +.btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; +} + +.btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: 0 0 0 #000; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; +} +.btn-link:focus-visible { + color: var(--bs-btn-color); +} +.btn-link:hover { + color: var(--bs-btn-hover-color); +} + +.btn-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: var(--bs-border-radius-lg); +} + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: var(--bs-border-radius-sm); +} + +.fade { + transition: opacity 0.15s linear; +} +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } +} + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: var(--bs-body-color); + --bs-dropdown-bg: var(--bs-body-bg); + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: var(--bs-border-radius); + --bs-dropdown-border-width: var(--bs-border-width); + --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: var(--bs-box-shadow); + --bs-dropdown-link-color: var(--bs-body-color); + --bs-dropdown-link-hover-color: var(--bs-body-color); + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); +} +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); +} + +.dropdown-menu-start { + --bs-position: start; +} +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; +} + +.dropdown-menu-end { + --bs-position: end; +} +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; + } + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-sm-end { + --bs-position: end; + } + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 768px) { + .dropdown-menu-md-start { + --bs-position: start; + } + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-md-end { + --bs-position: end; + } + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; + } + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-lg-end { + --bs-position: end; + } + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; + } + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xl-end { + --bs-position: end; + } + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; + } + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; + } + .dropdown-menu-xxl-end { + --bs-position: end; + } + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; + } +} +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); +} +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: var(--bs-dropdown-spacer); +} +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} +.dropend .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropend .dropdown-toggle::after { + vertical-align: 0; +} + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); +} +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} +.dropstart .dropdown-toggle::after { + display: none; +} +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; +} + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border: 0; + border-radius: var(--bs-dropdown-item-border-radius, 0); +} +.dropdown-item:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); +} +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); +} +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); +} + +.dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.btn-toolbar .input-group { + width: auto; +} + +.btn-group { + border-radius: var(--bs-border-radius); +} +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: calc(var(--bs-border-width) * -1); +} +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; +} +.dropstart .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: calc(var(--bs-border-width) * -1); +} +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + background: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; + } +} +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); +} +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); +} +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; +} + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); +} +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; +} +.nav-pills .nav-link { + border-radius: var(--bs-nav-pills-border-radius); +} +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); +} + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap); +} +.nav-underline .nav-link { + padding-right: 0; + padding-left: 0; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; +} +.nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; +} +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; +} + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; +} + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; +} + +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} + +.navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); + --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); + --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); + --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); + --bs-navbar-toggler-border-radius: var(--bs-border-radius); + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; +} +.navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; + white-space: nowrap; +} +.navbar-brand:hover, .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); +} + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar-nav .nav-link.active, .navbar-nav .nav-link.show { + color: var(--bs-navbar-active-color); +} +.navbar-nav .dropdown-menu { + position: static; +} + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); +} +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); +} +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } +} +.navbar-toggler:hover { + text-decoration: none; +} +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; +} + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } +} +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; +} +.navbar-expand .navbar-nav { + flex-direction: row; +} +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} +.navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); +} +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} +.navbar-expand .navbar-toggler { + display: none; +} +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { + display: none; +} +.navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; +} + +.navbar-dark, +.navbar[data-bs-theme=dark] { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +[data-bs-theme=dark] .navbar-toggler-icon { + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-title-color: ; + --bs-card-subtitle-color: ; + --bs-card-border-width: var(--bs-border-width); + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: var(--bs-border-radius); + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: var(--bs-body-bg); + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + color: var(--bs-body-color); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); +} +.card > hr { + margin-right: 0; + margin-left: 0; +} +.card > .list-group { + border-top: inherit; + border-bottom: inherit; +} +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; +} + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); +} + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); + color: var(--bs-card-title-color); +} + +.card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); + margin-bottom: 0; + color: var(--bs-card-subtitle-color); +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link + .card-link { + margin-left: var(--bs-card-spacer-x); +} + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; +} + +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); +} +.card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); +} + +.card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; +} +.card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); +} + +.card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); +} + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); +} +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; + } + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; + } + .card-group > .card + .card { + margin-left: 0; + border-left: 0; + } + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: var(--bs-primary-text-emphasis); + --bs-accordion-active-bg: var(--bs-primary-bg-subtle); +} + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } +} +.accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); +} +.accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); +} +.accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); +} +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } +} +.accordion-button:hover { + z-index: 2; +} +.accordion-button:focus { + z-index: 3; + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); +} + +.accordion-header { + margin-bottom: 0; +} + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); +} +.accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); +} +.accordion-item:first-of-type > .accordion-header .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:not(:first-of-type) { + border-top: 0; +} +.accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} +.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); +} +.accordion-item:last-of-type > .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); +} + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); +} + +.accordion-flush > .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; +} +.accordion-flush > .accordion-item:first-child { + border-top: 0; +} +.accordion-flush > .accordion-item:last-child { + border-bottom: 0; +} +.accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed { + border-radius: 0; +} +.accordion-flush > .accordion-item > .accordion-collapse { + border-radius: 0; +} + +[data-bs-theme=dark] .accordion-button::after { + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: var(--bs-secondary-color); + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); +} +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; +} +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); +} + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: var(--bs-body-bg); + --bs-pagination-border-width: var(--bs-border-width); + --bs-pagination-border-color: var(--bs-border-color); + --bs-pagination-border-radius: var(--bs-border-radius); + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: var(--bs-tertiary-bg); + --bs-pagination-hover-border-color: var(--bs-border-color); + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: var(--bs-secondary-bg); + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: var(--bs-secondary-color); + --bs-pagination-disabled-bg: var(--bs-secondary-bg); + --bs-pagination-disabled-border-color: var(--bs-border-color); + display: flex; + padding-left: 0; + list-style: none; +} + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } +} +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); +} +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); +} +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); +} + +.page-item:not(:first-child) .page-link { + margin-left: calc(var(--bs-border-width) * -1); +} +.page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); +} +.page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); +} + +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: var(--bs-border-radius-lg); +} + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: var(--bs-border-radius-sm); +} + +.badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: var(--bs-border-radius); + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); +} +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); + --bs-alert-border-radius: var(--bs-border-radius); + --bs-alert-link-color: inherit; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; + color: var(--bs-alert-link-color); +} + +.alert-dismissible { + padding-right: 3rem; +} +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; +} + +.alert-primary { + --bs-alert-color: var(--bs-primary-text-emphasis); + --bs-alert-bg: var(--bs-primary-bg-subtle); + --bs-alert-border-color: var(--bs-primary-border-subtle); + --bs-alert-link-color: var(--bs-primary-text-emphasis); +} + +.alert-secondary { + --bs-alert-color: var(--bs-secondary-text-emphasis); + --bs-alert-bg: var(--bs-secondary-bg-subtle); + --bs-alert-border-color: var(--bs-secondary-border-subtle); + --bs-alert-link-color: var(--bs-secondary-text-emphasis); +} + +.alert-success { + --bs-alert-color: var(--bs-success-text-emphasis); + --bs-alert-bg: var(--bs-success-bg-subtle); + --bs-alert-border-color: var(--bs-success-border-subtle); + --bs-alert-link-color: var(--bs-success-text-emphasis); +} + +.alert-info { + --bs-alert-color: var(--bs-info-text-emphasis); + --bs-alert-bg: var(--bs-info-bg-subtle); + --bs-alert-border-color: var(--bs-info-border-subtle); + --bs-alert-link-color: var(--bs-info-text-emphasis); +} + +.alert-warning { + --bs-alert-color: var(--bs-warning-text-emphasis); + --bs-alert-bg: var(--bs-warning-bg-subtle); + --bs-alert-border-color: var(--bs-warning-border-subtle); + --bs-alert-link-color: var(--bs-warning-text-emphasis); +} + +.alert-danger { + --bs-alert-color: var(--bs-danger-text-emphasis); + --bs-alert-bg: var(--bs-danger-bg-subtle); + --bs-alert-border-color: var(--bs-danger-border-subtle); + --bs-alert-link-color: var(--bs-danger-text-emphasis); +} + +.alert-light { + --bs-alert-color: var(--bs-light-text-emphasis); + --bs-alert-bg: var(--bs-light-bg-subtle); + --bs-alert-border-color: var(--bs-light-border-subtle); + --bs-alert-link-color: var(--bs-light-text-emphasis); +} + +.alert-dark { + --bs-alert-color: var(--bs-dark-text-emphasis); + --bs-alert-bg: var(--bs-dark-bg-subtle); + --bs-alert-border-color: var(--bs-dark-border-subtle); + --bs-alert-link-color: var(--bs-dark-text-emphasis); +} + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress, +.progress-stacked { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: var(--bs-secondary-bg); + --bs-progress-border-radius: var(--bs-border-radius); + --bs-progress-box-shadow: var(--bs-box-shadow-inset); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); +} +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: var(--bs-progress-height) var(--bs-progress-height); +} + +.progress-stacked > .progress { + overflow: visible; +} + +.progress-stacked > .progress > .progress-bar { + width: 100%; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; +} +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } +} + +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: var(--bs-secondary-color); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); + --bs-list-group-action-active-color: var(--bs-body-color); + --bs-list-group-action-active-bg: var(--bs-secondary-bg); + --bs-list-group-disabled-color: var(--bs-secondary-color); + --bs-list-group-disabled-bg: var(--bs-body-bg); + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + border-radius: var(--bs-list-group-border-radius); +} + +.list-group-numbered { + list-style-type: none; + counter-reset: section; +} +.list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; +} + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; +} +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); +} +.list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); +} + +.list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); +} +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; +} +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; +} +.list-group-item.disabled, .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); +} +.list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); +} +.list-group-item + .list-group-item { + border-top-width: 0; +} +.list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); +} + +.list-group-horizontal { + flex-direction: row; +} +.list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; +} +.list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; +} +.list-group-horizontal > .list-group-item.active { + margin-top: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; +} +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); +} + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } +} +.list-group-flush { + border-radius: 0; +} +.list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); +} +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + --bs-list-group-color: var(--bs-primary-text-emphasis); + --bs-list-group-bg: var(--bs-primary-bg-subtle); + --bs-list-group-border-color: var(--bs-primary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); + --bs-list-group-active-color: var(--bs-primary-bg-subtle); + --bs-list-group-active-bg: var(--bs-primary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); +} + +.list-group-item-secondary { + --bs-list-group-color: var(--bs-secondary-text-emphasis); + --bs-list-group-bg: var(--bs-secondary-bg-subtle); + --bs-list-group-border-color: var(--bs-secondary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); + --bs-list-group-active-color: var(--bs-secondary-bg-subtle); + --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); +} + +.list-group-item-success { + --bs-list-group-color: var(--bs-success-text-emphasis); + --bs-list-group-bg: var(--bs-success-bg-subtle); + --bs-list-group-border-color: var(--bs-success-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-success-border-subtle); + --bs-list-group-active-color: var(--bs-success-bg-subtle); + --bs-list-group-active-bg: var(--bs-success-text-emphasis); + --bs-list-group-active-border-color: var(--bs-success-text-emphasis); +} + +.list-group-item-info { + --bs-list-group-color: var(--bs-info-text-emphasis); + --bs-list-group-bg: var(--bs-info-bg-subtle); + --bs-list-group-border-color: var(--bs-info-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-info-border-subtle); + --bs-list-group-active-color: var(--bs-info-bg-subtle); + --bs-list-group-active-bg: var(--bs-info-text-emphasis); + --bs-list-group-active-border-color: var(--bs-info-text-emphasis); +} + +.list-group-item-warning { + --bs-list-group-color: var(--bs-warning-text-emphasis); + --bs-list-group-bg: var(--bs-warning-bg-subtle); + --bs-list-group-border-color: var(--bs-warning-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); + --bs-list-group-active-color: var(--bs-warning-bg-subtle); + --bs-list-group-active-bg: var(--bs-warning-text-emphasis); + --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); +} + +.list-group-item-danger { + --bs-list-group-color: var(--bs-danger-text-emphasis); + --bs-list-group-bg: var(--bs-danger-bg-subtle); + --bs-list-group-border-color: var(--bs-danger-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); + --bs-list-group-active-color: var(--bs-danger-bg-subtle); + --bs-list-group-active-bg: var(--bs-danger-text-emphasis); + --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); +} + +.list-group-item-light { + --bs-list-group-color: var(--bs-light-text-emphasis); + --bs-list-group-bg: var(--bs-light-bg-subtle); + --bs-list-group-border-color: var(--bs-light-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-light-border-subtle); + --bs-list-group-active-color: var(--bs-light-bg-subtle); + --bs-list-group-active-bg: var(--bs-light-text-emphasis); + --bs-list-group-active-border-color: var(--bs-light-text-emphasis); +} + +.list-group-item-dark { + --bs-list-group-color: var(--bs-dark-text-emphasis); + --bs-list-group-bg: var(--bs-dark-bg-subtle); + --bs-list-group-border-color: var(--bs-dark-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); + --bs-list-group-active-color: var(--bs-dark-bg-subtle); + --bs-list-group-active-bg: var(--bs-dark-text-emphasis); + --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); +} + +.btn-close { + --bs-btn-close-color: #000; + --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); + --bs-btn-close-opacity: 0.5; + --bs-btn-close-hover-opacity: 0.75; + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-btn-close-focus-opacity: 1; + --bs-btn-close-disabled-opacity: 0.25; + --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; + border: 0; + border-radius: 0.375rem; + opacity: var(--bs-btn-close-opacity); +} +.btn-close:hover { + color: var(--bs-btn-close-color); + text-decoration: none; + opacity: var(--bs-btn-close-hover-opacity); +} +.btn-close:focus { + outline: 0; + box-shadow: var(--bs-btn-close-focus-shadow); + opacity: var(--bs-btn-close-focus-opacity); +} +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: var(--bs-btn-close-disabled-opacity); +} + +.btn-close-white { + filter: var(--bs-btn-close-white-filter); +} + +[data-bs-theme=dark] .btn-close { + filter: var(--bs-btn-close-white-filter); +} + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-border-width: var(--bs-border-width); + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: var(--bs-border-radius); + --bs-toast-box-shadow: var(--bs-box-shadow); + --bs-toast-header-color: var(--bs-secondary-color); + --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-header-border-color: var(--bs-border-color-translucent); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} +.toast.showing { + opacity: 0; +} +.toast:not(.show) { + display: none; +} + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; +} +.toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); +} + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} +.toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); +} + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; +} + +.modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: ; + --bs-modal-bg: var(--bs-body-bg); + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: var(--bs-border-width); + --bs-modal-border-radius: var(--bs-border-radius-lg); + --bs-modal-box-shadow: var(--bs-box-shadow-sm); + --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: var(--bs-border-width); + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: var(--bs-border-width); + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-modal-zindex); + display: none; + width: 100%; + height: 100%; + overflow-x: hidden; + overflow-y: auto; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: var(--bs-modal-margin); + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; +} +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); + outline: 0; +} + +.modal-backdrop { + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; + top: 0; + left: 0; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); +} + +.modal-header { + display: flex; + flex-shrink: 0; + align-items: center; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; +} + +.modal-title { + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: var(--bs-modal-padding); +} + +.modal-footer { + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} +.modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); +} + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } +} +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: var(--bs-body-bg); + --bs-tooltip-bg: var(--bs-emphasis-color); + --bs-tooltip-border-radius: var(--bs-border-radius); + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: var(--bs-tooltip-opacity); +} +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); +} +.tooltip .tooltip-arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: var(--bs-body-bg); + --bs-popover-border-width: var(--bs-border-width); + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: var(--bs-border-radius-lg); + --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); + --bs-popover-box-shadow: var(--bs-box-shadow); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: inherit; + --bs-popover-header-bg: var(--bs-secondary-bg); + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: var(--bs-body-color); + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")*/; +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") /*rtl:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")*/; +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +[data-bs-theme=dark] .carousel .carousel-control-prev-icon, +[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon, +[data-bs-theme=dark].carousel .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] { + background-color: #000; +} +[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption { + color: #000; +} + +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --bs-offcanvas-transition: transform 0.3s ease-in-out; + --bs-offcanvas-title-line-height: 1.5; +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-offcanvas-padding-y)) calc(-0.5 * var(--bs-offcanvas-padding-x)) calc(-0.5 * var(--bs-offcanvas-padding-y)) auto; +} + +.offcanvas-title { + margin-bottom: 0; + line-height: var(--bs-offcanvas-title-line-height); +} + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} +.placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite; +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.text-bg-primary { + color: #fff !important; + background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #000 !important; + background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.link-primary { + color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-primary:hover, .link-primary:focus { + color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-secondary { + color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-secondary:hover, .link-secondary:focus { + color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-success { + color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-success:hover, .link-success:focus { + color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-info { + color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-info:hover, .link-info:focus { + color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-warning { + color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-warning:hover, .link-warning:focus { + color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-danger { + color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-danger:hover, .link-danger:focus { + color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-light { + color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-light:hover, .link-light:focus { + color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-dark { + color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-dark:hover, .link-dark:focus { + color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-body-emphasis { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); +} + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; +} +@media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; + } +} + +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} +.visually-hidden:not(caption), +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.vr { + display: inline-block; + align-self: stretch; + width: var(--bs-border-width); + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-start { + float: left !important; +} + +.float-end { + float: right !important; +} + +.float-none { + float: none !important; +} + +.object-fit-contain { + -o-object-fit: contain !important; + object-fit: contain !important; +} + +.object-fit-cover { + -o-object-fit: cover !important; + object-fit: cover !important; +} + +.object-fit-fill { + -o-object-fit: fill !important; + object-fit: fill !important; +} + +.object-fit-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; +} + +.object-fit-none { + -o-object-fit: none !important; + object-fit: none !important; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.75 !important; +} + +.opacity-100 { + opacity: 1 !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.overflow-x-auto { + overflow-x: auto !important; +} + +.overflow-x-hidden { + overflow-x: hidden !important; +} + +.overflow-x-visible { + overflow-x: visible !important; +} + +.overflow-x-scroll { + overflow-x: scroll !important; +} + +.overflow-y-auto { + overflow-y: auto !important; +} + +.overflow-y-hidden { + overflow-y: hidden !important; +} + +.overflow-y-visible { + overflow-y: visible !important; +} + +.overflow-y-scroll { + overflow-y: scroll !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-inline-grid { + display: inline-grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.shadow { + box-shadow: var(--bs-box-shadow) !important; +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.focus-ring-primary { + --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-secondary { + --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-success { + --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-info { + --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-warning { + --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-danger { + --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-light { + --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-dark { + --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.top-100 { + top: 100% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.bottom-50 { + bottom: 50% !important; +} + +.bottom-100 { + bottom: 100% !important; +} + +.start-0 { + left: 0 !important; +} + +.start-50 { + left: 50% !important; +} + +.start-100 { + left: 100% !important; +} + +.end-0 { + right: 0 !important; +} + +.end-50 { + right: 50% !important; +} + +.end-100 { + right: 100% !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; +} + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; +} + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; +} + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; +} + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; +} + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; +} + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; +} + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; +} + +.border-black { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; +} + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; +} + +.border-primary-subtle { + border-color: var(--bs-primary-border-subtle) !important; +} + +.border-secondary-subtle { + border-color: var(--bs-secondary-border-subtle) !important; +} + +.border-success-subtle { + border-color: var(--bs-success-border-subtle) !important; +} + +.border-info-subtle { + border-color: var(--bs-info-border-subtle) !important; +} + +.border-warning-subtle { + border-color: var(--bs-warning-border-subtle) !important; +} + +.border-danger-subtle { + border-color: var(--bs-danger-border-subtle) !important; +} + +.border-light-subtle { + border-color: var(--bs-light-border-subtle) !important; +} + +.border-dark-subtle { + border-color: var(--bs-dark-border-subtle) !important; +} + +.border-1 { + border-width: 1px !important; +} + +.border-2 { + border-width: 2px !important; +} + +.border-3 { + border-width: 3px !important; +} + +.border-4 { + border-width: 4px !important; +} + +.border-5 { + border-width: 5px !important; +} + +.border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.border-opacity-100 { + --bs-border-opacity: 1; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.row-gap-0 { + row-gap: 0 !important; +} + +.row-gap-1 { + row-gap: 0.25rem !important; +} + +.row-gap-2 { + row-gap: 0.5rem !important; +} + +.row-gap-3 { + row-gap: 1rem !important; +} + +.row-gap-4 { + row-gap: 1.5rem !important; +} + +.row-gap-5 { + row-gap: 3rem !important; +} + +.column-gap-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; +} + +.column-gap-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; +} + +.column-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; +} + +.column-gap-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; +} + +.column-gap-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; +} + +.column-gap-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-normal { + font-weight: 400 !important; +} + +.fw-medium { + font-weight: 500 !important; +} + +.fw-semibold { + font-weight: 600 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-bolder { + font-weight: bolder !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.text-start { + text-align: left !important; +} + +.text-end { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.text-opacity-100 { + --bs-text-opacity: 1; +} + +.text-primary-emphasis { + color: var(--bs-primary-text-emphasis) !important; +} + +.text-secondary-emphasis { + color: var(--bs-secondary-text-emphasis) !important; +} + +.text-success-emphasis { + color: var(--bs-success-text-emphasis) !important; +} + +.text-info-emphasis { + color: var(--bs-info-text-emphasis) !important; +} + +.text-warning-emphasis { + color: var(--bs-warning-text-emphasis) !important; +} + +.text-danger-emphasis { + color: var(--bs-danger-text-emphasis) !important; +} + +.text-light-emphasis { + color: var(--bs-light-text-emphasis) !important; +} + +.text-dark-emphasis { + color: var(--bs-dark-text-emphasis) !important; +} + +.link-opacity-10 { + --bs-link-opacity: 0.1; +} + +.link-opacity-10-hover:hover { + --bs-link-opacity: 0.1; +} + +.link-opacity-25 { + --bs-link-opacity: 0.25; +} + +.link-opacity-25-hover:hover { + --bs-link-opacity: 0.25; +} + +.link-opacity-50 { + --bs-link-opacity: 0.5; +} + +.link-opacity-50-hover:hover { + --bs-link-opacity: 0.5; +} + +.link-opacity-75 { + --bs-link-opacity: 0.75; +} + +.link-opacity-75-hover:hover { + --bs-link-opacity: 0.75; +} + +.link-opacity-100 { + --bs-link-opacity: 1; +} + +.link-opacity-100-hover:hover { + --bs-link-opacity: 1; +} + +.link-offset-1 { + text-underline-offset: 0.125em !important; +} + +.link-offset-1-hover:hover { + text-underline-offset: 0.125em !important; +} + +.link-offset-2 { + text-underline-offset: 0.25em !important; +} + +.link-offset-2-hover:hover { + text-underline-offset: 0.25em !important; +} + +.link-offset-3 { + text-underline-offset: 0.375em !important; +} + +.link-offset-3-hover:hover { + text-underline-offset: 0.375em !important; +} + +.link-underline-primary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-10-hover:hover { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-25 { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-25-hover:hover { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-50 { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-50-hover:hover { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-75 { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-75-hover:hover { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-100 { + --bs-link-underline-opacity: 1; +} + +.link-underline-opacity-100-hover:hover { + --bs-link-underline-opacity: 1; +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; +} + +.bg-body-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body-tertiary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bg-primary-subtle { + background-color: var(--bs-primary-bg-subtle) !important; +} + +.bg-secondary-subtle { + background-color: var(--bs-secondary-bg-subtle) !important; +} + +.bg-success-subtle { + background-color: var(--bs-success-bg-subtle) !important; +} + +.bg-info-subtle { + background-color: var(--bs-info-bg-subtle) !important; +} + +.bg-warning-subtle { + background-color: var(--bs-warning-bg-subtle) !important; +} + +.bg-danger-subtle { + background-color: var(--bs-danger-bg-subtle) !important; +} + +.bg-light-subtle { + background-color: var(--bs-light-bg-subtle) !important; +} + +.bg-dark-subtle { + background-color: var(--bs-dark-bg-subtle) !important; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.rounded-top-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-top-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-top-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-top-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-top-circle { + border-top-left-radius: 50% !important; + border-top-right-radius: 50% !important; +} + +.rounded-top-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-top-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-end-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-end-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-end-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-end-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-end-circle { + border-top-right-radius: 50% !important; + border-bottom-right-radius: 50% !important; +} + +.rounded-end-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-0 { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.rounded-bottom-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-bottom-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-bottom-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-bottom-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-bottom-circle { + border-bottom-right-radius: 50% !important; + border-bottom-left-radius: 50% !important; +} + +.rounded-bottom-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-0 { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important; +} + +.rounded-start-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-start-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-start-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-start-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-start-circle { + border-bottom-left-radius: 50% !important; + border-top-left-radius: 50% !important; +} + +.rounded-start-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +.z-n1 { + z-index: -1 !important; +} + +.z-0 { + z-index: 0 !important; +} + +.z-1 { + z-index: 1 !important; +} + +.z-2 { + z-index: 2 !important; +} + +.z-3 { + z-index: 3 !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: none !important; + } + .object-fit-sm-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-sm-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-sm-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-sm-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-sm-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-inline-grid { + display: inline-grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .row-gap-sm-0 { + row-gap: 0 !important; + } + .row-gap-sm-1 { + row-gap: 0.25rem !important; + } + .row-gap-sm-2 { + row-gap: 0.5rem !important; + } + .row-gap-sm-3 { + row-gap: 1rem !important; + } + .row-gap-sm-4 { + row-gap: 1.5rem !important; + } + .row-gap-sm-5 { + row-gap: 3rem !important; + } + .column-gap-sm-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-sm-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-sm-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-sm-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-sm-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-sm-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .object-fit-md-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-md-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-md-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-md-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-md-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-inline-grid { + display: inline-grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .row-gap-md-0 { + row-gap: 0 !important; + } + .row-gap-md-1 { + row-gap: 0.25rem !important; + } + .row-gap-md-2 { + row-gap: 0.5rem !important; + } + .row-gap-md-3 { + row-gap: 1rem !important; + } + .row-gap-md-4 { + row-gap: 1.5rem !important; + } + .row-gap-md-5 { + row-gap: 3rem !important; + } + .column-gap-md-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-md-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-md-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-md-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-md-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-md-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .object-fit-lg-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-lg-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-lg-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-lg-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-lg-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-inline-grid { + display: inline-grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .row-gap-lg-0 { + row-gap: 0 !important; + } + .row-gap-lg-1 { + row-gap: 0.25rem !important; + } + .row-gap-lg-2 { + row-gap: 0.5rem !important; + } + .row-gap-lg-3 { + row-gap: 1rem !important; + } + .row-gap-lg-4 { + row-gap: 1.5rem !important; + } + .row-gap-lg-5 { + row-gap: 3rem !important; + } + .column-gap-lg-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-lg-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-lg-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-lg-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-lg-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-lg-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; + } + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .object-fit-xl-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-xl-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-xl-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-xl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-xl-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-inline-grid { + display: inline-grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; + } + .pe-xl-1 { + padding-right: 0.25rem !important; + } + .pe-xl-2 { + padding-right: 0.5rem !important; + } + .pe-xl-3 { + padding-right: 1rem !important; + } + .pe-xl-4 { + padding-right: 1.5rem !important; + } + .pe-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-0 { + padding-bottom: 0 !important; + } + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xl-3 { + padding-bottom: 1rem !important; + } + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xl-5 { + padding-bottom: 3rem !important; + } + .ps-xl-0 { + padding-left: 0 !important; + } + .ps-xl-1 { + padding-left: 0.25rem !important; + } + .ps-xl-2 { + padding-left: 0.5rem !important; + } + .ps-xl-3 { + padding-left: 1rem !important; + } + .ps-xl-4 { + padding-left: 1.5rem !important; + } + .ps-xl-5 { + padding-left: 3rem !important; + } + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .row-gap-xl-0 { + row-gap: 0 !important; + } + .row-gap-xl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xl-3 { + row-gap: 1rem !important; + } + .row-gap-xl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xl-5 { + row-gap: 3rem !important; + } + .column-gap-xl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-xl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-xl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-xl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-xl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-xl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .object-fit-xxl-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-xxl-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-xxl-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-xxl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-xxl-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-xxl-inline { + display: inline !important; + } + .d-xxl-inline-block { + display: inline-block !important; + } + .d-xxl-block { + display: block !important; + } + .d-xxl-grid { + display: grid !important; + } + .d-xxl-inline-grid { + display: inline-grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { + display: table-row !important; + } + .d-xxl-table-cell { + display: table-cell !important; + } + .d-xxl-flex { + display: flex !important; + } + .d-xxl-inline-flex { + display: inline-flex !important; + } + .d-xxl-none { + display: none !important; + } + .flex-xxl-fill { + flex: 1 1 auto !important; + } + .flex-xxl-row { + flex-direction: row !important; + } + .flex-xxl-column { + flex-direction: column !important; + } + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .row-gap-xxl-0 { + row-gap: 0 !important; + } + .row-gap-xxl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xxl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xxl-3 { + row-gap: 1rem !important; + } + .row-gap-xxl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xxl-5 { + row-gap: 3rem !important; + } + .column-gap-xxl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-xxl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-xxl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-xxl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-xxl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-xxl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; + } + .fs-2 { + font-size: 2rem !important; + } + .fs-3 { + font-size: 1.75rem !important; + } + .fs-4 { + font-size: 1.5rem !important; + } +} +@media print { + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-inline-grid { + display: inline-grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { + display: none !important; + } +} + +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/css/bootstrap.css.map b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/css/bootstrap.css.map new file mode 100644 index 00000000..a1f9a189 --- /dev/null +++ b/src/AElfScanServer.AuthServer/wwwroot/libs/bootstrap/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","../../scss/mixins/_banner.scss","../../scss/_root.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_color-mode.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.scss","../../scss/mixins/_table-variants.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_form-select.scss","../../scss/forms/_form-check.scss","../../scss/forms/_form-range.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/_button-group.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_accordion.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_alert.scss","../../scss/_progress.scss","../../scss/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/mixins/_backdrop.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/_offcanvas.scss","../../scss/_placeholders.scss","../../scss/helpers/_color-bg.scss","../../scss/helpers/_colored-links.scss","../../scss/helpers/_focus-ring.scss","../../scss/helpers/_icon-link.scss","../../scss/helpers/_ratio.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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EExnBlB,gBFwmB0B;AN9C9B;AG3dI;EKpGF;ILuQM,iBAAA;EH4TN;AACF;;AQpkBE;ELgQM,iCAAA;EK5PJ,gBFynBkB;EExnBlB,gBFwmB0B;ANnC9B;AGteI;EKpGF;ILuQM,eAAA;EHuUN;AACF;;AQ/kBE;ELgQM,iCAAA;EK5PJ,gBFynBkB;EExnBlB,gBFwmB0B;ANxB9B;AGjfI;EKpGF;ILuQM,iBAAA;EHkVN;AACF;;AQ1lBE;ELgQM,iCAAA;EK5PJ,gBFynBkB;EExnBlB,gBFwmB0B;ANb9B;AG5fI;EKpGF;ILuQM,eAAA;EH6VN;AACF;;AQrmBE;ELgQM,iCAAA;EK5PJ,gBFynBkB;EExnBlB,gBFwmB0B;ANF9B;AGvgBI;EKpGF;ILuQM,iBAAA;EHwWN;AACF;;AQxlBA;ECvDE,eAAA;EACA,gBAAA;ATmpBF;;AQxlBA;EC5DE,eAAA;EACA,gBAAA;ATwpBF;;AQ1lBA;EACE,qBAAA;AR6lBF;AQ3lBE;EACE,oBFsoB0B;ANzC9B;;AQnlBA;EL8MM,kBALI;EKvMR,yBAAA;ARslBF;;AQllBA;EACE,mBFiUO;EH1HH,kBALI;AHoZV;AQnlBE;EACE,gBAAA;ARqlBJ;;AQjlBA;EACE,iBAAA;EACA,mBFuTO;EH1HH,kBALI;EKtLR,cFtFS;AN0qBX;AQllBE;EACE,aAAA;ARolBJ;;AUprBA;ECIE,eAAA;EAGA,YAAA;AXkrBF;;AUnrBA;EACE,gBJ+jDkC;EI9jDlC,mCJ+jDkC;EI9jDlC,2DAAA;EHGE,sCAAA;EIRF,eAAA;EAGA,YAAA;AX2rBF;;AU7qBA;EAEE,qBAAA;AV+qBF;;AU5qBA;EACE,qBAAA;EACA,cAAA;AV+qBF;;AU5qBA;EPyPM,kBALI;EOlPR,gCJkjDkC;ANn4BpC;;AYjtBE;;;;;;;ECHA,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,6CAAA;EACA,4CAAA;EACA,kBAAA;EACA,iBAAA;Ab8tBF;;AcxqBI;EF5CE;IACE,gBNkee;ENsPrB;AACF;Ac9qBI;EF5CE;IACE,gBNkee;EN2PrB;AACF;AcnrBI;EF5CE;IACE,gBNkee;ENgQrB;AACF;AcxrBI;EF5CE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CA,0BAAA;EACA,2BforB0B;EeprB1B,0BforB0B;EenrB1B,2BfsyBoC;EiBp4BtC,uCjBqiCgC;Eer8B9B,oBAAA;EACA,qBAAA;EACA,mBAAA;EACA,eAAA;EACA,+CfgsB0B;Ee/rB1B,gBAAA;ECzFE,6ID0FF;EC1FE,qID0FF;ArBghEJ;AqB5hEE;EACE,yBAAA;EACA,0BAAA;EACA,2BforB0B;EeprB1B,0BforB0B;EenrB1B,2BfsyBoC;EiBp4BtC,uCjBqiCgC;Eer8B9B,oBAAA;EACA,qBAAA;EACA,mBAAA;EACA,eAAA;EACA,+CfgsB0B;Ee/rB1B,gBAAA;ECzFE,qID0FF;ArBghEJ;AsBtmEM;ED0EJ;ICzEM,wBAAA;IAAA,gBAAA;EtBymEN;EqBhiEA;ICzEM,gBAAA;EtBymEN;AACF;AqBlhEE;EACE,wCf47B8B;ANwlClC;AqBrhEE;EACE,wCf47B8B;ANwlClC;;AqB3gEA;EACE,cAAA;EACA,WAAA;EACA,mBAAA;EACA,gBAAA;EACA,gBfwf4B;Eevf5B,2Bf2xBsC;Ee1xBtC,6BAAA;EACA,yBAAA;EACA,sCAAA;ArB8gEF;AqB5gEE;EACE,UAAA;ArB8gEJ;AqB3gEE;EAEE,gBAAA;EACA,eAAA;ArB4gEJ;;AqBjgEA;EACE,mEf4wBsC;Ee3wBtC,uBAAA;ElByII,mBALI;EIvQN,yCAAA;APyoEJ;AqBlgEE;EACE,uBAAA;EACA,wBAAA;EACA,0BfooB0B;EepoB1B,yBfooB0B;ANg4C9B;AqBvgEE;EACE,uBAAA;EACA,wBAAA;EACA,0BfooB0B;EepoB1B,yBfooB0B;ANg4C9B;;AqBhgEA;EACE,iEfgwBsC;Ee/vBtC,oBAAA;ElB4HI,kBALI;EIvQN,yCAAA;APqpEJ;AqBjgEE;EACE,oBAAA;EACA,qBAAA;EACA,wBf2nB0B;Ee3nB1B,uBf2nB0B;ANw4C9B;AqBtgEE;EACE,oBAAA;EACA,qBAAA;EACA,wBf2nB0B;Ee3nB1B,uBf2nB0B;ANw4C9B;;AqB3/DE;EACE,oEf6uBoC;ANixCxC;AqB3/DE;EACE,mEf0uBoC;ANmxCxC;AqB1/DE;EACE,iEfuuBoC;ANqxCxC;;AqBv/DA;EACE,WfquBsC;EepuBtC,gEf8tBsC;Ee7tBtC,iBfilB4B;ANy6C9B;AqBx/DE;EACE,eAAA;ArB0/DJ;AqBv/DE;EACE,oBAAA;EdvLA,sCAAA;APirEJ;AqBt/DE;EACE,oBAAA;Ed5LA,sCAAA;APqrEJ;AqBr/DE;EAAoB,+Df8sBkB;AN0yCxC;AqBv/DE;EAAoB,6Df8sBkB;AN4yCxC;;AwBzsEA;EACE,wPAAA;EAEA,cAAA;EACA,WAAA;EACA,0CAAA;ErBqRI,eALI;EqB7QR,gBlB+lB4B;EkB9lB5B,gBlBsmB4B;EkBrmB5B,2BlBy3BsC;EkBx3BtC,wBAAA;EAAA,qBAAA;EAAA,gBAAA;EACA,mClBk3BsC;EkBj3BtC,mFAAA;EACA,4BAAA;EACA,yClB+9BkC;EkB99BlC,0BlB+9BkC;EkB99BlC,2DAAA;EjBHE,sCAAA;EeHE,wEESJ;AxBysEF;AsB9sEM;EEfN;IFgBQ,gBAAA;EtBitEN;AACF;AwB5sEE;EACE,qBlBs3BoC;EkBr3BpC,UAAA;EAKE,kDlBi+B4B;ANyuClC;AwBtsEE;EAEE,sBlB6uB0B;EkB5uB1B,sBAAA;AxBusEJ;AwBpsEE;EAEE,wClBu1BoC;AN82CxC;AwBhsEE;EACE,kBAAA;EACA,uCAAA;AxBksEJ;;AwB9rEA;EACE,oBlBsuB4B;EkBruB5B,uBlBquB4B;EkBpuB5B,oBlBquB4B;EHlgBxB,mBALI;EIvQN,yCAAA;AP4uEJ;;AwB9rEA;EACE,mBlBkuB4B;EkBjuB5B,sBlBiuB4B;EkBhuB5B,kBlBiuB4B;EHtgBxB,kBALI;EIvQN,yCAAA;APovEJ;;AwB5rEI;EACE,wPAAA;AxB+rEN;;AyBvwEA;EACE,cAAA;EACA,kBnBq6BwC;EmBp6BxC,mBnBq6BwC;EmBp6BxC,uBnBq6BwC;ANq2C1C;AyBxwEE;EACE,WAAA;EACA,mBAAA;AzB0wEJ;;AyBtwEA;EACE,oBnB25BwC;EmB15BxC,eAAA;EACA,iBAAA;AzBywEF;AyBvwEE;EACE,YAAA;EACA,oBAAA;EACA,cAAA;AzBywEJ;;AyBrwEA;EACE,qCAAA;EAEA,cAAA;EACA,UnB04BwC;EmBz4BxC,WnBy4BwC;EmBx4BxC,kBAAA;EACA,mBAAA;EACA,wBAAA;EAAA,qBAAA;EAAA,gBAAA;EACA,yCAAA;EACA,+CAAA;EACA,4BAAA;EACA,2BAAA;EACA,wBAAA;EACA,2DnB24BwC;EmB14BxC,iCAAA;EAAA,mBAAA;EAAA,yBAAA;AzBuwEF;AyBpwEE;ElB3BE,qBAAA;APkyEJ;AyBnwEE;EAEE,kBnBm4BsC;ANi4C1C;AyBjwEE;EACE,uBnB03BsC;ANy4C1C;AyBhwEE;EACE,qBnBs1BoC;EmBr1BpC,UAAA;EACA,kDnB8foB;ANowDxB;AyB/vEE;EACE,yBnB5BM;EmB6BN,qBnB7BM;AN8xEV;AyB/vEI;EAII,uPAAA;AzB8vER;AyB1vEI;EAII,+JAAA;AzByvER;AyBpvEE;EACE,yBnBjDM;EmBkDN,qBnBlDM;EmBuDJ,iPAAA;AzBkvEN;AyB9uEE;EACE,oBAAA;EACA,YAAA;EACA,YnBk2BuC;AN84C3C;AyBzuEI;EACE,eAAA;EACA,YnBy1BqC;ANk5C3C;;AyB7tEA;EACE,mBnBo1BgC;AN44ClC;AyB9tEE;EACE,2KAAA;EAEA,UnB80B8B;EmB70B9B,mBAAA;EACA,0CAAA;EACA,gCAAA;ElBjHA,kBAAA;EeHE,iDGsHF;AzB+tEJ;AsBj1EM;EG0GJ;IHzGM,gBAAA;EtBo1EN;AACF;AyBluEI;EACE,6JAAA;AzBouEN;AyBjuEI;EACE,iCnB60B4B;EmBx0B1B,0JAAA;AzB+tER;AyB1tEE;EACE,oBnBwzB8B;EmBvzB9B,eAAA;AzB4tEJ;AyB1tEI;EACE,oBAAA;EACA,cAAA;AzB4tEN;;AyBvtEA;EACE,qBAAA;EACA,kBnBsyBgC;ANo7ClC;;AyBvtEA;EACE,kBAAA;EACA,sBAAA;EACA,oBAAA;AzB0tEF;AyBttEI;EACE,oBAAA;EACA,YAAA;EACA,anBspBwB;ANkkD9B;;AyBjtEI;EACE,iLAAA;AzBotEN;;A0Bv4EA;EACE,WAAA;EACA,cAAA;EACA,UAAA;EACA,wBAAA;EAAA,qBAAA;EAAA,gBAAA;EACA,6BAAA;A1B04EF;A0Bx4EE;EACE,UAAA;A1B04EJ;A0Bt4EI;EAA0B,kEpB8gCa;AN23C3C;A0Bx4EI;EAA0B,kEpB6gCa;AN83C3C;A0Bx4EE;EACE,SAAA;A1B04EJ;A0Bv4EE;EACE,WpB+/BuC;EoB9/BvC,YpB8/BuC;EoB7/BvC,oBAAA;EACA,wBAAA;EAAA,gBAAA;EH1BF,yBjBkCQ;EoBNN,SpB6/BuC;EC1gCvC,mBAAA;EeHE,oHImBF;EJnBE,4GImBF;A1Bw4EJ;AsBv5EM;EIMJ;IJLM,wBAAA;IAAA,gBAAA;EtB05EN;AACF;A0B34EI;EHjCF,yBjB8hCyC;ANi5C3C;A0Bz4EE;EACE,WpBw+B8B;EoBv+B9B,cpBw+B8B;EoBv+B9B,kBAAA;EACA,epBu+B8B;EoBt+B9B,wCpBu+B8B;EoBt+B9B,yBAAA;EnB7BA,mBAAA;APy6EJ;A0Bv4EE;EACE,WpBo+BuC;EoBn+BvC,YpBm+BuC;EoBl+BvC,qBAAA;EAAA,gBAAA;EHpDF,yBjBkCQ;EoBoBN,SpBm+BuC;EC1gCvC,mBAAA;EeHE,iHI6CF;EJ7CE,4GI6CF;A1Bw4EJ;AsBj7EM;EIiCJ;IJhCM,qBAAA;IAAA,gBAAA;EtBo7EN;AACF;A0B34EI;EH3DF,yBjB8hCyC;AN26C3C;A0Bz4EE;EACE,WpB88B8B;EoB78B9B,cpB88B8B;EoB78B9B,kBAAA;EACA,epB68B8B;EoB58B9B,wCpB68B8B;EoB58B9B,yBAAA;EnBvDA,mBAAA;APm8EJ;A0Bv4EE;EACE,oBAAA;A1By4EJ;A0Bv4EI;EACE,2CpBg9BqC;ANy7C3C;A0Bt4EI;EACE,2CpB48BqC;AN47C3C;;A2B/9EA;EACE,kBAAA;A3Bk+EF;A2Bh+EE;;;EAGE,uDrBwiCoC;EqBviCpC,2DrBuiCoC;EqBtiCpC,iBrBuiCoC;AN27CxC;A2B/9EE;EACE,kBAAA;EACA,MAAA;EACA,OAAA;EACA,UAAA;EACA,YAAA;EACA,qBAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,mBAAA;EACA,oBAAA;EACA,gDAAA;EACA,qBAAA;ELRE,gEKSF;A3Bi+EJ;AsBt+EM;EKTJ;ILUM,gBAAA;EtBy+EN;AACF;A2Bn+EE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AA;AxEk0OZ;;AwEz0OQ;EAOI,sBAAA;AxEs0OZ;;AwE70OQ;EAOI,sBAAA;AxE00OZ;;AwEj1OQ;EAOI,sBAAA;AxE80OZ;;AwEr1OQ;EAOI,uBAAA;AxEk1OZ;;AwEz1OQ;EAOI,uBAAA;AxEs1OZ;;AwE71OQ;EAOI,2BAAA;AxE01OZ;;AwEj2OQ;EAOI,wBAAA;AxE81OZ;;AwEr2OQ;EAOI,4BAAA;AxEk2OZ;;AwEz2OQ;EAOI,yBAAA;AxEs2OZ;;AwE72OQ;EAOI,8BAAA;AxE02OZ;;AwEj3OQ;EAOI,iCAAA;AxE82OZ;;AwEr3OQ;EAOI,sCAAA;AxEk3OZ;;AwEz3OQ;EAOI,yCAAA;AxEs3OZ;;AwE73OQ;EAOI,uBAAA;AxE03OZ;;AwEj4OQ;EAOI,uBAAA;AxE83OZ;;AwEr4OQ;EAOI,yBAAA;AxEk4OZ;;AwEz4OQ;EAOI,yBAAA;AxEs4OZ;;AwE74OQ;EAOI,0BAAA;AxE04OZ;;AwEj5OQ;EAOI,4BAAA;AxE84OZ;;AwEr5OQ;EAOI,kCAAA;AxEk5OZ;;AwEz5OQ;EAOI,sCAAA;AxEs5OZ;;AwE75OQ;EAOI,oCAAA;AxE05OZ;;AwEj6OQ;EAOI,kCAAA;AxE85OZ;;AwEr6OQ;EAOI,yCAAA;AxEk6OZ;;AwEz6OQ;EAOI,wCAAA;AxEs6OZ;;AwE76OQ;EAOI,wCAAA;AxE06OZ;;AwEj7OQ;EAOI,kCAAA;AxE86OZ;;AwEr7OQ;EAOI,gCAAA;AxEk7OZ;;AwEz7OQ;EAOI,8BAAA;AxEs7OZ;;AwE77OQ;EAOI,gCAAA;AxE07OZ;;AwEj8OQ;EAOI,+BAAA;AxE87OZ;;AwEr8OQ;EAOI,oCAAA;AxEk8OZ;;AwEz8OQ;EAOI,kCAAA;AxEs8OZ;;AwE78OQ;EAOI,gCAAA;AxE08OZ;;AwEj9OQ;EAOI,uCAAA;AxE88OZ;;AwEr9OQ;EAOI,sCAAA;AxEk9OZ;;AwEz9OQ;EAOI,iCAAA;AxEs9OZ;;AwE79OQ;EAOI,2BAAA;AxE09OZ;;AwEj+OQ;EAOI,iCAAA;AxE89OZ;;AwEr+OQ;EAOI,+BAAA;AxEk+OZ;;AwEz+OQ;EAOI,6BAAA;AxEs+OZ;;AwE7+OQ;EAOI,+BAAA;AxE0+OZ;;AwEj/OQ;EAOI,8BAAA;AxE8+OZ;;AwEr/OQ;EAOI,oBAAA;AxEk/OZ;;AwEz/OQ;EAOI,mBAAA;AxEs/OZ;;AwE7/OQ;EAOI,mBAAA;AxE0/OZ;;AwEjgPQ;EAOI,mBAAA;AxE8/OZ;;AwErgPQ;EAOI,mBAAA;AxEkgPZ;;AwEzgPQ;EAOI,mBAAA;AxEsgPZ;;AwE7gPQ;EAOI,mBAAA;AxE0gPZ;;AwEjhPQ;EAOI,mBAAA;AxE8gPZ;;AwErhPQ;EAOI,oBAAA;AxEkhPZ;;AwEzhPQ;EAOI,0BAAA;AxEshPZ;;AwE7hPQ;EAOI,yBAAA;AxE0hPZ;;AwEjiPQ;EAOI,uBAAA;AxE8hPZ;;AwEriPQ;EAOI,yBAAA;AxEkiPZ;;AwEziPQ;EAOI,uBAAA;AxEsiPZ;;AwE7iPQ;EAOI,uBAAA;AxE0iPZ;;AwEjjPQ;EAOI,0BAAA;EAAA,yBAAA;AxE+iPZ;;AwEtjPQ;EAOI,gCAAA;EAAA,+BAAA;AxEojPZ;;AwE3jPQ;EAOI,+BAAA;EAAA,8BAAA;AxEyjPZ;;AwEhkPQ;EAOI,6BAAA;EAAA,4BAAA;AxE8jPZ;;AwErkPQ;EAOI,+BAAA;EAAA,8BAAA;AxEmkPZ;;AwE1kPQ;EAOI,6BAAA;EAAA,4BAAA;AxEwkPZ;;AwE/kPQ;EAOI,6BAAA;EAAA,4BAAA;AxE6kPZ;;AwEplPQ;EAOI,wBAAA;EAAA,2BAAA;AxEklPZ;;AwEzlPQ;EAOI,8BAAA;EAAA,iCAAA;AxEulPZ;;AwE9lPQ;EAOI,6BAAA;EAAA,gCAAA;AxE4lPZ;;AwEnmPQ;EAOI,2BAAA;EAAA,8BAAA;AxEimPZ;;AwExmPQ;EAOI,6BAAA;EAAA,gCAAA;AxEsmPZ;;AwE7mPQ;EAOI,2BAAA;EAAA,8BAAA;AxE2mPZ;;AwElnPQ;EAOI,2BAAA;EAAA,8BAAA;AxEgnPZ;;AwEvnPQ;EAOI,wBAAA;AxEonPZ;;AwE3nPQ;EAOI,8BAAA;AxEwnPZ;;AwE/nPQ;EAOI,6BAAA;AxE4nPZ;;AwEnoPQ;EAOI,2BAAA;AxEgoPZ;;AwEvoPQ;EAOI,6BAAA;AxEooPZ;;AwE3oPQ;EAOI,2BAAA;AxEwoPZ;;AwE/oPQ;EAOI,2BAAA;AxE4oPZ;;AwEnpPQ;EAOI,0BAAA;AxEgpPZ;;AwEvpPQ;EAOI,gCAAA;AxEopPZ;;AwE3pPQ;EAOI,+BAAA;AxEwpPZ;;AwE/pPQ;EAOI,6BAAA;AxE4pPZ;;AwEnqPQ;EAOI,+BAAA;AxEgqPZ;;AwEvqPQ;EAOI,6BAAA;AxEoqPZ;;AwE3qPQ;EAOI,6BAAA;AxEwqPZ;;AwE/qPQ;EAOI,2BAAA;AxE4qPZ;;AwEnrPQ;EAOI,iCAAA;AxEgrPZ;;AwEvrPQ;EAOI,gCAAA;AxEorPZ;;AwE3rPQ;EAOI,8BAAA;AxEwrPZ;;AwE/rPQ;EAOI,gCAAA;AxE4rPZ;;AwEnsPQ;EAOI,8BAAA;AxEgsPZ;;AwEvsPQ;EAOI,8BAAA;AxEosPZ;;AwE3sPQ;EAOI,yBAAA;AxEwsPZ;;AwE/sPQ;EAOI,+BAAA;AxE4sPZ;;AwEntPQ;EAOI,8BAAA;AxEgtPZ;;AwEvtPQ;EAOI,4BAAA;AxEotPZ;;AwE3tPQ;EAOI,8BAAA;AxEwtPZ;;AwE/tPQ;EAOI,4BAAA;AxE4tPZ;;AwEnuPQ;EAOI,4BAAA;AxEguPZ;;AwEvuPQ;EAOI,qBAAA;AxEouPZ;;AwE3uPQ;EAOI,2BAAA;AxEwuPZ;;AwE/uPQ;EAOI,0BAAA;AxE4uPZ;;AwEnvPQ;EAOI,wBAAA;AxEgvPZ;;AwEvvPQ;EAOI,0BAAA;AxEovPZ;;AwE3vPQ;EAOI,wBAAA;AxEwvPZ;;AwE/vPQ;EAOI,2BAAA;EAAA,0BAAA;AxE6vPZ;;AwEpwPQ;EAOI,iCAAA;EAAA,gCAAA;AxEkwPZ;;AwEzwPQ;EAOI,gCAAA;EAAA,+BAAA;AxEuwPZ;;AwE9wPQ;EAOI,8BAAA;EAAA,6BAAA;AxE4wPZ;;AwEnxPQ;EAOI,gCAAA;EAAA,+BAAA;AxEixPZ;;AwExxPQ;EAOI,8BAAA;EAAA,6BAAA;AxEsxPZ;;AwE7xPQ;EAOI,yBAAA;EAAA,4BAAA;AxE2xPZ;;AwElyPQ;EAOI,+BAAA;EAAA,kCAAA;AxEgyPZ;;AwEvyPQ;EAOI,8BAAA;EAAA,iCAAA;AxEqyPZ;;AwE5yPQ;EAOI,4BAAA;EAAA,+BAAA;AxE0yPZ;;AwEjzPQ;EAOI,8BAAA;EAAA,iCAAA;AxE+yPZ;;AwEtzPQ;EAOI,4BAAA;EAAA,+BAAA;AxEozPZ;;AwE3zPQ;EAOI,yBAAA;AxEwzPZ;;AwE/zPQ;EAOI,+BAAA;AxE4zPZ;;AwEn0PQ;EAOI,8BAAA;AxEg0PZ;;AwEv0PQ;EAOI,4BAAA;AxEo0PZ;;AwE30PQ;EAOI,8BAAA;AxEw0PZ;;AwE/0PQ;EAOI,4BAAA;AxE40PZ;;AwEn1PQ;EAOI,2BAAA;AxEg1PZ;;AwEv1PQ;EAOI,iCAAA;AxEo1PZ;;AwE31PQ;EAOI,gCAAA;AxEw1PZ;;AwE/1PQ;EAOI,8BAAA;AxE41PZ;;AwEn2PQ;EAOI,gCAAA;AxEg2PZ;;AwEv2PQ;EAOI,8BAAA;AxEo2PZ;;AwE32PQ;EAOI,4BAAA;AxEw2PZ;;AwE/2PQ;EAOI,kCAAA;AxE42PZ;;AwEn3PQ;EAOI,iCAAA;AxEg3PZ;;AwEv3PQ;EAOI,+BAAA;AxEo3PZ;;AwE33PQ;EAOI,iCAAA;AxEw3PZ;;AwE/3PQ;EAOI,+BAAA;AxE43PZ;;AwEn4PQ;EAOI,0BAAA;AxEg4PZ;;AwEv4PQ;EAOI,gCAAA;AxEo4PZ;;AwE34PQ;EAOI,+BAAA;AxEw4PZ;;AwE/4PQ;EAOI,6BAAA;AxE44PZ;;AwEn5PQ;EAOI,+BAAA;AxEg5PZ;;AwEv5PQ;EAOI,6BAAA;AxEo5PZ;;AwE35PQ;EAOI,iBAAA;AxEw5PZ;;AwE/5PQ;EAOI,uBAAA;AxE45PZ;;AwEn6PQ;EAOI,sBAAA;AxEg6PZ;;AwEv6PQ;EAOI,oBAAA;AxEo6PZ;;AwE36PQ;EAOI,sBAAA;AxEw6PZ;;AwE/6PQ;EAOI,oBAAA;AxE46PZ;;AwEn7PQ;EAOI,qBAAA;AxEg7PZ;;AwEv7PQ;EAOI,2BAAA;AxEo7PZ;;AwE37PQ;EAOI,0BAAA;AxEw7PZ;;AwE/7PQ;EAOI,wBAAA;AxE47PZ;;AwEn8PQ;EAOI,0BAAA;AxEg8PZ;;AwEv8PQ;EAOI,wBAAA;AxEo8PZ;;AwE38PQ;EAOI,6BAAA;EAAA,wBAAA;AxEw8PZ;;AwE/8PQ;EAOI,mCAAA;EAAA,8BAAA;AxE48PZ;;AwEn9PQ;EAOI,kCAAA;EAAA,6BAAA;AxEg9PZ;;AwEv9PQ;EAOI,gCAAA;EAAA,2BAAA;AxEo9PZ;;AwE39PQ;EAOI,kCAAA;EAAA,6BAAA;AxEw9PZ;;AwE/9PQ;EAOI,gCAAA;EAAA,2BAAA;AxE49PZ;;AwEn+PQ;EAOI,gDAAA;AxEg+PZ;;AwEv+PQ;EAOI,4CAAA;AxEo+PZ;;AwE3+PQ;EAOI,4CAAA;AxEw+PZ;;AwE/+PQ;EAOI,0CAAA;AxE4+PZ;;AwEn/PQ;EAOI,4CAAA;AxEg/PZ;;AwEv/PQ;EAOI,6BAAA;AxEo/PZ;;AwE3/PQ;EAOI,0BAAA;AxEw/PZ;;AwE//PQ;EAOI,6BAAA;AxE4/PZ;;AwEngQQ;EAOI,6BAAA;AxEggQZ;;AwEvgQQ;EAOI,+BAAA;AxEogQZ;;AwE3gQQ;EAOI,2BAAA;AxEwgQZ;;AwE/gQQ;EAOI,2BAAA;AxE4gQZ;;AwEnhQQ;EAOI,2BAAA;AxEghQZ;;AwEvhQQ;EAOI,2BAAA;AxEohQZ;;AwE3hQQ;EAOI,2BAAA;AxEwhQZ;;AwE/hQQ;EAOI,8BAAA;AxE4hQZ;;AwEniQQ;EAOI,yBAAA;AxEgiQZ;;AwEviQQ;EAOI,4BAAA;AxEoiQZ;;AwE3iQQ;EAOI,2BAAA;AxEwiQZ;;AwE/iQQ;EAOI,yBAAA;AxE4iQZ;;AwEnjQQ;EAOI,2BAAA;AxEgjQZ;;AwEvjQQ;EAOI,4BAAA;AxEojQZ;;AwE3jQQ;EAOI,6BAAA;AxEwjQZ;;AwE/jQQ;EAOI,gCAAA;AxE4jQZ;;AwEnkQQ;EAOI,qCAAA;AxEgkQZ;;AwEvkQQ;EAOI,wCAAA;AxEokQZ;;AwE3kQQ;EAOI,oCAAA;AxEwkQZ;;AwE/kQQ;EAOI,oCAAA;AxE4kQZ;;AwEnlQQ;EAOI,qCAAA;AxEglQZ;;AwEvlQQ;EAOI,8BAAA;AxEolQZ;;AwE3lQQ;EAOI,8BAAA;AxEwlQZ;;AwE7mQQ,qBAAA;AAcA;EAOI,gCAAA;EAAA,iCAAA;AxE8lQZ;;AwE3kQQ,mBAAA;AA1BA;EAIQ,oBAAA;EAGJ,qEAAA;AxEomQZ;;AwE3mQQ;EAIQ,oBAAA;EAGJ,uEAAA;AxEymQZ;;AwEhnQQ;EAIQ,oBAAA;EAGJ,qEAAA;AxE8mQZ;;AwErnQQ;EAIQ,oBAAA;EAGJ,kEAAA;AxEmnQZ;;AwE1nQQ;EAIQ,oBAAA;EAGJ,qEAAA;AxEwnQZ;;AwE/nQQ;EAIQ,oBAAA;EAGJ,oEAAA;AxE6nQZ;;AwEpoQQ;EAIQ,oBAAA;EAGJ,mEAAA;AxEkoQZ;;AwEzoQQ;EAIQ,oBAAA;EAGJ,kEAAA;AxEuoQZ;;AwE9oQQ;EAIQ,oBAAA;EAGJ,mEAAA;AxE4oQZ;;AwEnpQQ;EAIQ,oBAAA;EAGJ,mEAAA;AxEipQZ;;AwExpQQ;EAIQ,oBAAA;EAGJ,wEAAA;AxEspQZ;;AwE7pQQ;EAIQ,oBAAA;EAGJ,2CAAA;AxE2pQZ;;AwElqQQ;EAIQ,oBAAA;EAGJ,oCAAA;AxEgqQZ;;AwEvqQQ;EAIQ,oBAAA;EAGJ,0CAAA;AxEqqQZ;;AwE5qQQ;EAIQ,oBAAA;EAGJ,2CAAA;AxE0qQZ;;AwEjrQQ;EAIQ,oBAAA;EAGJ,0CAAA;AxE+qQZ;;AwEtrQQ;EAIQ,oBAAA;EAGJ,0CAAA;AxEorQZ;;AwE3rQQ;EAIQ,oBAAA;EAGJ,yBAAA;AxEyrQZ;;AwE1sQQ;EACE,uBAAA;AxE6sQV;;AwE9sQQ;EACE,sBAAA;AxEitQV;;AwEltQQ;EACE,uBAAA;AxEqtQV;;AwEttQQ;EACE,oBAAA;AxEytQV;;AwEhtQQ;EAOI,iDAAA;AxE6sQZ;;AwEptQQ;EAOI,mDAAA;AxEitQZ;;AwExtQQ;EAOI,iDAAA;AxEqtQZ;;AwE5tQQ;EAOI,8CAAA;AxEytQZ;;AwEhuQQ;EAOI,iDAAA;AxE6tQZ;;AwEpuQQ;EAOI,gDAAA;AxEiuQZ;;AwExuQQ;EAOI,+CAAA;AxEquQZ;;AwE5uQQ;EAOI,8CAAA;AxEyuQZ;;AwE1vQQ;EACE,sBAAA;AxE6vQV;;AwEzvQU;EACE,sBAAA;AxE4vQZ;;AwElwQQ;EACE,uBAAA;AxEqwQV;;AwEjwQU;EACE,uBAAA;AxEowQZ;;AwE1wQQ;EACE,sBAAA;AxE6wQV;;AwEzwQU;EACE,sBAAA;AxE4wQZ;;AwElxQQ;EACE,uBAAA;AxEqxQV;;AwEjxQU;EACE,uBAAA;AxEoxQZ;;AwE1xQQ;EACE,oBAAA;AxE6xQV;;AwEzxQU;EACE,oBAAA;AxE4xQZ;;AwExxQQ;EAOI,yCAAA;AxEqxQZ;;AwEhxQU;EAOI,yCAAA;AxE6wQd;;AwEhyQQ;EAOI,wCAAA;AxE6xQZ;;AwExxQU;EAOI,wCAAA;AxEqxQd;;AwExyQQ;EAOI,yCAAA;AxEqyQZ;;AwEhyQU;EAOI,yCAAA;AxE6xQd;;AwEhzQQ;EAIQ,8BAAA;EAGJ,uGAAA;EAAA,+FAAA;AxE8yQZ;;AwErzQQ;EAIQ,8BAAA;EAGJ,yGAAA;EAAA,iGAAA;AxEmzQZ;;AwE1zQQ;EAIQ,8BAAA;EAGJ,uGAAA;EAAA,+FAAA;AxEwzQZ;;AwE/zQQ;EAIQ,8BAAA;EAGJ,oGAAA;EAAA,4FAAA;AxE6zQZ;;AwEp0QQ;EAIQ,8BAAA;EAGJ,uGAAA;EAAA,+FAAA;AxEk0QZ;;AwEz0QQ;EAIQ,8BAAA;EAGJ,sGAAA;EAAA,8FAAA;AxEu0QZ;;AwE90QQ;EAIQ,8BAAA;EAGJ,qGAAA;EAAA,6FAAA;AxE40QZ;;AwEn1QQ;EAIQ,8BAAA;EAGJ,oGAAA;EAAA,4FAAA;AxEi1QZ;;AwEx1QQ;EAIQ,8BAAA;EAGJ,6GAAA;EAAA,qGAAA;AxEs1QZ;;AwEv2QQ;EACE,8BAAA;AxE02QV;;AwEt2QU;EACE,8BAAA;AxEy2QZ;;AwE/2QQ;EACE,gCAAA;AxEk3QV;;AwE92QU;EACE,gCAAA;AxEi3QZ;;AwEv3QQ;EACE,iCAAA;AxE03QV;;AwEt3QU;EACE,iCAAA;AxEy3QZ;;AwE/3QQ;EACE,gCAAA;AxEk4QV;;AwE93QU;EACE,gCAAA;AxEi4QZ;;AwEv4QQ;EACE,iCAAA;AxE04QV;;AwEt4QU;EACE,iCAAA;AxEy4QZ;;AwE/4QQ;EACE,8BAAA;AxEk5QV;;AwE94QU;EACE,8BAAA;AxEi5QZ;;AwE74QQ;EAIQ,kBAAA;EAGJ,8EAAA;AxE24QZ;;AwEl5QQ;EAIQ,kBAAA;EAGJ,gFAAA;AxEg5QZ;;AwEv5QQ;EAIQ,kBAAA;EAGJ,8EAAA;AxEq5QZ;;AwE55QQ;EAIQ,kBAAA;EAGJ,2EAAA;AxE05QZ;;AwEj6QQ;EAIQ,kBAAA;EAGJ,8EAAA;AxE+5QZ;;AwEt6QQ;EAIQ,kBAAA;EAGJ,6EAAA;AxEo6QZ;;AwE36QQ;EAIQ,kBAAA;EAGJ,4EAAA;AxEy6QZ;;AwEh7QQ;EAIQ,kBAAA;EAGJ,2EAAA;AxE86QZ;;AwEr7QQ;EAIQ,kBAAA;EAGJ,4EAAA;AxEm7QZ;;AwE17QQ;EAIQ,kBAAA;EAGJ,4EAAA;AxEw7QZ;;AwE/7QQ;EAIQ,kBAAA;EAGJ,8EAAA;AxE67QZ;;AwEp8QQ;EAIQ,kBAAA;EAGJ,wCAAA;AxEk8QZ;;AwEz8QQ;EAIQ,kBAAA;EAGJ,mFAAA;AxEu8QZ;;AwE98QQ;EAIQ,kBAAA;EAGJ,kFAAA;AxE48QZ;;AwE79QQ;EACE,oBAAA;AxEg+QV;;AwEj+QQ;EACE,qBAAA;AxEo+QV;;AwEr+QQ;EACE,oBAAA;AxEw+QV;;AwEz+QQ;EACE,qBAAA;AxE4+QV;;AwE7+QQ;EACE,kBAAA;AxEg/QV;;AwEv+QQ;EAOI,wDAAA;AxEo+QZ;;AwE3+QQ;EAOI,0DAAA;AxEw+QZ;;AwE/+QQ;EAOI,wDAAA;AxE4+QZ;;AwEn/QQ;EAOI,qDAAA;AxEg/QZ;;AwEv/QQ;EAOI,wDAAA;AxEo/QZ;;AwE3/QQ;EAOI,uDAAA;AxEw/QZ;;AwE//QQ;EAOI,sDAAA;AxE4/QZ;;AwEngRQ;EAOI,qDAAA;AxEggRZ;;AwEvgRQ;EAOI,+CAAA;AxEogRZ;;AwE3gRQ;EAOI,mCAAA;EAAA,gCAAA;EAAA,2BAAA;AxEwgRZ;;AwE/gRQ;EAOI,oCAAA;EAAA,iCAAA;EAAA,4BAAA;AxE4gRZ;;AwEnhRQ;EAOI,oCAAA;EAAA,iCAAA;EAAA,4BAAA;AxEghRZ;;AwEvhRQ;EAOI,+BAAA;AxEohRZ;;AwE3hRQ;EAOI,+BAAA;AxEwhRZ;;AwE/hRQ;EAOI,iDAAA;AxE4hRZ;;AwEniRQ;EAOI,2BAAA;AxEgiRZ;;AwEviRQ;EAOI,oDAAA;AxEoiRZ;;AwE3iRQ;EAOI,iDAAA;AxEwiRZ;;AwE/iRQ;EAOI,oDAAA;AxE4iRZ;;AwEnjRQ;EAOI,oDAAA;AxEgjRZ;;AwEvjRQ;EAOI,qDAAA;AxEojRZ;;AwE3jRQ;EAOI,6BAAA;AxEwjRZ;;AwE/jRQ;EAOI,sDAAA;AxE4jRZ;;AwEnkRQ;EAOI,0DAAA;EAAA,2DAAA;AxEikRZ;;AwExkRQ;EAOI,oCAAA;EAAA,qCAAA;AxEskRZ;;AwE7kRQ;EAOI,6DAAA;EAAA,8DAAA;AxE2kRZ;;AwEllRQ;EAOI,0DAAA;EAAA,2DAAA;AxEglRZ;;AwEvlRQ;EAOI,6DAAA;EAAA,8DAAA;AxEqlRZ;;AwE5lRQ;EAOI,6DAAA;EAAA,8DAAA;AxE0lRZ;;AwEjmRQ;EAOI,8DAAA;EAAA,+DAAA;AxE+lRZ;;AwEtmRQ;EAOI,sCAAA;EAAA,uCAAA;AxEomRZ;;AwE3mRQ;EAOI,+DAAA;EAAA,gEAAA;AxEymRZ;;AwEhnRQ;EAOI,2DAAA;EAAA,8DAAA;AxE8mRZ;;AwErnRQ;EAOI,qCAAA;EAAA,wCAAA;AxEmnRZ;;AwE1nRQ;EAOI,8DAAA;EAAA,iEAAA;AxEwnRZ;;AwE/nRQ;EAOI,2DAAA;EAAA,8DAAA;AxE6nRZ;;AwEpoRQ;EAOI,8DAAA;EAAA,iEAAA;AxEkoRZ;;AwEzoRQ;EAOI,8DAAA;EAAA,iEAAA;AxEuoRZ;;AwE9oRQ;EAOI,+DAAA;EAAA,kEAAA;AxE4oRZ;;AwEnpRQ;EAOI,uCAAA;EAAA,0CAAA;AxEipRZ;;AwExpRQ;EAOI,gEAAA;EAAA,mEAAA;AxEspRZ;;AwE7pRQ;EAOI,8DAAA;EAAA,6DAAA;AxE2pRZ;;AwElqRQ;EAOI,wCAAA;EAAA,uCAAA;AxEgqRZ;;AwEvqRQ;EAOI,iEAAA;EAAA,gEAAA;AxEqqRZ;;AwE5qRQ;EAOI,8DAAA;EAAA,6DAAA;AxE0qRZ;;AwEjrRQ;EAOI,iEAAA;EAAA,gEAAA;AxE+qRZ;;AwEtrRQ;EAOI,iEAAA;EAAA,gEAAA;AxEorRZ;;AwE3rRQ;EAOI,kEAAA;EAAA,iEAAA;AxEyrRZ;;AwEhsRQ;EAOI,0CAAA;EAAA,yCAAA;AxE8rRZ;;AwErsRQ;EAOI,mEAAA;EAAA,kEAAA;AxEmsRZ;;AwE1sRQ;EAOI,6DAAA;EAAA,0DAAA;AxEwsRZ;;AwE/sRQ;EAOI,uCAAA;EAAA,oCAAA;AxE6sRZ;;AwEptRQ;EAOI,gEAAA;EAAA,6DAAA;AxEktRZ;;AwEztRQ;EAOI,6DAAA;EAAA,0DAAA;AxEutRZ;;AwE9tRQ;EAOI,gEAAA;EAAA,6DAAA;AxE4tRZ;;AwEnuRQ;EAOI,gEAAA;EAAA,6DAAA;AxEiuRZ;;AwExuRQ;EAOI,iEAAA;EAAA,8DAAA;AxEsuRZ;;AwE7uRQ;EAOI,yCAAA;EAAA,sCAAA;AxE2uRZ;;AwElvRQ;EAOI,kEAAA;EAAA,+DAAA;AxEgvRZ;;AwEvvRQ;EAOI,8BAAA;AxEovRZ;;AwE3vRQ;EAOI,6BAAA;AxEwvRZ;;AwE/vRQ;EAOI,sBAAA;AxE4vRZ;;AwEnwRQ;EAOI,qBAAA;AxEgwRZ;;AwEvwRQ;EAOI,qBAAA;AxEowRZ;;AwE3wRQ;EAOI,qBAAA;AxEwwRZ;;AwE/wRQ;EAOI,qBAAA;AxE4wRZ;;ActxRI;E0DGI;IAOI,sBAAA;ExEixRV;EwExxRM;IAOI,uBAAA;ExEoxRV;EwE3xRM;IAOI,sBAAA;ExEuxRV;EwE9xRM;IAOI,iCAAA;IAAA,8BAAA;ExE0xRV;EwEjyRM;IAOI,+BAAA;IAAA,4BAAA;ExE6xRV;EwEpyRM;IAOI,8BAAA;IAAA,2BAAA;ExEgyRV;EwEvyRM;IAOI,oCAAA;IAAA,iCAAA;ExEmyRV;EwE1yRM;IAOI,8BAAA;IAAA,2BAAA;ExEsyRV;EwE7yRM;IAOI,0BAAA;ExEyyRV;EwEhzRM;IAOI,gCAAA;ExE4yRV;EwEnzRM;IAOI,yBAAA;ExE+yRV;EwEtzRM;IAOI,wBAAA;ExEkzRV;EwEzzRM;IAOI,+BAAA;ExEqzRV;EwE5zRM;IAOI,yBAAA;ExEwzRV;EwE/zRM;IAOI,6BAAA;ExE2zRV;EwEl0RM;IAOI,8BAAA;ExE8zRV;EwEr0RM;IAOI,wBAAA;ExEi0RV;EwEx0RM;IAOI,+BAAA;ExEo0RV;EwE30RM;IAOI,wBAAA;ExEu0RV;EwE90RM;IAOI,yBAAA;ExE00RV;EwEj1RM;IAOI,8BAAA;ExE60RV;EwEp1RM;IAOI,iCAAA;ExEg1RV;EwEv1RM;IAOI,sCAAA;ExEm1RV;EwE11RM;IAOI,yCAAA;ExEs1RV;EwE71RM;IAOI,uBAAA;ExEy1RV;EwEh2RM;IAOI,uBAAA;ExE41RV;EwEn2RM;IAOI,yBAAA;ExE+1RV;EwEt2RM;IAOI,yBAAA;ExEk2RV;EwEz2RM;IAOI,0BAAA;ExEq2RV;EwE52RM;IAOI,4BAAA;ExEw2RV;EwE/2RM;IAOI,kCAAA;ExE22RV;EwEl3RM;IAOI,sCAAA;ExE82RV;EwEr3RM;IAOI,oCAAA;ExEi3RV;EwEx3RM;IAOI,kCAAA;ExEo3RV;EwE33RM;IAOI,yCAAA;ExEu3RV;EwE93RM;IAOI,wCAAA;ExE03RV;EwEj4RM;IAOI,wCAAA;ExE63RV;EwEp4RM;IAOI,kCAAA;ExEg4RV;EwEv4RM;IAOI,gCAAA;ExEm4RV;EwE14RM;IAOI,8BAAA;ExEs4RV;EwE74RM;IAOI,gCAAA;ExEy4RV;EwEh5RM;IAOI,+BAAA;ExE44RV;EwEn5RM;IAOI,oCAAA;ExE+4RV;EwEt5RM;IAOI,kCAAA;ExEk5RV;EwEz5RM;IAOI,gCAAA;ExEq5RV;EwE55RM;IAOI,uCAAA;ExEw5RV;EwE/5RM;IAOI,sCAAA;ExE25RV;EwEl6RM;IAOI,iCAAA;ExE85RV;EwEr6RM;IAOI,2BAAA;ExEi6RV;EwEx6RM;IAOI,iCAAA;ExEo6RV;EwE36RM;IAOI,+BAAA;ExEu6RV;EwE96RM;IAOI,6BAAA;ExE06RV;EwEj7RM;IAOI,+BAAA;ExE66RV;EwEp7RM;IAOI,8BAAA;ExEg7RV;EwEv7RM;IAOI,oBAAA;ExEm7RV;EwE17RM;IAOI,mBAAA;ExEs7RV;EwE77RM;IAOI,mBAAA;ExEy7RV;EwEh8RM;IAOI,mBAAA;ExE47RV;EwEn8RM;IAOI,mBAAA;ExE+7RV;EwEt8RM;IAOI,mBAAA;ExEk8RV;EwEz8RM;IAOI,mBAAA;ExEq8RV;EwE58RM;IAOI,mBAAA;ExEw8RV;EwE/8RM;IAOI,oBAAA;ExE28RV;EwEl9RM;IAOI,0BAAA;ExE88RV;EwEr9RM;IAOI,yBAAA;ExEi9RV;EwEx9RM;IAOI,uBAAA;ExEo9RV;EwE39RM;IAOI,yBAAA;ExEu9RV;EwE99RM;IAOI,uBAAA;ExE09RV;EwEj+RM;IAOI,uBAAA;ExE69RV;EwEp+RM;IAOI,0BAAA;IAAA,yBAAA;ExEi+RV;EwEx+RM;IAOI,gCAAA;IAAA,+BAAA;ExEq+RV;EwE5+RM;IAOI,+BAAA;IAAA,8BAAA;ExEy+RV;EwEh/RM;IAOI,6BAAA;IAAA,4BAAA;ExE6+RV;EwEp/RM;IAOI,+BAAA;IAAA,8BAAA;ExEi/RV;EwEx/RM;IAOI,6BAAA;IAAA,4BAAA;ExEq/RV;EwE5/RM;IAOI,6BAAA;IAAA,4BAAA;ExEy/RV;EwEhgSM;IAOI,wBAAA;IAAA,2BAAA;ExE6/RV;EwEpgSM;IAOI,8BAAA;IAAA,iCAAA;ExEigSV;EwExgSM;IAOI,6BAAA;IAAA,gCAAA;ExEqgSV;EwE5gSM;IAOI,2BAAA;IAAA,8BAAA;ExEygSV;EwEhhSM;IAOI,6BAAA;IAAA,gCAAA;ExE6gSV;EwEphSM;IAOI,2BAAA;IAAA,8BAAA;ExEihSV;EwExhSM;IAOI,2BAAA;IAAA,8BAAA;ExEqhSV;EwE5hSM;IAOI,wBAAA;ExEwhSV;EwE/hSM;IAOI,8BAAA;ExE2hSV;EwEliSM;IAOI,6BAAA;ExE8hSV;EwEriSM;IAOI,2BAAA;ExEiiSV;EwExiSM;IAOI,6BAAA;ExEoiSV;EwE3iSM;IAOI,2BAAA;ExEuiSV;EwE9iSM;IAOI,2BAAA;ExE0iSV;EwEjjSM;IAOI,0BAAA;ExE6iSV;EwEpjSM;IAOI,gCAAA;ExEgjSV;EwEvjSM;IAOI,+BAAA;ExEmjSV;EwE1jSM;IAOI,6BAAA;ExEsjSV;EwE7jSM;IAOI,+BAAA;ExEyjSV;EwEhkSM;IAOI,6BAAA;ExE4jSV;EwEnkSM;IAOI,6BAAA;ExE+jSV;EwEtkSM;IAOI,2BAAA;ExEkkSV;EwEzkSM;IAOI,iCAAA;ExEqkSV;EwE5kSM;IAOI,gCAAA;ExEwkSV;EwE/kSM;IAOI,8BAAA;ExE2kSV;EwEllSM;IAOI,gCAAA;ExE8kSV;EwErlSM;IAOI,8BAAA;ExEilSV;EwExlSM;IAOI,8BAAA;ExEolSV;EwE3lSM;IAOI,yBAAA;ExEulSV;EwE9lSM;IAOI,+BAAA;ExE0lSV;EwEjmSM;IAOI,8BAAA;ExE6lSV;EwEpmSM;IAOI,4BAAA;ExEgmSV;EwEvmSM;IAOI,8BAAA;ExEmmSV;EwE1mSM;IAOI,4BAAA;ExEsmSV;EwE7mSM;IAOI,4BAAA;ExEymSV;EwEhnSM;IAOI,qBAAA;ExE4mSV;EwEnnSM;IAOI,2BAAA;ExE+mSV;EwEtnSM;IAOI,0BAAA;ExEknSV;EwEznSM;IAOI,wBAAA;ExEqnSV;EwE5nSM;IAOI,0BAAA;ExEwnSV;EwE/nSM;IAOI,wBAAA;ExE2nSV;EwEloSM;IAOI,2BAAA;IAAA,0BAAA;ExE+nSV;EwEtoSM;IAOI,iCAAA;IAAA,gCAAA;ExEmoSV;EwE1oSM;IAOI,gCAAA;IAAA,+BAAA;ExEuoSV;EwE9oSM;IAOI,8BAAA;IAAA,6BAAA;ExE2oSV;EwElpSM;IAOI,gCAAA;IAAA,+BAAA;ExE+oSV;EwEtpSM;IAOI,8BAAA;IAAA,6BAAA;ExEmpSV;EwE1pSM;IAOI,yBAAA;IAAA,4BAAA;ExEupSV;EwE9pSM;IAOI,+BAAA;IAAA,kCAAA;ExE2pSV;EwElqSM;IAOI,8BAAA;IAAA,iCAAA;ExE+pSV;EwEtqSM;IAOI,4BAAA;IAAA,+BAAA;ExEmqSV;EwE1qSM;IAOI,8BAAA;IAAA,iCAAA;ExEuqSV;EwE9qSM;IAOI,4BAAA;IAAA,+BAAA;ExE2qSV;EwElrSM;IAOI,yBAAA;ExE8qSV;EwErrSM;IAOI,+BAAA;ExEirSV;EwExrSM;IAOI,8BAAA;ExEorSV;EwE3rSM;IAOI,4BAAA;ExEurSV;EwE9rSM;IAOI,8BAAA;ExE0rSV;EwEjsSM;IAOI,4BAAA;ExE6rSV;EwEpsSM;IAOI,2BAAA;ExEgsSV;EwEvsSM;IAOI,iCAAA;ExEmsSV;EwE1sSM;IAOI,gCAAA;ExEssSV;EwE7sSM;IAOI,8BAAA;ExEysSV;EwEhtSM;IAOI,gCAAA;ExE4sSV;EwEntSM;IAOI,8BAAA;ExE+sSV;EwEttSM;IAOI,4BAAA;ExEktSV;EwEztSM;IAOI,kCAAA;ExEqtSV;EwE5tSM;IAOI,iCAAA;ExEwtSV;EwE/tSM;IAOI,+BAAA;ExE2tSV;EwEluSM;IAOI,iCAAA;ExE8tSV;EwEruSM;IAOI,+BAAA;ExEiuSV;EwExuSM;IAOI,0BAAA;ExEouSV;EwE3uSM;IAOI,gCAAA;ExEuuSV;EwE9uSM;IAOI,+BAAA;ExE0uSV;EwEjvSM;IAOI,6BAAA;ExE6uSV;EwEpvSM;IAOI,+BAAA;ExEgvSV;EwEvvSM;IAOI,6BAAA;ExEmvSV;EwE1vSM;IAOI,iBAAA;ExEsvSV;EwE7vSM;IAOI,uBAAA;ExEyvSV;EwEhwSM;IAOI,sBAAA;ExE4vSV;EwEnwSM;IAOI,oBAAA;ExE+vSV;EwEtwSM;IAOI,sBAAA;ExEkwSV;EwEzwSM;IAOI,oBAAA;ExEqwSV;EwE5wSM;IAOI,qBAAA;ExEwwSV;EwE/wSM;IAOI,2BAAA;ExE2wSV;EwElxSM;IAOI,0BAAA;ExE8wSV;EwErxSM;IAOI,wBAAA;ExEixSV;EwExxSM;IAOI,0BAAA;ExEoxSV;EwE3xSM;IAOI,wBAAA;ExEuxSV;EwE9xSM;IAOI,6BAAA;IAAA,wBAAA;ExE0xSV;EwEjySM;IAOI,mCAAA;IAAA,8BAAA;ExE6xSV;EwEpySM;IAOI,kCAAA;IAAA,6BAAA;ExEgySV;EwEvySM;IAOI,gCAAA;IAAA,2BAAA;ExEmySV;EwE1ySM;IAOI,kCAAA;IAAA,6BAAA;ExEsySV;EwE7ySM;IAOI,gCAAA;IAAA,2BAAA;ExEyySV;EwEhzSM;IAOI,2BAAA;ExE4ySV;EwEnzSM;IAOI,4BAAA;ExE+ySV;EwEtzSM;IAOI,6BAAA;ExEkzSV;AACF;Ac7zSI;E0DGI;IAOI,sBAAA;ExEuzSV;EwE9zSM;IAOI,uBAAA;ExE0zSV;EwEj0SM;IAOI,sBAAA;ExE6zSV;EwEp0SM;IAOI,iCAAA;IAAA,8BAAA;ExEg0SV;EwEv0SM;IAOI,+BAAA;IAAA,4BAAA;ExEm0SV;EwE10SM;IAOI,8BAAA;IAAA,2BAAA;ExEs0SV;EwE70SM;IAOI,oCAAA;IAAA,iCAAA;ExEy0SV;EwEh1SM;IAOI,8BAAA;IAAA,2BAAA;ExE40SV;EwEn1SM;IAOI,0BAAA;ExE+0SV;EwEt1SM;IAOI,gCAAA;ExEk1SV;EwEz1SM;IAOI,yBAAA;ExEq1SV;EwE51SM;IAOI,wBAAA;ExEw1SV;EwE/1SM;IAOI,+BAAA;ExE21SV;EwEl2SM;IAOI,yBAAA;ExE81SV;EwEr2SM;IAOI,6BAAA;ExEi2SV;EwEx2SM;IAOI,8BAAA;ExEo2SV;EwE32SM;IAOI,wBAAA;ExEu2SV;EwE92SM;IAOI,+BAAA;ExE02SV;EwEj3SM;IAOI,wBAAA;ExE62SV;EwEp3SM;IAOI,yBAAA;ExEg3SV;EwEv3SM;IAOI,8BAAA;ExEm3SV;EwE13SM;IAOI,iCAAA;ExEs3SV;EwE73SM;IAOI,sCAAA;ExEy3SV;EwEh4SM;IAOI,yCAAA;ExE43SV;EwEn4SM;IAOI,uBAAA;ExE+3SV;EwEt4SM;IAOI,uBAAA;ExEk4SV;EwEz4SM;IAOI,yBAAA;ExEq4SV;EwE54SM;IAOI,yBAAA;ExEw4SV;EwE/4SM;IAOI,0BAAA;ExE24SV;EwEl5SM;IAOI,4BAAA;ExE84SV;EwEr5SM;IAOI,kCAAA;ExEi5SV;EwEx5SM;IAOI,sCAAA;ExEo5SV;EwE35SM;IAOI,oCAAA;ExEu5SV;EwE95SM;IAOI,kCAAA;ExE05SV;EwEj6SM;IAOI,yCAAA;ExE65SV;EwEp6SM;IAOI,wCAAA;ExEg6SV;EwEv6SM;IAOI,wCAAA;ExEm6SV;EwE16SM;IAOI,kCAAA;ExEs6SV;EwE76SM;IAOI,gCAAA;ExEy6SV;EwEh7SM;IAOI,8BAAA;ExE46SV;EwEn7SM;IAOI,gCAAA;ExE+6SV;EwEt7SM;IAOI,+BAAA;ExEk7SV;EwEz7SM;IAOI,oCAAA;ExEq7SV;EwE57SM;IAOI,kCAAA;ExEw7SV;EwE/7SM;IAOI,gCAAA;ExE27SV;EwEl8SM;IAOI,uCAAA;ExE87SV;EwEr8SM;IAOI,sCAAA;ExEi8SV;EwEx8SM;IAOI,iCAAA;ExEo8SV;EwE38SM;IAOI,2BAAA;ExEu8SV;EwE98SM;IAOI,iCAAA;ExE08SV;EwEj9SM;IAOI,+BAAA;ExE68SV;EwEp9SM;IAOI,6BAAA;ExEg9SV;EwEv9SM;IAOI,+BAAA;ExEm9SV;EwE19SM;IAOI,8BAAA;ExEs9SV;EwE79SM;IAOI,oBAAA;ExEy9SV;EwEh+SM;IAOI,mBAAA;ExE49SV;EwEn+SM;IAOI,mBAAA;ExE+9SV;EwEt+SM;IAOI,mBAAA;ExEk+SV;EwEz+SM;IAOI,mBAAA;ExEq+SV;EwE5+SM;IAOI,mBAAA;ExEw+SV;EwE/+SM;IAOI,mBAAA;ExE2+SV;EwEl/SM;IAOI,mBAAA;ExE8+SV;EwEr/SM;IAOI,oBAAA;ExEi/SV;EwEx/SM;IAOI,0BAAA;ExEo/SV;EwE3/SM;IAOI,yBAAA;ExEu/SV;EwE9/SM;IAOI,uBAAA;ExE0/SV;E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V;EwE/3TM;IAOI,yBAAA;ExE23TV;EwEl4TM;IAOI,wBAAA;ExE83TV;EwEr4TM;IAOI,+BAAA;ExEi4TV;EwEx4TM;IAOI,yBAAA;ExEo4TV;EwE34TM;IAOI,6BAAA;ExEu4TV;EwE94TM;IAOI,8BAAA;ExE04TV;EwEj5TM;IAOI,wBAAA;ExE64TV;EwEp5TM;IAOI,+BAAA;ExEg5TV;EwEv5TM;IAOI,wBAAA;ExEm5TV;EwE15TM;IAOI,yBAAA;ExEs5TV;EwE75TM;IAOI,8BAAA;ExEy5TV;EwEh6TM;IAOI,iCAAA;ExE45TV;EwEn6TM;IAOI,sCAAA;ExE+5TV;EwEt6TM;IAOI,yCAAA;ExEk6TV;EwEz6TM;IAOI,uBAAA;ExEq6TV;EwE56TM;IAOI,uBAAA;ExEw6TV;EwE/6TM;IAOI,yBAAA;ExE26TV;EwEl7TM;IAOI,yBAAA;ExE86TV;EwEr7TM;IAOI,0BAAA;ExEi7TV;EwEx7TM;IAOI,4BAAA;ExEo7TV;EwE37TM;IAOI,kCAAA;ExEu7TV;EwE97TM;IAOI,sCAAA;ExE07TV;EwEj8TM;IAOI,oCAAA;ExE67TV;EwEp8TM;IAOI,kCAAA;ExEg8TV;EwEv8TM;IAOI,yCAAA;ExEm8TV;EwE18TM;IAOI,wCAAA;ExEs8TV;EwE78TM;IAOI,wCAAA;ExEy8TV;EwEh9TM;IAOI,kCAAA;ExE48TV;EwEn9TM;IAOI,gCAAA;ExE+8TV;EwEt9TM;IAOI,8BAAA;ExEk9TV;EwEz9TM;IAOI,gCAAA;ExEq9TV;EwE59TM;IAOI,+BAAA;ExEw9TV;EwE/9TM;IAOI,oCAAA;ExE29TV;EwEl+TM;IAOI,kCAAA;ExE89TV;EwEr+TM;IAOI,gCAAA;ExEi+TV;EwEx+TM;IAOI,uCAAA;ExEo+TV;EwE3+TM;IAOI,sCAAA;ExEu+TV;EwE9+TM;IAOI,iCAAA;ExE0+TV;EwEj/TM;IAOI,2BAAA;ExE6+TV;EwEp/TM;IAOI,iCAAA;ExEg/TV;EwEv/TM;IAOI,+BAAA;ExEm/TV;EwE1/TM;IAOI,6BAAA;ExEs/TV;EwE7/TM;IAOI,+BAAA;ExEy/TV;EwEhgUM;IAOI,8BAAA;ExE4/TV;EwEngUM;IA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","file":"bootstrap.css","sourcesContent":["@charset \"UTF-8\";\n/*!\n * Bootstrap v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n:root,\n[data-bs-theme=light] {\n --bs-blue: #0d6efd;\n --bs-indigo: #6610f2;\n --bs-purple: #6f42c1;\n --bs-pink: #d63384;\n --bs-red: #dc3545;\n --bs-orange: #fd7e14;\n --bs-yellow: #ffc107;\n --bs-green: #198754;\n --bs-teal: #20c997;\n --bs-cyan: #0dcaf0;\n --bs-black: #000;\n --bs-white: #fff;\n --bs-gray: #6c757d;\n --bs-gray-dark: #343a40;\n --bs-gray-100: #f8f9fa;\n --bs-gray-200: #e9ecef;\n --bs-gray-300: #dee2e6;\n --bs-gray-400: #ced4da;\n --bs-gray-500: #adb5bd;\n --bs-gray-600: #6c757d;\n --bs-gray-700: #495057;\n --bs-gray-800: #343a40;\n --bs-gray-900: #212529;\n --bs-primary: #0d6efd;\n --bs-secondary: #6c757d;\n --bs-success: #198754;\n --bs-info: #0dcaf0;\n --bs-warning: #ffc107;\n --bs-danger: #dc3545;\n --bs-light: #f8f9fa;\n --bs-dark: #212529;\n --bs-primary-rgb: 13, 110, 253;\n --bs-secondary-rgb: 108, 117, 125;\n --bs-success-rgb: 25, 135, 84;\n --bs-info-rgb: 13, 202, 240;\n --bs-warning-rgb: 255, 193, 7;\n --bs-danger-rgb: 220, 53, 69;\n --bs-light-rgb: 248, 249, 250;\n --bs-dark-rgb: 33, 37, 41;\n --bs-primary-text-emphasis: #052c65;\n --bs-secondary-text-emphasis: #2b2f32;\n --bs-success-text-emphasis: #0a3622;\n --bs-info-text-emphasis: #055160;\n --bs-warning-text-emphasis: #664d03;\n --bs-danger-text-emphasis: #58151c;\n --bs-light-text-emphasis: #495057;\n --bs-dark-text-emphasis: #495057;\n --bs-primary-bg-subtle: #cfe2ff;\n --bs-secondary-bg-subtle: #e2e3e5;\n --bs-success-bg-subtle: #d1e7dd;\n --bs-info-bg-subtle: #cff4fc;\n --bs-warning-bg-subtle: #fff3cd;\n --bs-danger-bg-subtle: #f8d7da;\n --bs-light-bg-subtle: #fcfcfd;\n --bs-dark-bg-subtle: #ced4da;\n --bs-primary-border-subtle: #9ec5fe;\n --bs-secondary-border-subtle: #c4c8cb;\n --bs-success-border-subtle: #a3cfbb;\n --bs-info-border-subtle: #9eeaf9;\n --bs-warning-border-subtle: #ffe69c;\n --bs-danger-border-subtle: #f1aeb5;\n --bs-light-border-subtle: #e9ecef;\n --bs-dark-border-subtle: #adb5bd;\n --bs-white-rgb: 255, 255, 255;\n --bs-black-rgb: 0, 0, 0;\n --bs-font-sans-serif: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));\n --bs-body-font-family: var(--bs-font-sans-serif);\n --bs-body-font-size: 1rem;\n --bs-body-font-weight: 400;\n --bs-body-line-height: 1.5;\n --bs-body-color: #212529;\n --bs-body-color-rgb: 33, 37, 41;\n --bs-body-bg: #fff;\n --bs-body-bg-rgb: 255, 255, 255;\n --bs-emphasis-color: #000;\n --bs-emphasis-color-rgb: 0, 0, 0;\n --bs-secondary-color: rgba(33, 37, 41, 0.75);\n --bs-secondary-color-rgb: 33, 37, 41;\n --bs-secondary-bg: #e9ecef;\n --bs-secondary-bg-rgb: 233, 236, 239;\n --bs-tertiary-color: rgba(33, 37, 41, 0.5);\n --bs-tertiary-color-rgb: 33, 37, 41;\n --bs-tertiary-bg: #f8f9fa;\n --bs-tertiary-bg-rgb: 248, 249, 250;\n --bs-heading-color: inherit;\n --bs-link-color: #0d6efd;\n --bs-link-color-rgb: 13, 110, 253;\n --bs-link-decoration: underline;\n --bs-link-hover-color: #0a58ca;\n --bs-link-hover-color-rgb: 10, 88, 202;\n --bs-code-color: #d63384;\n --bs-highlight-color: #212529;\n --bs-highlight-bg: #fff3cd;\n --bs-border-width: 1px;\n --bs-border-style: solid;\n --bs-border-color: #dee2e6;\n --bs-border-color-translucent: rgba(0, 0, 0, 0.175);\n --bs-border-radius: 0.375rem;\n --bs-border-radius-sm: 0.25rem;\n --bs-border-radius-lg: 0.5rem;\n --bs-border-radius-xl: 1rem;\n --bs-border-radius-xxl: 2rem;\n --bs-border-radius-2xl: var(--bs-border-radius-xxl);\n --bs-border-radius-pill: 50rem;\n --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);\n --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);\n --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175);\n --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075);\n --bs-focus-ring-width: 0.25rem;\n --bs-focus-ring-opacity: 0.25;\n --bs-focus-ring-color: rgba(13, 110, 253, 0.25);\n --bs-form-valid-color: #198754;\n --bs-form-valid-border-color: #198754;\n --bs-form-invalid-color: #dc3545;\n --bs-form-invalid-border-color: #dc3545;\n}\n\n[data-bs-theme=dark] {\n color-scheme: dark;\n --bs-body-color: #dee2e6;\n --bs-body-color-rgb: 222, 226, 230;\n --bs-body-bg: #212529;\n --bs-body-bg-rgb: 33, 37, 41;\n --bs-emphasis-color: #fff;\n --bs-emphasis-color-rgb: 255, 255, 255;\n --bs-secondary-color: rgba(222, 226, 230, 0.75);\n --bs-secondary-color-rgb: 222, 226, 230;\n --bs-secondary-bg: #343a40;\n --bs-secondary-bg-rgb: 52, 58, 64;\n --bs-tertiary-color: rgba(222, 226, 230, 0.5);\n --bs-tertiary-color-rgb: 222, 226, 230;\n --bs-tertiary-bg: #2b3035;\n --bs-tertiary-bg-rgb: 43, 48, 53;\n --bs-primary-text-emphasis: #6ea8fe;\n --bs-secondary-text-emphasis: #a7acb1;\n --bs-success-text-emphasis: #75b798;\n --bs-info-text-emphasis: #6edff6;\n --bs-warning-text-emphasis: #ffda6a;\n --bs-danger-text-emphasis: #ea868f;\n --bs-light-text-emphasis: #f8f9fa;\n --bs-dark-text-emphasis: #dee2e6;\n --bs-primary-bg-subtle: #031633;\n --bs-secondary-bg-subtle: #161719;\n --bs-success-bg-subtle: #051b11;\n --bs-info-bg-subtle: #032830;\n --bs-warning-bg-subtle: #332701;\n --bs-danger-bg-subtle: #2c0b0e;\n --bs-light-bg-subtle: #343a40;\n --bs-dark-bg-subtle: #1a1d20;\n --bs-primary-border-subtle: #084298;\n --bs-secondary-border-subtle: #41464b;\n --bs-success-border-subtle: #0f5132;\n --bs-info-border-subtle: #087990;\n --bs-warning-border-subtle: #997404;\n --bs-danger-border-subtle: #842029;\n --bs-light-border-subtle: #495057;\n --bs-dark-border-subtle: #343a40;\n --bs-heading-color: inherit;\n --bs-link-color: #6ea8fe;\n --bs-link-hover-color: #8bb9fe;\n --bs-link-color-rgb: 110, 168, 254;\n --bs-link-hover-color-rgb: 139, 185, 254;\n --bs-code-color: #e685b5;\n --bs-highlight-color: #dee2e6;\n --bs-highlight-bg: #664d03;\n --bs-border-color: #495057;\n --bs-border-color-translucent: rgba(255, 255, 255, 0.15);\n --bs-form-valid-color: #75b798;\n --bs-form-valid-border-color: #75b798;\n --bs-form-invalid-color: #ea868f;\n --bs-form-invalid-border-color: #ea868f;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n :root {\n scroll-behavior: smooth;\n }\n}\n\nbody {\n margin: 0;\n font-family: var(--bs-body-font-family);\n font-size: var(--bs-body-font-size);\n font-weight: var(--bs-body-font-weight);\n line-height: var(--bs-body-line-height);\n color: var(--bs-body-color);\n text-align: var(--bs-body-text-align);\n background-color: var(--bs-body-bg);\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\nhr {\n margin: 1rem 0;\n color: inherit;\n border: 0;\n border-top: var(--bs-border-width) solid;\n opacity: 0.25;\n}\n\nh6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n color: var(--bs-heading-color);\n}\n\nh1, .h1 {\n font-size: calc(1.375rem + 1.5vw);\n}\n@media (min-width: 1200px) {\n h1, .h1 {\n font-size: 2.5rem;\n }\n}\n\nh2, .h2 {\n font-size: calc(1.325rem + 0.9vw);\n}\n@media (min-width: 1200px) {\n h2, .h2 {\n font-size: 2rem;\n }\n}\n\nh3, .h3 {\n font-size: calc(1.3rem + 0.6vw);\n}\n@media (min-width: 1200px) {\n h3, .h3 {\n font-size: 1.75rem;\n }\n}\n\nh4, .h4 {\n font-size: calc(1.275rem + 0.3vw);\n}\n@media (min-width: 1200px) {\n h4, .h4 {\n font-size: 1.5rem;\n }\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title] {\n text-decoration: underline dotted;\n cursor: help;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: 0.5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall, .small {\n font-size: 0.875em;\n}\n\nmark, .mark {\n padding: 0.1875em;\n color: var(--bs-highlight-color);\n background-color: var(--bs-highlight-bg);\n}\n\nsub,\nsup {\n position: relative;\n font-size: 0.75em;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\na {\n color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1));\n text-decoration: underline;\n}\na:hover {\n --bs-link-color-rgb: var(--bs-link-hover-color-rgb);\n}\n\na:not([href]):not([class]), a:not([href]):not([class]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: var(--bs-font-monospace);\n font-size: 1em;\n}\n\npre {\n display: block;\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n font-size: 0.875em;\n}\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\ncode {\n font-size: 0.875em;\n color: var(--bs-code-color);\n word-wrap: break-word;\n}\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.1875rem 0.375rem;\n font-size: 0.875em;\n color: var(--bs-body-bg);\n background-color: var(--bs-body-color);\n border-radius: 0.25rem;\n}\nkbd kbd {\n padding: 0;\n font-size: 1em;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-secondary-color);\n text-align: left;\n}\n\nth {\n text-align: inherit;\n text-align: -webkit-match-parent;\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\nlabel {\n display: inline-block;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\n[role=button] {\n cursor: pointer;\n}\n\nselect {\n word-wrap: normal;\n}\nselect:disabled {\n opacity: 1;\n}\n\n[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator {\n display: none !important;\n}\n\nbutton,\n[type=button],\n[type=reset],\n[type=submit] {\n -webkit-appearance: button;\n}\nbutton:not(:disabled),\n[type=button]:not(:disabled),\n[type=reset]:not(:disabled),\n[type=submit]:not(:disabled) {\n cursor: pointer;\n}\n\n::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ntextarea {\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n float: left;\n width: 100%;\n padding: 0;\n margin-bottom: 0.5rem;\n font-size: calc(1.275rem + 0.3vw);\n line-height: inherit;\n}\n@media (min-width: 1200px) {\n legend {\n font-size: 1.5rem;\n }\n}\nlegend + * {\n clear: left;\n}\n\n::-webkit-datetime-edit-fields-wrapper,\n::-webkit-datetime-edit-text,\n::-webkit-datetime-edit-minute,\n::-webkit-datetime-edit-hour-field,\n::-webkit-datetime-edit-day-field,\n::-webkit-datetime-edit-month-field,\n::-webkit-datetime-edit-year-field {\n padding: 0;\n}\n\n::-webkit-inner-spin-button {\n height: auto;\n}\n\n[type=search] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n\n/* rtl:raw:\n[type=\"tel\"],\n[type=\"url\"],\n[type=\"email\"],\n[type=\"number\"] {\n direction: ltr;\n}\n*/\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-color-swatch-wrapper {\n padding: 0;\n}\n\n::file-selector-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\niframe {\n border: 0;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[hidden] {\n display: none !important;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: calc(1.625rem + 4.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-1 {\n font-size: 5rem;\n }\n}\n\n.display-2 {\n font-size: calc(1.575rem + 3.9vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-2 {\n font-size: 4.5rem;\n }\n}\n\n.display-3 {\n font-size: calc(1.525rem + 3.3vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-3 {\n font-size: 4rem;\n }\n}\n\n.display-4 {\n font-size: calc(1.475rem + 2.7vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-4 {\n font-size: 3.5rem;\n }\n}\n\n.display-5 {\n font-size: calc(1.425rem + 2.1vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-5 {\n font-size: 3rem;\n }\n}\n\n.display-6 {\n font-size: calc(1.375rem + 1.5vw);\n font-weight: 300;\n line-height: 1.2;\n}\n@media (min-width: 1200px) {\n .display-6 {\n font-size: 2.5rem;\n }\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 0.875em;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n.blockquote > :last-child {\n margin-bottom: 0;\n}\n\n.blockquote-footer {\n margin-top: -1rem;\n margin-bottom: 1rem;\n font-size: 0.875em;\n color: #6c757d;\n}\n.blockquote-footer::before {\n content: \"— \";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: var(--bs-body-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.container,\n.container-fluid,\n.container-xxl,\n.container-xl,\n.container-lg,\n.container-md,\n.container-sm {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container-sm, .container {\n max-width: 540px;\n }\n}\n@media (min-width: 768px) {\n .container-md, .container-sm, .container {\n max-width: 720px;\n }\n}\n@media (min-width: 992px) {\n .container-lg, .container-md, .container-sm, .container {\n max-width: 960px;\n }\n}\n@media (min-width: 1200px) {\n .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1140px;\n }\n}\n@media (min-width: 1400px) {\n .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container {\n max-width: 1320px;\n }\n}\n:root {\n --bs-breakpoint-xs: 0;\n --bs-breakpoint-sm: 576px;\n --bs-breakpoint-md: 768px;\n --bs-breakpoint-lg: 992px;\n --bs-breakpoint-xl: 1200px;\n --bs-breakpoint-xxl: 1400px;\n}\n\n.row {\n --bs-gutter-x: 1.5rem;\n --bs-gutter-y: 0;\n display: flex;\n flex-wrap: wrap;\n margin-top: calc(-1 * var(--bs-gutter-y));\n margin-right: calc(-0.5 * var(--bs-gutter-x));\n margin-left: calc(-0.5 * var(--bs-gutter-x));\n}\n.row > * {\n flex-shrink: 0;\n width: 100%;\n max-width: 100%;\n padding-right: calc(var(--bs-gutter-x) * 0.5);\n padding-left: calc(var(--bs-gutter-x) * 0.5);\n margin-top: var(--bs-gutter-y);\n}\n\n.col {\n flex: 1 0 0%;\n}\n\n.row-cols-auto > * {\n flex: 0 0 auto;\n width: auto;\n}\n\n.row-cols-1 > * {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 auto;\n width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n}\n\n.col-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n}\n\n.col-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n}\n\n.col-3 {\n flex: 0 0 auto;\n width: 25%;\n}\n\n.col-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n}\n\n.col-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n}\n\n.col-6 {\n flex: 0 0 auto;\n width: 50%;\n}\n\n.col-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n}\n\n.col-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n}\n\n.col-9 {\n flex: 0 0 auto;\n width: 75%;\n}\n\n.col-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n}\n\n.col-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n}\n\n.col-12 {\n flex: 0 0 auto;\n width: 100%;\n}\n\n.offset-1 {\n margin-left: 8.33333333%;\n}\n\n.offset-2 {\n margin-left: 16.66666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.33333333%;\n}\n\n.offset-5 {\n margin-left: 41.66666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.33333333%;\n}\n\n.offset-8 {\n margin-left: 66.66666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.33333333%;\n}\n\n.offset-11 {\n margin-left: 91.66666667%;\n}\n\n.g-0,\n.gx-0 {\n --bs-gutter-x: 0;\n}\n\n.g-0,\n.gy-0 {\n --bs-gutter-y: 0;\n}\n\n.g-1,\n.gx-1 {\n --bs-gutter-x: 0.25rem;\n}\n\n.g-1,\n.gy-1 {\n --bs-gutter-y: 0.25rem;\n}\n\n.g-2,\n.gx-2 {\n --bs-gutter-x: 0.5rem;\n}\n\n.g-2,\n.gy-2 {\n --bs-gutter-y: 0.5rem;\n}\n\n.g-3,\n.gx-3 {\n --bs-gutter-x: 1rem;\n}\n\n.g-3,\n.gy-3 {\n --bs-gutter-y: 1rem;\n}\n\n.g-4,\n.gx-4 {\n --bs-gutter-x: 1.5rem;\n}\n\n.g-4,\n.gy-4 {\n --bs-gutter-y: 1.5rem;\n}\n\n.g-5,\n.gx-5 {\n --bs-gutter-x: 3rem;\n}\n\n.g-5,\n.gy-5 {\n --bs-gutter-y: 3rem;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex: 1 0 0%;\n }\n .row-cols-sm-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-sm-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-sm-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-sm-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-sm-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-sm-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-sm-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-sm-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-sm-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-sm-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.33333333%;\n }\n .offset-sm-2 {\n margin-left: 16.66666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.33333333%;\n }\n .offset-sm-5 {\n margin-left: 41.66666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.33333333%;\n }\n .offset-sm-8 {\n margin-left: 66.66666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.33333333%;\n }\n .offset-sm-11 {\n margin-left: 91.66666667%;\n }\n .g-sm-0,\n .gx-sm-0 {\n --bs-gutter-x: 0;\n }\n .g-sm-0,\n .gy-sm-0 {\n --bs-gutter-y: 0;\n }\n .g-sm-1,\n .gx-sm-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-sm-1,\n .gy-sm-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-sm-2,\n .gx-sm-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-sm-2,\n .gy-sm-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-sm-3,\n .gx-sm-3 {\n --bs-gutter-x: 1rem;\n }\n .g-sm-3,\n .gy-sm-3 {\n --bs-gutter-y: 1rem;\n }\n .g-sm-4,\n .gx-sm-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-sm-4,\n .gy-sm-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-sm-5,\n .gx-sm-5 {\n --bs-gutter-x: 3rem;\n }\n .g-sm-5,\n .gy-sm-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 768px) {\n .col-md {\n flex: 1 0 0%;\n }\n .row-cols-md-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-md-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-md-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-md-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-md-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-md-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-md-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-md-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-md-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-md-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-md-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-md-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-md-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-md-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.33333333%;\n }\n .offset-md-2 {\n margin-left: 16.66666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.33333333%;\n }\n .offset-md-5 {\n margin-left: 41.66666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.33333333%;\n }\n .offset-md-8 {\n margin-left: 66.66666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.33333333%;\n }\n .offset-md-11 {\n margin-left: 91.66666667%;\n }\n .g-md-0,\n .gx-md-0 {\n --bs-gutter-x: 0;\n }\n .g-md-0,\n .gy-md-0 {\n --bs-gutter-y: 0;\n }\n .g-md-1,\n .gx-md-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-md-1,\n .gy-md-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-md-2,\n .gx-md-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-md-2,\n .gy-md-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-md-3,\n .gx-md-3 {\n --bs-gutter-x: 1rem;\n }\n .g-md-3,\n .gy-md-3 {\n --bs-gutter-y: 1rem;\n }\n .g-md-4,\n .gx-md-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-md-4,\n .gy-md-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-md-5,\n .gx-md-5 {\n --bs-gutter-x: 3rem;\n }\n .g-md-5,\n .gy-md-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 992px) {\n .col-lg {\n flex: 1 0 0%;\n }\n .row-cols-lg-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-lg-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-lg-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-lg-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-lg-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-lg-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-lg-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-lg-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-lg-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-lg-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.33333333%;\n }\n .offset-lg-2 {\n margin-left: 16.66666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.33333333%;\n }\n .offset-lg-5 {\n margin-left: 41.66666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.33333333%;\n }\n .offset-lg-8 {\n margin-left: 66.66666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.33333333%;\n }\n .offset-lg-11 {\n margin-left: 91.66666667%;\n }\n .g-lg-0,\n .gx-lg-0 {\n --bs-gutter-x: 0;\n }\n .g-lg-0,\n .gy-lg-0 {\n --bs-gutter-y: 0;\n }\n .g-lg-1,\n .gx-lg-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-lg-1,\n .gy-lg-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-lg-2,\n .gx-lg-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-lg-2,\n .gy-lg-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-lg-3,\n .gx-lg-3 {\n --bs-gutter-x: 1rem;\n }\n .g-lg-3,\n .gy-lg-3 {\n --bs-gutter-y: 1rem;\n }\n .g-lg-4,\n .gx-lg-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-lg-4,\n .gy-lg-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-lg-5,\n .gx-lg-5 {\n --bs-gutter-x: 3rem;\n }\n .g-lg-5,\n .gy-lg-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1200px) {\n .col-xl {\n flex: 1 0 0%;\n }\n .row-cols-xl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xl-11 {\n margin-left: 91.66666667%;\n }\n .g-xl-0,\n .gx-xl-0 {\n --bs-gutter-x: 0;\n }\n .g-xl-0,\n .gy-xl-0 {\n --bs-gutter-y: 0;\n }\n .g-xl-1,\n .gx-xl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xl-1,\n .gy-xl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xl-2,\n .gx-xl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xl-2,\n .gy-xl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xl-3,\n .gx-xl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xl-3,\n .gy-xl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xl-4,\n .gx-xl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xl-4,\n .gy-xl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xl-5,\n .gx-xl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xl-5,\n .gy-xl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n@media (min-width: 1400px) {\n .col-xxl {\n flex: 1 0 0%;\n }\n .row-cols-xxl-auto > * {\n flex: 0 0 auto;\n width: auto;\n }\n .row-cols-xxl-1 > * {\n flex: 0 0 auto;\n width: 100%;\n }\n .row-cols-xxl-2 > * {\n flex: 0 0 auto;\n width: 50%;\n }\n .row-cols-xxl-3 > * {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .row-cols-xxl-4 > * {\n flex: 0 0 auto;\n width: 25%;\n }\n .row-cols-xxl-5 > * {\n flex: 0 0 auto;\n width: 20%;\n }\n .row-cols-xxl-6 > * {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-auto {\n flex: 0 0 auto;\n width: auto;\n }\n .col-xxl-1 {\n flex: 0 0 auto;\n width: 8.33333333%;\n }\n .col-xxl-2 {\n flex: 0 0 auto;\n width: 16.66666667%;\n }\n .col-xxl-3 {\n flex: 0 0 auto;\n width: 25%;\n }\n .col-xxl-4 {\n flex: 0 0 auto;\n width: 33.33333333%;\n }\n .col-xxl-5 {\n flex: 0 0 auto;\n width: 41.66666667%;\n }\n .col-xxl-6 {\n flex: 0 0 auto;\n width: 50%;\n }\n .col-xxl-7 {\n flex: 0 0 auto;\n width: 58.33333333%;\n }\n .col-xxl-8 {\n flex: 0 0 auto;\n width: 66.66666667%;\n }\n .col-xxl-9 {\n flex: 0 0 auto;\n width: 75%;\n }\n .col-xxl-10 {\n flex: 0 0 auto;\n width: 83.33333333%;\n }\n .col-xxl-11 {\n flex: 0 0 auto;\n width: 91.66666667%;\n }\n .col-xxl-12 {\n flex: 0 0 auto;\n width: 100%;\n }\n .offset-xxl-0 {\n margin-left: 0;\n }\n .offset-xxl-1 {\n margin-left: 8.33333333%;\n }\n .offset-xxl-2 {\n margin-left: 16.66666667%;\n }\n .offset-xxl-3 {\n margin-left: 25%;\n }\n .offset-xxl-4 {\n margin-left: 33.33333333%;\n }\n .offset-xxl-5 {\n margin-left: 41.66666667%;\n }\n .offset-xxl-6 {\n margin-left: 50%;\n }\n .offset-xxl-7 {\n margin-left: 58.33333333%;\n }\n .offset-xxl-8 {\n margin-left: 66.66666667%;\n }\n .offset-xxl-9 {\n margin-left: 75%;\n }\n .offset-xxl-10 {\n margin-left: 83.33333333%;\n }\n .offset-xxl-11 {\n margin-left: 91.66666667%;\n }\n .g-xxl-0,\n .gx-xxl-0 {\n --bs-gutter-x: 0;\n }\n .g-xxl-0,\n .gy-xxl-0 {\n --bs-gutter-y: 0;\n }\n .g-xxl-1,\n .gx-xxl-1 {\n --bs-gutter-x: 0.25rem;\n }\n .g-xxl-1,\n .gy-xxl-1 {\n --bs-gutter-y: 0.25rem;\n }\n .g-xxl-2,\n .gx-xxl-2 {\n --bs-gutter-x: 0.5rem;\n }\n .g-xxl-2,\n .gy-xxl-2 {\n --bs-gutter-y: 0.5rem;\n }\n .g-xxl-3,\n .gx-xxl-3 {\n --bs-gutter-x: 1rem;\n }\n .g-xxl-3,\n .gy-xxl-3 {\n --bs-gutter-y: 1rem;\n }\n .g-xxl-4,\n .gx-xxl-4 {\n --bs-gutter-x: 1.5rem;\n }\n .g-xxl-4,\n .gy-xxl-4 {\n --bs-gutter-y: 1.5rem;\n }\n .g-xxl-5,\n .gx-xxl-5 {\n --bs-gutter-x: 3rem;\n }\n .g-xxl-5,\n .gy-xxl-5 {\n --bs-gutter-y: 3rem;\n }\n}\n.table {\n --bs-table-color-type: initial;\n --bs-table-bg-type: initial;\n --bs-table-color-state: initial;\n --bs-table-bg-state: initial;\n --bs-table-color: var(--bs-emphasis-color);\n --bs-table-bg: var(--bs-body-bg);\n --bs-table-border-color: var(--bs-border-color);\n --bs-table-accent-bg: transparent;\n --bs-table-striped-color: var(--bs-emphasis-color);\n --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05);\n --bs-table-active-color: var(--bs-emphasis-color);\n --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1);\n --bs-table-hover-color: var(--bs-emphasis-color);\n --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075);\n width: 100%;\n margin-bottom: 1rem;\n vertical-align: top;\n border-color: var(--bs-table-border-color);\n}\n.table > :not(caption) > * > * {\n padding: 0.5rem 0.5rem;\n color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));\n background-color: var(--bs-table-bg);\n border-bottom-width: var(--bs-border-width);\n box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)));\n}\n.table > tbody {\n vertical-align: inherit;\n}\n.table > thead {\n vertical-align: bottom;\n}\n\n.table-group-divider {\n border-top: calc(var(--bs-border-width) * 2) solid currentcolor;\n}\n\n.caption-top {\n caption-side: top;\n}\n\n.table-sm > :not(caption) > * > * {\n padding: 0.25rem 0.25rem;\n}\n\n.table-bordered > :not(caption) > * {\n border-width: var(--bs-border-width) 0;\n}\n.table-bordered > :not(caption) > * > * {\n border-width: 0 var(--bs-border-width);\n}\n\n.table-borderless > :not(caption) > * > * {\n border-bottom-width: 0;\n}\n.table-borderless > :not(:first-child) {\n border-top-width: 0;\n}\n\n.table-striped > tbody > tr:nth-of-type(odd) > * {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-striped-columns > :not(caption) > tr > :nth-child(even) {\n --bs-table-color-type: var(--bs-table-striped-color);\n --bs-table-bg-type: var(--bs-table-striped-bg);\n}\n\n.table-active {\n --bs-table-color-state: var(--bs-table-active-color);\n --bs-table-bg-state: var(--bs-table-active-bg);\n}\n\n.table-hover > tbody > tr:hover > * {\n --bs-table-color-state: var(--bs-table-hover-color);\n --bs-table-bg-state: var(--bs-table-hover-bg);\n}\n\n.table-primary {\n --bs-table-color: #000;\n --bs-table-bg: #cfe2ff;\n --bs-table-border-color: #a6b5cc;\n --bs-table-striped-bg: #c5d7f2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bacbe6;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfd1ec;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-secondary {\n --bs-table-color: #000;\n --bs-table-bg: #e2e3e5;\n --bs-table-border-color: #b5b6b7;\n --bs-table-striped-bg: #d7d8da;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #cbccce;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #d1d2d4;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-success {\n --bs-table-color: #000;\n --bs-table-bg: #d1e7dd;\n --bs-table-border-color: #a7b9b1;\n --bs-table-striped-bg: #c7dbd2;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #bcd0c7;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #c1d6cc;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-info {\n --bs-table-color: #000;\n --bs-table-bg: #cff4fc;\n --bs-table-border-color: #a6c3ca;\n --bs-table-striped-bg: #c5e8ef;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #badce3;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #bfe2e9;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-warning {\n --bs-table-color: #000;\n --bs-table-bg: #fff3cd;\n --bs-table-border-color: #ccc2a4;\n --bs-table-striped-bg: #f2e7c3;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #e6dbb9;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #ece1be;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-danger {\n --bs-table-color: #000;\n --bs-table-bg: #f8d7da;\n --bs-table-border-color: #c6acae;\n --bs-table-striped-bg: #eccccf;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfc2c4;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5c7ca;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-light {\n --bs-table-color: #000;\n --bs-table-bg: #f8f9fa;\n --bs-table-border-color: #c6c7c8;\n --bs-table-striped-bg: #ecedee;\n --bs-table-striped-color: #000;\n --bs-table-active-bg: #dfe0e1;\n --bs-table-active-color: #000;\n --bs-table-hover-bg: #e5e6e7;\n --bs-table-hover-color: #000;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-dark {\n --bs-table-color: #fff;\n --bs-table-bg: #212529;\n --bs-table-border-color: #4d5154;\n --bs-table-striped-bg: #2c3034;\n --bs-table-striped-color: #fff;\n --bs-table-active-bg: #373b3e;\n --bs-table-active-color: #fff;\n --bs-table-hover-bg: #323539;\n --bs-table-hover-color: #fff;\n color: var(--bs-table-color);\n border-color: var(--bs-table-border-color);\n}\n\n.table-responsive {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 767.98px) {\n .table-responsive-md {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n@media (max-width: 1399.98px) {\n .table-responsive-xxl {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n.form-label {\n margin-bottom: 0.5rem;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + var(--bs-border-width));\n padding-bottom: calc(0.375rem + var(--bs-border-width));\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + var(--bs-border-width));\n padding-bottom: calc(0.5rem + var(--bs-border-width));\n font-size: 1.25rem;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + var(--bs-border-width));\n padding-bottom: calc(0.25rem + var(--bs-border-width));\n font-size: 0.875rem;\n}\n\n.form-text {\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-secondary-color);\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n appearance: none;\n background-color: var(--bs-body-bg);\n background-clip: padding-box;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n.form-control[type=file] {\n overflow: hidden;\n}\n.form-control[type=file]:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control:focus {\n color: var(--bs-body-color);\n background-color: var(--bs-body-bg);\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-control::-webkit-date-and-time-value {\n min-width: 85px;\n height: 1.5em;\n margin: 0;\n}\n.form-control::-webkit-datetime-edit {\n display: block;\n padding: 0;\n}\n.form-control::placeholder {\n color: var(--bs-secondary-color);\n opacity: 1;\n}\n.form-control:disabled {\n background-color: var(--bs-secondary-bg);\n opacity: 1;\n}\n.form-control::file-selector-button {\n padding: 0.375rem 0.75rem;\n margin: -0.375rem -0.75rem;\n margin-inline-end: 0.75rem;\n color: var(--bs-body-color);\n background-color: var(--bs-tertiary-bg);\n pointer-events: none;\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n border-inline-end-width: var(--bs-border-width);\n border-radius: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-control::file-selector-button {\n transition: none;\n }\n}\n.form-control:hover:not(:disabled):not([readonly])::file-selector-button {\n background-color: var(--bs-secondary-bg);\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n line-height: 1.5;\n color: var(--bs-body-color);\n background-color: transparent;\n border: solid transparent;\n border-width: var(--bs-border-width) 0;\n}\n.form-control-plaintext:focus {\n outline: 0;\n}\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n.form-control-sm::file-selector-button {\n padding: 0.25rem 0.5rem;\n margin: -0.25rem -0.5rem;\n margin-inline-end: 0.5rem;\n}\n\n.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n.form-control-lg::file-selector-button {\n padding: 0.5rem 1rem;\n margin: -0.5rem -1rem;\n margin-inline-end: 1rem;\n}\n\ntextarea.form-control {\n min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-sm {\n min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\ntextarea.form-control-lg {\n min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-control-color {\n width: 3rem;\n height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2));\n padding: 0.375rem;\n}\n.form-control-color:not(:disabled):not([readonly]) {\n cursor: pointer;\n}\n.form-control-color::-moz-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color::-webkit-color-swatch {\n border: 0 !important;\n border-radius: var(--bs-border-radius);\n}\n.form-control-color.form-control-sm {\n height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2));\n}\n.form-control-color.form-control-lg {\n height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));\n}\n\n.form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n display: block;\n width: 100%;\n padding: 0.375rem 2.25rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n appearance: none;\n background-color: var(--bs-body-bg);\n background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);\n background-repeat: no-repeat;\n background-position: right 0.75rem center;\n background-size: 16px 12px;\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-select {\n transition: none;\n }\n}\n.form-select:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-select[multiple], .form-select[size]:not([size=\"1\"]) {\n padding-right: 0.75rem;\n background-image: none;\n}\n.form-select:disabled {\n background-color: var(--bs-secondary-bg);\n}\n.form-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 var(--bs-body-color);\n}\n\n.form-select-sm {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.form-select-lg {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n[data-bs-theme=dark] .form-select {\n --bs-form-select-bg-img: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e\");\n}\n\n.form-check {\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5em;\n margin-bottom: 0.125rem;\n}\n.form-check .form-check-input {\n float: left;\n margin-left: -1.5em;\n}\n\n.form-check-reverse {\n padding-right: 1.5em;\n padding-left: 0;\n text-align: right;\n}\n.form-check-reverse .form-check-input {\n float: right;\n margin-right: -1.5em;\n margin-left: 0;\n}\n\n.form-check-input {\n --bs-form-check-bg: var(--bs-body-bg);\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n margin-top: 0.25em;\n vertical-align: top;\n appearance: none;\n background-color: var(--bs-form-check-bg);\n background-image: var(--bs-form-check-bg-image);\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n border: var(--bs-border-width) solid var(--bs-border-color);\n print-color-adjust: exact;\n}\n.form-check-input[type=checkbox] {\n border-radius: 0.25em;\n}\n.form-check-input[type=radio] {\n border-radius: 50%;\n}\n.form-check-input:active {\n filter: brightness(90%);\n}\n.form-check-input:focus {\n border-color: #86b7fe;\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-check-input:checked {\n background-color: #0d6efd;\n border-color: #0d6efd;\n}\n.form-check-input:checked[type=checkbox] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e\");\n}\n.form-check-input:checked[type=radio] {\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-check-input[type=checkbox]:indeterminate {\n background-color: #0d6efd;\n border-color: #0d6efd;\n --bs-form-check-bg-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e\");\n}\n.form-check-input:disabled {\n pointer-events: none;\n filter: none;\n opacity: 0.5;\n}\n.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label {\n cursor: default;\n opacity: 0.5;\n}\n\n.form-switch {\n padding-left: 2.5em;\n}\n.form-switch .form-check-input {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e\");\n width: 2em;\n margin-left: -2.5em;\n background-image: var(--bs-form-switch-bg);\n background-position: left center;\n border-radius: 2em;\n transition: background-position 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-switch .form-check-input {\n transition: none;\n }\n}\n.form-switch .form-check-input:focus {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e\");\n}\n.form-switch .form-check-input:checked {\n background-position: right center;\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n.form-switch.form-check-reverse {\n padding-right: 2.5em;\n padding-left: 0;\n}\n.form-switch.form-check-reverse .form-check-input {\n margin-right: -2.5em;\n margin-left: 0;\n}\n\n.form-check-inline {\n display: inline-block;\n margin-right: 1rem;\n}\n\n.btn-check {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.btn-check[disabled] + .btn, .btn-check:disabled + .btn {\n pointer-events: none;\n filter: none;\n opacity: 0.65;\n}\n\n[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) {\n --bs-form-switch-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e\");\n}\n\n.form-range {\n width: 100%;\n height: 1.5rem;\n padding: 0;\n appearance: none;\n background-color: transparent;\n}\n.form-range:focus {\n outline: 0;\n}\n.form-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.form-range::-moz-focus-outer {\n border: 0;\n}\n.form-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n.form-range::-webkit-slider-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n appearance: none;\n background-color: #0d6efd;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-range::-moz-range-thumb {\n transition: none;\n }\n}\n.form-range::-moz-range-thumb:active {\n background-color: #b6d4fe;\n}\n.form-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: var(--bs-secondary-bg);\n border-color: transparent;\n border-radius: 1rem;\n}\n.form-range:disabled {\n pointer-events: none;\n}\n.form-range:disabled::-webkit-slider-thumb {\n background-color: var(--bs-secondary-color);\n}\n.form-range:disabled::-moz-range-thumb {\n background-color: var(--bs-secondary-color);\n}\n\n.form-floating {\n position: relative;\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext,\n.form-floating > .form-select {\n height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));\n line-height: 1.25;\n}\n.form-floating > label {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n height: 100%;\n padding: 1rem 0.75rem;\n overflow: hidden;\n text-align: start;\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n border: var(--bs-border-width) solid transparent;\n transform-origin: 0 0;\n transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .form-floating > label {\n transition: none;\n }\n}\n.form-floating > .form-control,\n.form-floating > .form-control-plaintext {\n padding: 1rem 0.75rem;\n}\n.form-floating > .form-control::placeholder,\n.form-floating > .form-control-plaintext::placeholder {\n color: transparent;\n}\n.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),\n.form-floating > .form-control-plaintext:focus,\n.form-floating > .form-control-plaintext:not(:placeholder-shown) {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:-webkit-autofill,\n.form-floating > .form-control-plaintext:-webkit-autofill {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-select {\n padding-top: 1.625rem;\n padding-bottom: 0.625rem;\n}\n.form-floating > .form-control:focus ~ label,\n.form-floating > .form-control:not(:placeholder-shown) ~ label,\n.form-floating > .form-control-plaintext ~ label,\n.form-floating > .form-select ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control:focus ~ label::after,\n.form-floating > .form-control:not(:placeholder-shown) ~ label::after,\n.form-floating > .form-control-plaintext ~ label::after,\n.form-floating > .form-select ~ label::after {\n position: absolute;\n inset: 1rem 0.375rem;\n z-index: -1;\n height: 1.5em;\n content: \"\";\n background-color: var(--bs-body-bg);\n border-radius: var(--bs-border-radius);\n}\n.form-floating > .form-control:-webkit-autofill ~ label {\n color: rgba(var(--bs-body-color-rgb), 0.65);\n transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);\n}\n.form-floating > .form-control-plaintext ~ label {\n border-width: var(--bs-border-width) 0;\n}\n.form-floating > :disabled ~ label,\n.form-floating > .form-control:disabled ~ label {\n color: #6c757d;\n}\n.form-floating > :disabled ~ label::after,\n.form-floating > .form-control:disabled ~ label::after {\n background-color: var(--bs-secondary-bg);\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n.input-group > .form-control,\n.input-group > .form-select,\n.input-group > .form-floating {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n min-width: 0;\n}\n.input-group > .form-control:focus,\n.input-group > .form-select:focus,\n.input-group > .form-floating:focus-within {\n z-index: 5;\n}\n.input-group .btn {\n position: relative;\n z-index: 2;\n}\n.input-group .btn:focus {\n z-index: 5;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: var(--bs-body-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-tertiary-bg);\n border: var(--bs-border-width) solid var(--bs-border-color);\n border-radius: var(--bs-border-radius);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .form-select,\n.input-group-lg > .input-group-text,\n.input-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n border-radius: var(--bs-border-radius-lg);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .form-select,\n.input-group-sm > .input-group-text,\n.input-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n border-radius: var(--bs-border-radius-sm);\n}\n\n.input-group-lg > .form-select,\n.input-group-sm > .form-select {\n padding-right: 3rem;\n}\n\n.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3),\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control,\n.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),\n.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4),\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control,\n.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) {\n margin-left: calc(var(--bs-border-width) * -1);\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n.input-group > .form-floating:not(:first-child) > .form-control,\n.input-group > .form-floating:not(:first-child) > .form-select {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-valid-color);\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-success);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: var(--bs-form-valid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:valid, .form-select.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size=\"1\"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:valid:focus, .form-select.is-valid:focus {\n border-color: var(--bs-form-valid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n\n.was-validated .form-control-color:valid, .form-control-color.is-valid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:valid, .form-check-input.is-valid {\n border-color: var(--bs-form-valid-border-color);\n}\n.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked {\n background-color: var(--bs-form-valid-color);\n}\n.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25);\n}\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: var(--bs-form-valid-color);\n}\n\n.form-check-inline .form-check-input ~ .valid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid,\n.was-validated .input-group > .form-select:not(:focus):valid,\n.input-group > .form-select:not(:focus).is-valid,\n.was-validated .input-group > .form-floating:not(:focus-within):valid,\n.input-group > .form-floating:not(:focus-within).is-valid {\n z-index: 3;\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 0.875em;\n color: var(--bs-form-invalid-color);\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: 0.1rem;\n font-size: 0.875rem;\n color: #fff;\n background-color: var(--bs-danger);\n border-radius: var(--bs-border-radius);\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .form-select:invalid, .form-select.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size=\"1\"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size=\"1\"] {\n --bs-form-select-bg-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e\");\n padding-right: 4.125rem;\n background-position: right 0.75rem center, center right 2.25rem;\n background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus {\n border-color: var(--bs-form-invalid-border-color);\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n\n.was-validated .form-control-color:invalid, .form-control-color.is-invalid {\n width: calc(3rem + calc(1.5em + 0.75rem));\n}\n\n.was-validated .form-check-input:invalid, .form-check-input.is-invalid {\n border-color: var(--bs-form-invalid-border-color);\n}\n.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked {\n background-color: var(--bs-form-invalid-color);\n}\n.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus {\n box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25);\n}\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: var(--bs-form-invalid-color);\n}\n\n.form-check-inline .form-check-input ~ .invalid-feedback {\n margin-left: 0.5em;\n}\n\n.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid,\n.was-validated .input-group > .form-select:not(:focus):invalid,\n.input-group > .form-select:not(:focus).is-invalid,\n.was-validated .input-group > .form-floating:not(:focus-within):invalid,\n.input-group > .form-floating:not(:focus-within).is-invalid {\n z-index: 4;\n}\n\n.btn {\n --bs-btn-padding-x: 0.75rem;\n --bs-btn-padding-y: 0.375rem;\n --bs-btn-font-family: ;\n --bs-btn-font-size: 1rem;\n --bs-btn-font-weight: 400;\n --bs-btn-line-height: 1.5;\n --bs-btn-color: var(--bs-body-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-width: var(--bs-border-width);\n --bs-btn-border-color: transparent;\n --bs-btn-border-radius: var(--bs-border-radius);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n --bs-btn-disabled-opacity: 0.65;\n --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);\n display: inline-block;\n padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x);\n font-family: var(--bs-btn-font-family);\n font-size: var(--bs-btn-font-size);\n font-weight: var(--bs-btn-font-weight);\n line-height: var(--bs-btn-line-height);\n color: var(--bs-btn-color);\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);\n border-radius: var(--bs-btn-border-radius);\n background-color: var(--bs-btn-bg);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n.btn:hover {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n}\n.btn-check + .btn:hover {\n color: var(--bs-btn-color);\n background-color: var(--bs-btn-bg);\n border-color: var(--bs-btn-border-color);\n}\n.btn:focus-visible {\n color: var(--bs-btn-hover-color);\n background-color: var(--bs-btn-hover-bg);\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:focus-visible + .btn {\n border-color: var(--bs-btn-hover-border-color);\n outline: 0;\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show {\n color: var(--bs-btn-active-color);\n background-color: var(--bs-btn-active-bg);\n border-color: var(--bs-btn-active-border-color);\n}\n.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn-check:checked:focus-visible + .btn {\n box-shadow: var(--bs-btn-focus-box-shadow);\n}\n.btn:disabled, .btn.disabled, fieldset:disabled .btn {\n color: var(--bs-btn-disabled-color);\n pointer-events: none;\n background-color: var(--bs-btn-disabled-bg);\n border-color: var(--bs-btn-disabled-border-color);\n opacity: var(--bs-btn-disabled-opacity);\n}\n\n.btn-primary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0b5ed7;\n --bs-btn-hover-border-color: #0a58ca;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0a58ca;\n --bs-btn-active-border-color: #0a53be;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #0d6efd;\n --bs-btn-disabled-border-color: #0d6efd;\n}\n\n.btn-secondary {\n --bs-btn-color: #fff;\n --bs-btn-bg: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #5c636a;\n --bs-btn-hover-border-color: #565e64;\n --bs-btn-focus-shadow-rgb: 130, 138, 145;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #565e64;\n --bs-btn-active-border-color: #51585e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #6c757d;\n --bs-btn-disabled-border-color: #6c757d;\n}\n\n.btn-success {\n --bs-btn-color: #fff;\n --bs-btn-bg: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #157347;\n --bs-btn-hover-border-color: #146c43;\n --bs-btn-focus-shadow-rgb: 60, 153, 110;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #146c43;\n --bs-btn-active-border-color: #13653f;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #198754;\n --bs-btn-disabled-border-color: #198754;\n}\n\n.btn-info {\n --bs-btn-color: #000;\n --bs-btn-bg: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #31d2f2;\n --bs-btn-hover-border-color: #25cff2;\n --bs-btn-focus-shadow-rgb: 11, 172, 204;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #3dd5f3;\n --bs-btn-active-border-color: #25cff2;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #0dcaf0;\n --bs-btn-disabled-border-color: #0dcaf0;\n}\n\n.btn-warning {\n --bs-btn-color: #000;\n --bs-btn-bg: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffca2c;\n --bs-btn-hover-border-color: #ffc720;\n --bs-btn-focus-shadow-rgb: 217, 164, 6;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffcd39;\n --bs-btn-active-border-color: #ffc720;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #ffc107;\n --bs-btn-disabled-border-color: #ffc107;\n}\n\n.btn-danger {\n --bs-btn-color: #fff;\n --bs-btn-bg: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #bb2d3b;\n --bs-btn-hover-border-color: #b02a37;\n --bs-btn-focus-shadow-rgb: 225, 83, 97;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #b02a37;\n --bs-btn-active-border-color: #a52834;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #dc3545;\n --bs-btn-disabled-border-color: #dc3545;\n}\n\n.btn-light {\n --bs-btn-color: #000;\n --bs-btn-bg: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #d3d4d5;\n --bs-btn-hover-border-color: #c6c7c8;\n --bs-btn-focus-shadow-rgb: 211, 212, 213;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #c6c7c8;\n --bs-btn-active-border-color: #babbbc;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #000;\n --bs-btn-disabled-bg: #f8f9fa;\n --bs-btn-disabled-border-color: #f8f9fa;\n}\n\n.btn-dark {\n --bs-btn-color: #fff;\n --bs-btn-bg: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #424649;\n --bs-btn-hover-border-color: #373b3e;\n --bs-btn-focus-shadow-rgb: 66, 70, 73;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #4d5154;\n --bs-btn-active-border-color: #373b3e;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #fff;\n --bs-btn-disabled-bg: #212529;\n --bs-btn-disabled-border-color: #212529;\n}\n\n.btn-outline-primary {\n --bs-btn-color: #0d6efd;\n --bs-btn-border-color: #0d6efd;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #0d6efd;\n --bs-btn-hover-border-color: #0d6efd;\n --bs-btn-focus-shadow-rgb: 13, 110, 253;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #0d6efd;\n --bs-btn-active-border-color: #0d6efd;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0d6efd;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0d6efd;\n --bs-gradient: none;\n}\n\n.btn-outline-secondary {\n --bs-btn-color: #6c757d;\n --bs-btn-border-color: #6c757d;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #6c757d;\n --bs-btn-hover-border-color: #6c757d;\n --bs-btn-focus-shadow-rgb: 108, 117, 125;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #6c757d;\n --bs-btn-active-border-color: #6c757d;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #6c757d;\n --bs-gradient: none;\n}\n\n.btn-outline-success {\n --bs-btn-color: #198754;\n --bs-btn-border-color: #198754;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #198754;\n --bs-btn-hover-border-color: #198754;\n --bs-btn-focus-shadow-rgb: 25, 135, 84;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #198754;\n --bs-btn-active-border-color: #198754;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #198754;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #198754;\n --bs-gradient: none;\n}\n\n.btn-outline-info {\n --bs-btn-color: #0dcaf0;\n --bs-btn-border-color: #0dcaf0;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #0dcaf0;\n --bs-btn-hover-border-color: #0dcaf0;\n --bs-btn-focus-shadow-rgb: 13, 202, 240;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #0dcaf0;\n --bs-btn-active-border-color: #0dcaf0;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #0dcaf0;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #0dcaf0;\n --bs-gradient: none;\n}\n\n.btn-outline-warning {\n --bs-btn-color: #ffc107;\n --bs-btn-border-color: #ffc107;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #ffc107;\n --bs-btn-hover-border-color: #ffc107;\n --bs-btn-focus-shadow-rgb: 255, 193, 7;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #ffc107;\n --bs-btn-active-border-color: #ffc107;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #ffc107;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #ffc107;\n --bs-gradient: none;\n}\n\n.btn-outline-danger {\n --bs-btn-color: #dc3545;\n --bs-btn-border-color: #dc3545;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #dc3545;\n --bs-btn-hover-border-color: #dc3545;\n --bs-btn-focus-shadow-rgb: 220, 53, 69;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #dc3545;\n --bs-btn-active-border-color: #dc3545;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #dc3545;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #dc3545;\n --bs-gradient: none;\n}\n\n.btn-outline-light {\n --bs-btn-color: #f8f9fa;\n --bs-btn-border-color: #f8f9fa;\n --bs-btn-hover-color: #000;\n --bs-btn-hover-bg: #f8f9fa;\n --bs-btn-hover-border-color: #f8f9fa;\n --bs-btn-focus-shadow-rgb: 248, 249, 250;\n --bs-btn-active-color: #000;\n --bs-btn-active-bg: #f8f9fa;\n --bs-btn-active-border-color: #f8f9fa;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #f8f9fa;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #f8f9fa;\n --bs-gradient: none;\n}\n\n.btn-outline-dark {\n --bs-btn-color: #212529;\n --bs-btn-border-color: #212529;\n --bs-btn-hover-color: #fff;\n --bs-btn-hover-bg: #212529;\n --bs-btn-hover-border-color: #212529;\n --bs-btn-focus-shadow-rgb: 33, 37, 41;\n --bs-btn-active-color: #fff;\n --bs-btn-active-bg: #212529;\n --bs-btn-active-border-color: #212529;\n --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n --bs-btn-disabled-color: #212529;\n --bs-btn-disabled-bg: transparent;\n --bs-btn-disabled-border-color: #212529;\n --bs-gradient: none;\n}\n\n.btn-link {\n --bs-btn-font-weight: 400;\n --bs-btn-color: var(--bs-link-color);\n --bs-btn-bg: transparent;\n --bs-btn-border-color: transparent;\n --bs-btn-hover-color: var(--bs-link-hover-color);\n --bs-btn-hover-border-color: transparent;\n --bs-btn-active-color: var(--bs-link-hover-color);\n --bs-btn-active-border-color: transparent;\n --bs-btn-disabled-color: #6c757d;\n --bs-btn-disabled-border-color: transparent;\n --bs-btn-box-shadow: 0 0 0 #000;\n --bs-btn-focus-shadow-rgb: 49, 132, 253;\n text-decoration: underline;\n}\n.btn-link:focus-visible {\n color: var(--bs-btn-color);\n}\n.btn-link:hover {\n color: var(--bs-btn-hover-color);\n}\n\n.btn-lg, .btn-group-lg > .btn {\n --bs-btn-padding-y: 0.5rem;\n --bs-btn-padding-x: 1rem;\n --bs-btn-font-size: 1.25rem;\n --bs-btn-border-radius: var(--bs-border-radius-lg);\n}\n\n.btn-sm, .btn-group-sm > .btn {\n --bs-btn-padding-y: 0.25rem;\n --bs-btn-padding-x: 0.5rem;\n --bs-btn-font-size: 0.875rem;\n --bs-btn-border-radius: var(--bs-border-radius-sm);\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n.collapsing.collapse-horizontal {\n width: 0;\n height: auto;\n transition: width 0.35s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .collapsing.collapse-horizontal {\n transition: none;\n }\n}\n\n.dropup,\n.dropend,\n.dropdown,\n.dropstart,\n.dropup-center,\n.dropdown-center {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n --bs-dropdown-zindex: 1000;\n --bs-dropdown-min-width: 10rem;\n --bs-dropdown-padding-x: 0;\n --bs-dropdown-padding-y: 0.5rem;\n --bs-dropdown-spacer: 0.125rem;\n --bs-dropdown-font-size: 1rem;\n --bs-dropdown-color: var(--bs-body-color);\n --bs-dropdown-bg: var(--bs-body-bg);\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-border-radius: var(--bs-border-radius);\n --bs-dropdown-border-width: var(--bs-border-width);\n --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-divider-margin-y: 0.5rem;\n --bs-dropdown-box-shadow: var(--bs-box-shadow);\n --bs-dropdown-link-color: var(--bs-body-color);\n --bs-dropdown-link-hover-color: var(--bs-body-color);\n --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);\n --bs-dropdown-link-active-color: #fff;\n --bs-dropdown-link-active-bg: #0d6efd;\n --bs-dropdown-link-disabled-color: var(--bs-tertiary-color);\n --bs-dropdown-item-padding-x: 1rem;\n --bs-dropdown-item-padding-y: 0.25rem;\n --bs-dropdown-header-color: #6c757d;\n --bs-dropdown-header-padding-x: 1rem;\n --bs-dropdown-header-padding-y: 0.5rem;\n position: absolute;\n z-index: var(--bs-dropdown-zindex);\n display: none;\n min-width: var(--bs-dropdown-min-width);\n padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);\n margin: 0;\n font-size: var(--bs-dropdown-font-size);\n color: var(--bs-dropdown-color);\n text-align: left;\n list-style: none;\n background-color: var(--bs-dropdown-bg);\n background-clip: padding-box;\n border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);\n border-radius: var(--bs-dropdown-border-radius);\n}\n.dropdown-menu[data-bs-popper] {\n top: 100%;\n left: 0;\n margin-top: var(--bs-dropdown-spacer);\n}\n\n.dropdown-menu-start {\n --bs-position: start;\n}\n.dropdown-menu-start[data-bs-popper] {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-end {\n --bs-position: end;\n}\n.dropdown-menu-end[data-bs-popper] {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-start {\n --bs-position: start;\n }\n .dropdown-menu-sm-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-end {\n --bs-position: end;\n }\n .dropdown-menu-sm-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 768px) {\n .dropdown-menu-md-start {\n --bs-position: start;\n }\n .dropdown-menu-md-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-end {\n --bs-position: end;\n }\n .dropdown-menu-md-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 992px) {\n .dropdown-menu-lg-start {\n --bs-position: start;\n }\n .dropdown-menu-lg-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-end {\n --bs-position: end;\n }\n .dropdown-menu-lg-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1200px) {\n .dropdown-menu-xl-start {\n --bs-position: start;\n }\n .dropdown-menu-xl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-end {\n --bs-position: end;\n }\n .dropdown-menu-xl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n@media (min-width: 1400px) {\n .dropdown-menu-xxl-start {\n --bs-position: start;\n }\n .dropdown-menu-xxl-start[data-bs-popper] {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xxl-end {\n --bs-position: end;\n }\n .dropdown-menu-xxl-end[data-bs-popper] {\n right: 0;\n left: auto;\n }\n}\n.dropup .dropdown-menu[data-bs-popper] {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: var(--bs-dropdown-spacer);\n}\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropend .dropdown-menu[data-bs-popper] {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: var(--bs-dropdown-spacer);\n}\n.dropend .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n.dropend .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropend .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropstart .dropdown-menu[data-bs-popper] {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: var(--bs-dropdown-spacer);\n}\n.dropstart .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n.dropstart .dropdown-toggle::after {\n display: none;\n}\n.dropstart .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n.dropstart .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: var(--bs-dropdown-divider-margin-y) 0;\n overflow: hidden;\n border-top: 1px solid var(--bs-dropdown-divider-bg);\n opacity: 1;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n clear: both;\n font-weight: 400;\n color: var(--bs-dropdown-link-color);\n text-align: inherit;\n text-decoration: none;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n border-radius: var(--bs-dropdown-item-border-radius, 0);\n}\n.dropdown-item:hover, .dropdown-item:focus {\n color: var(--bs-dropdown-link-hover-color);\n background-color: var(--bs-dropdown-link-hover-bg);\n}\n.dropdown-item.active, .dropdown-item:active {\n color: var(--bs-dropdown-link-active-color);\n text-decoration: none;\n background-color: var(--bs-dropdown-link-active-bg);\n}\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: var(--bs-dropdown-link-disabled-color);\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);\n margin-bottom: 0;\n font-size: 0.875rem;\n color: var(--bs-dropdown-header-color);\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);\n color: var(--bs-dropdown-link-color);\n}\n\n.dropdown-menu-dark {\n --bs-dropdown-color: #dee2e6;\n --bs-dropdown-bg: #343a40;\n --bs-dropdown-border-color: var(--bs-border-color-translucent);\n --bs-dropdown-box-shadow: ;\n --bs-dropdown-link-color: #dee2e6;\n --bs-dropdown-link-hover-color: #fff;\n --bs-dropdown-divider-bg: var(--bs-border-color-translucent);\n --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15);\n --bs-dropdown-link-active-color: #fff;\n --bs-dropdown-link-active-bg: #0d6efd;\n --bs-dropdown-link-disabled-color: #adb5bd;\n --bs-dropdown-header-color: #adb5bd;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n.btn-group > .btn-check:checked + .btn,\n.btn-group > .btn-check:focus + .btn,\n.btn-group > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn-check:checked + .btn,\n.btn-group-vertical > .btn-check:focus + .btn,\n.btn-group-vertical > .btn:hover,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group {\n border-radius: var(--bs-border-radius);\n}\n.btn-group > :not(.btn-check:first-child) + .btn,\n.btn-group > .btn-group:not(:first-child) {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn.dropdown-toggle-split:first-child,\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n.btn-group > .btn:nth-child(n+3),\n.btn-group > :not(.btn-check) + .btn,\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after {\n margin-left: 0;\n}\n.dropstart .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: calc(var(--bs-border-width) * -1);\n}\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn ~ .btn,\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav {\n --bs-nav-link-padding-x: 1rem;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-link-color);\n --bs-nav-link-hover-color: var(--bs-link-hover-color);\n --bs-nav-link-disabled-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);\n font-size: var(--bs-nav-link-font-size);\n font-weight: var(--bs-nav-link-font-weight);\n color: var(--bs-nav-link-color);\n text-decoration: none;\n background: none;\n border: 0;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .nav-link {\n transition: none;\n }\n}\n.nav-link:hover, .nav-link:focus {\n color: var(--bs-nav-link-hover-color);\n}\n.nav-link:focus-visible {\n outline: 0;\n box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n}\n.nav-link.disabled, .nav-link:disabled {\n color: var(--bs-nav-link-disabled-color);\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n --bs-nav-tabs-border-width: var(--bs-border-width);\n --bs-nav-tabs-border-color: var(--bs-border-color);\n --bs-nav-tabs-border-radius: var(--bs-border-radius);\n --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);\n --bs-nav-tabs-link-active-color: var(--bs-emphasis-color);\n --bs-nav-tabs-link-active-bg: var(--bs-body-bg);\n --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);\n border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color);\n}\n.nav-tabs .nav-link {\n margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width));\n border: var(--bs-nav-tabs-border-width) solid transparent;\n border-top-left-radius: var(--bs-nav-tabs-border-radius);\n border-top-right-radius: var(--bs-nav-tabs-border-radius);\n}\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n isolation: isolate;\n border-color: var(--bs-nav-tabs-link-hover-border-color);\n}\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: var(--bs-nav-tabs-link-active-color);\n background-color: var(--bs-nav-tabs-link-active-bg);\n border-color: var(--bs-nav-tabs-link-active-border-color);\n}\n.nav-tabs .dropdown-menu {\n margin-top: calc(-1 * var(--bs-nav-tabs-border-width));\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills {\n --bs-nav-pills-border-radius: var(--bs-border-radius);\n --bs-nav-pills-link-active-color: #fff;\n --bs-nav-pills-link-active-bg: #0d6efd;\n}\n.nav-pills .nav-link {\n border-radius: var(--bs-nav-pills-border-radius);\n}\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: var(--bs-nav-pills-link-active-color);\n background-color: var(--bs-nav-pills-link-active-bg);\n}\n\n.nav-underline {\n --bs-nav-underline-gap: 1rem;\n --bs-nav-underline-border-width: 0.125rem;\n --bs-nav-underline-link-active-color: var(--bs-emphasis-color);\n gap: var(--bs-nav-underline-gap);\n}\n.nav-underline .nav-link {\n padding-right: 0;\n padding-left: 0;\n border-bottom: var(--bs-nav-underline-border-width) solid transparent;\n}\n.nav-underline .nav-link:hover, .nav-underline .nav-link:focus {\n border-bottom-color: currentcolor;\n}\n.nav-underline .nav-link.active,\n.nav-underline .show > .nav-link {\n font-weight: 700;\n color: var(--bs-nav-underline-link-active-color);\n border-bottom-color: currentcolor;\n}\n\n.nav-fill > .nav-link,\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified > .nav-link,\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.nav-fill .nav-item .nav-link,\n.nav-justified .nav-item .nav-link {\n width: 100%;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n --bs-navbar-padding-x: 0;\n --bs-navbar-padding-y: 0.5rem;\n --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65);\n --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8);\n --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3);\n --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-padding-y: 0.3125rem;\n --bs-navbar-brand-margin-end: 1rem;\n --bs-navbar-brand-font-size: 1.25rem;\n --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);\n --bs-navbar-nav-link-padding-x: 0.5rem;\n --bs-navbar-toggler-padding-y: 0.25rem;\n --bs-navbar-toggler-padding-x: 0.75rem;\n --bs-navbar-toggler-font-size: 1.25rem;\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15);\n --bs-navbar-toggler-border-radius: var(--bs-border-radius);\n --bs-navbar-toggler-focus-width: 0.25rem;\n --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x);\n}\n.navbar > .container,\n.navbar > .container-fluid,\n.navbar > .container-sm,\n.navbar > .container-md,\n.navbar > .container-lg,\n.navbar > .container-xl,\n.navbar > .container-xxl {\n display: flex;\n flex-wrap: inherit;\n align-items: center;\n justify-content: space-between;\n}\n.navbar-brand {\n padding-top: var(--bs-navbar-brand-padding-y);\n padding-bottom: var(--bs-navbar-brand-padding-y);\n margin-right: var(--bs-navbar-brand-margin-end);\n font-size: var(--bs-navbar-brand-font-size);\n color: var(--bs-navbar-brand-color);\n text-decoration: none;\n white-space: nowrap;\n}\n.navbar-brand:hover, .navbar-brand:focus {\n color: var(--bs-navbar-brand-hover-color);\n}\n\n.navbar-nav {\n --bs-nav-link-padding-x: 0;\n --bs-nav-link-padding-y: 0.5rem;\n --bs-nav-link-font-weight: ;\n --bs-nav-link-color: var(--bs-navbar-color);\n --bs-nav-link-hover-color: var(--bs-navbar-hover-color);\n --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n.navbar-nav .nav-link.active, .navbar-nav .nav-link.show {\n color: var(--bs-navbar-active-color);\n}\n.navbar-nav .dropdown-menu {\n position: static;\n}\n\n.navbar-text {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n color: var(--bs-navbar-color);\n}\n.navbar-text a,\n.navbar-text a:hover,\n.navbar-text a:focus {\n color: var(--bs-navbar-active-color);\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);\n font-size: var(--bs-navbar-toggler-font-size);\n line-height: 1;\n color: var(--bs-navbar-color);\n background-color: transparent;\n border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);\n border-radius: var(--bs-navbar-toggler-border-radius);\n transition: var(--bs-navbar-toggler-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .navbar-toggler {\n transition: none;\n }\n}\n.navbar-toggler:hover {\n text-decoration: none;\n}\n.navbar-toggler:focus {\n text-decoration: none;\n outline: 0;\n box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width);\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n background-image: var(--bs-navbar-toggler-icon-bg);\n background-repeat: no-repeat;\n background-position: center;\n background-size: 100%;\n}\n\n.navbar-nav-scroll {\n max-height: var(--bs-scroll-height, 75vh);\n overflow-y: auto;\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-sm .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-sm .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-md .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-md .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-lg .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-lg .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-xl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-xl .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n@media (min-width: 1400px) {\n .navbar-expand-xxl {\n flex-wrap: nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xxl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xxl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xxl .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n }\n .navbar-expand-xxl .navbar-nav-scroll {\n overflow: visible;\n }\n .navbar-expand-xxl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xxl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xxl .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n }\n .navbar-expand-xxl .offcanvas .offcanvas-header {\n display: none;\n }\n .navbar-expand-xxl .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n }\n}\n.navbar-expand {\n flex-wrap: nowrap;\n justify-content: flex-start;\n}\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n.navbar-expand .navbar-nav .nav-link {\n padding-right: var(--bs-navbar-nav-link-padding-x);\n padding-left: var(--bs-navbar-nav-link-padding-x);\n}\n.navbar-expand .navbar-nav-scroll {\n overflow: visible;\n}\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n.navbar-expand .navbar-toggler {\n display: none;\n}\n.navbar-expand .offcanvas {\n position: static;\n z-index: auto;\n flex-grow: 1;\n width: auto !important;\n height: auto !important;\n visibility: visible !important;\n background-color: transparent !important;\n border: 0 !important;\n transform: none !important;\n transition: none;\n}\n.navbar-expand .offcanvas .offcanvas-header {\n display: none;\n}\n.navbar-expand .offcanvas .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n}\n\n.navbar-dark,\n.navbar[data-bs-theme=dark] {\n --bs-navbar-color: rgba(255, 255, 255, 0.55);\n --bs-navbar-hover-color: rgba(255, 255, 255, 0.75);\n --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25);\n --bs-navbar-active-color: #fff;\n --bs-navbar-brand-color: #fff;\n --bs-navbar-brand-hover-color: #fff;\n --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1);\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n[data-bs-theme=dark] .navbar-toggler-icon {\n --bs-navbar-toggler-icon-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.card {\n --bs-card-spacer-y: 1rem;\n --bs-card-spacer-x: 1rem;\n --bs-card-title-spacer-y: 0.5rem;\n --bs-card-title-color: ;\n --bs-card-subtitle-color: ;\n --bs-card-border-width: var(--bs-border-width);\n --bs-card-border-color: var(--bs-border-color-translucent);\n --bs-card-border-radius: var(--bs-border-radius);\n --bs-card-box-shadow: ;\n --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-card-cap-padding-y: 0.5rem;\n --bs-card-cap-padding-x: 1rem;\n --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);\n --bs-card-cap-color: ;\n --bs-card-height: ;\n --bs-card-color: ;\n --bs-card-bg: var(--bs-body-bg);\n --bs-card-img-overlay-padding: 1rem;\n --bs-card-group-margin: 0.75rem;\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n height: var(--bs-card-height);\n color: var(--bs-body-color);\n word-wrap: break-word;\n background-color: var(--bs-card-bg);\n background-clip: border-box;\n border: var(--bs-card-border-width) solid var(--bs-card-border-color);\n border-radius: var(--bs-card-border-radius);\n}\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n.card > .list-group {\n border-top: inherit;\n border-bottom: inherit;\n}\n.card > .list-group:first-child {\n border-top-width: 0;\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n.card > .list-group:last-child {\n border-bottom-width: 0;\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n.card > .card-header + .list-group,\n.card > .list-group + .card-footer {\n border-top: 0;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);\n color: var(--bs-card-color);\n}\n\n.card-title {\n margin-bottom: var(--bs-card-title-spacer-y);\n color: var(--bs-card-title-color);\n}\n\n.card-subtitle {\n margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));\n margin-bottom: 0;\n color: var(--bs-card-subtitle-color);\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link + .card-link {\n margin-left: var(--bs-card-spacer-x);\n}\n\n.card-header {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n margin-bottom: 0;\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-header:first-child {\n border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0;\n}\n\n.card-footer {\n padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);\n color: var(--bs-card-cap-color);\n background-color: var(--bs-card-cap-bg);\n border-top: var(--bs-card-border-width) solid var(--bs-card-border-color);\n}\n.card-footer:last-child {\n border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius);\n}\n\n.card-header-tabs {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n border-bottom: 0;\n}\n.card-header-tabs .nav-link.active {\n background-color: var(--bs-card-bg);\n border-bottom-color: var(--bs-card-bg);\n}\n\n.card-header-pills {\n margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));\n margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: var(--bs-card-img-overlay-padding);\n border-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: var(--bs-card-inner-border-radius);\n border-top-right-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: var(--bs-card-inner-border-radius);\n border-bottom-left-radius: var(--bs-card-inner-border-radius);\n}\n\n.card-group > .card {\n margin-bottom: var(--bs-card-group-margin);\n}\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.accordion {\n --bs-accordion-color: var(--bs-body-color);\n --bs-accordion-bg: var(--bs-body-bg);\n --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;\n --bs-accordion-border-color: var(--bs-border-color);\n --bs-accordion-border-width: var(--bs-border-width);\n --bs-accordion-border-radius: var(--bs-border-radius);\n --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));\n --bs-accordion-btn-padding-x: 1.25rem;\n --bs-accordion-btn-padding-y: 1rem;\n --bs-accordion-btn-color: var(--bs-body-color);\n --bs-accordion-btn-bg: var(--bs-accordion-bg);\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\");\n --bs-accordion-btn-icon-width: 1.25rem;\n --bs-accordion-btn-icon-transform: rotate(-180deg);\n --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='M2 5L8 11L14 5'/%3e%3c/svg%3e\");\n --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n --bs-accordion-body-padding-x: 1.25rem;\n --bs-accordion-body-padding-y: 1rem;\n --bs-accordion-active-color: var(--bs-primary-text-emphasis);\n --bs-accordion-active-bg: var(--bs-primary-bg-subtle);\n}\n\n.accordion-button {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);\n font-size: 1rem;\n color: var(--bs-accordion-btn-color);\n text-align: left;\n background-color: var(--bs-accordion-btn-bg);\n border: 0;\n border-radius: 0;\n overflow-anchor: none;\n transition: var(--bs-accordion-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button {\n transition: none;\n }\n}\n.accordion-button:not(.collapsed) {\n color: var(--bs-accordion-active-color);\n background-color: var(--bs-accordion-active-bg);\n box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color);\n}\n.accordion-button:not(.collapsed)::after {\n background-image: var(--bs-accordion-btn-active-icon);\n transform: var(--bs-accordion-btn-icon-transform);\n}\n.accordion-button::after {\n flex-shrink: 0;\n width: var(--bs-accordion-btn-icon-width);\n height: var(--bs-accordion-btn-icon-width);\n margin-left: auto;\n content: \"\";\n background-image: var(--bs-accordion-btn-icon);\n background-repeat: no-repeat;\n background-size: var(--bs-accordion-btn-icon-width);\n transition: var(--bs-accordion-btn-icon-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .accordion-button::after {\n transition: none;\n }\n}\n.accordion-button:hover {\n z-index: 2;\n}\n.accordion-button:focus {\n z-index: 3;\n outline: 0;\n box-shadow: var(--bs-accordion-btn-focus-box-shadow);\n}\n\n.accordion-header {\n margin-bottom: 0;\n}\n\n.accordion-item {\n color: var(--bs-accordion-color);\n background-color: var(--bs-accordion-bg);\n border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color);\n}\n.accordion-item:first-of-type {\n border-top-left-radius: var(--bs-accordion-border-radius);\n border-top-right-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:first-of-type > .accordion-header .accordion-button {\n border-top-left-radius: var(--bs-accordion-inner-border-radius);\n border-top-right-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:not(:first-of-type) {\n border-top: 0;\n}\n.accordion-item:last-of-type {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed {\n border-bottom-right-radius: var(--bs-accordion-inner-border-radius);\n border-bottom-left-radius: var(--bs-accordion-inner-border-radius);\n}\n.accordion-item:last-of-type > .accordion-collapse {\n border-bottom-right-radius: var(--bs-accordion-border-radius);\n border-bottom-left-radius: var(--bs-accordion-border-radius);\n}\n\n.accordion-body {\n padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);\n}\n\n.accordion-flush > .accordion-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n.accordion-flush > .accordion-item:first-child {\n border-top: 0;\n}\n.accordion-flush > .accordion-item:last-child {\n border-bottom: 0;\n}\n.accordion-flush > .accordion-item > .accordion-header .accordion-button, .accordion-flush > .accordion-item > .accordion-header .accordion-button.collapsed {\n border-radius: 0;\n}\n.accordion-flush > .accordion-item > .accordion-collapse {\n border-radius: 0;\n}\n\n[data-bs-theme=dark] .accordion-button::after {\n --bs-accordion-btn-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n --bs-accordion-btn-active-icon: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\");\n}\n\n.breadcrumb {\n --bs-breadcrumb-padding-x: 0;\n --bs-breadcrumb-padding-y: 0;\n --bs-breadcrumb-margin-bottom: 1rem;\n --bs-breadcrumb-bg: ;\n --bs-breadcrumb-border-radius: ;\n --bs-breadcrumb-divider-color: var(--bs-secondary-color);\n --bs-breadcrumb-item-padding-x: 0.5rem;\n --bs-breadcrumb-item-active-color: var(--bs-secondary-color);\n display: flex;\n flex-wrap: wrap;\n padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);\n margin-bottom: var(--bs-breadcrumb-margin-bottom);\n font-size: var(--bs-breadcrumb-font-size);\n list-style: none;\n background-color: var(--bs-breadcrumb-bg);\n border-radius: var(--bs-breadcrumb-border-radius);\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: var(--bs-breadcrumb-item-padding-x);\n}\n.breadcrumb-item + .breadcrumb-item::before {\n float: left;\n padding-right: var(--bs-breadcrumb-item-padding-x);\n color: var(--bs-breadcrumb-divider-color);\n content: var(--bs-breadcrumb-divider, \"/\") /* rtl: var(--bs-breadcrumb-divider, \"/\") */;\n}\n.breadcrumb-item.active {\n color: var(--bs-breadcrumb-item-active-color);\n}\n\n.pagination {\n --bs-pagination-padding-x: 0.75rem;\n --bs-pagination-padding-y: 0.375rem;\n --bs-pagination-font-size: 1rem;\n --bs-pagination-color: var(--bs-link-color);\n --bs-pagination-bg: var(--bs-body-bg);\n --bs-pagination-border-width: var(--bs-border-width);\n --bs-pagination-border-color: var(--bs-border-color);\n --bs-pagination-border-radius: var(--bs-border-radius);\n --bs-pagination-hover-color: var(--bs-link-hover-color);\n --bs-pagination-hover-bg: var(--bs-tertiary-bg);\n --bs-pagination-hover-border-color: var(--bs-border-color);\n --bs-pagination-focus-color: var(--bs-link-hover-color);\n --bs-pagination-focus-bg: var(--bs-secondary-bg);\n --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n --bs-pagination-active-color: #fff;\n --bs-pagination-active-bg: #0d6efd;\n --bs-pagination-active-border-color: #0d6efd;\n --bs-pagination-disabled-color: var(--bs-secondary-color);\n --bs-pagination-disabled-bg: var(--bs-secondary-bg);\n --bs-pagination-disabled-border-color: var(--bs-border-color);\n display: flex;\n padding-left: 0;\n list-style: none;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);\n font-size: var(--bs-pagination-font-size);\n color: var(--bs-pagination-color);\n text-decoration: none;\n background-color: var(--bs-pagination-bg);\n border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .page-link {\n transition: none;\n }\n}\n.page-link:hover {\n z-index: 2;\n color: var(--bs-pagination-hover-color);\n background-color: var(--bs-pagination-hover-bg);\n border-color: var(--bs-pagination-hover-border-color);\n}\n.page-link:focus {\n z-index: 3;\n color: var(--bs-pagination-focus-color);\n background-color: var(--bs-pagination-focus-bg);\n outline: 0;\n box-shadow: var(--bs-pagination-focus-box-shadow);\n}\n.page-link.active, .active > .page-link {\n z-index: 3;\n color: var(--bs-pagination-active-color);\n background-color: var(--bs-pagination-active-bg);\n border-color: var(--bs-pagination-active-border-color);\n}\n.page-link.disabled, .disabled > .page-link {\n color: var(--bs-pagination-disabled-color);\n pointer-events: none;\n background-color: var(--bs-pagination-disabled-bg);\n border-color: var(--bs-pagination-disabled-border-color);\n}\n\n.page-item:not(:first-child) .page-link {\n margin-left: calc(var(--bs-border-width) * -1);\n}\n.page-item:first-child .page-link {\n border-top-left-radius: var(--bs-pagination-border-radius);\n border-bottom-left-radius: var(--bs-pagination-border-radius);\n}\n.page-item:last-child .page-link {\n border-top-right-radius: var(--bs-pagination-border-radius);\n border-bottom-right-radius: var(--bs-pagination-border-radius);\n}\n\n.pagination-lg {\n --bs-pagination-padding-x: 1.5rem;\n --bs-pagination-padding-y: 0.75rem;\n --bs-pagination-font-size: 1.25rem;\n --bs-pagination-border-radius: var(--bs-border-radius-lg);\n}\n\n.pagination-sm {\n --bs-pagination-padding-x: 0.5rem;\n --bs-pagination-padding-y: 0.25rem;\n --bs-pagination-font-size: 0.875rem;\n --bs-pagination-border-radius: var(--bs-border-radius-sm);\n}\n\n.badge {\n --bs-badge-padding-x: 0.65em;\n --bs-badge-padding-y: 0.35em;\n --bs-badge-font-size: 0.75em;\n --bs-badge-font-weight: 700;\n --bs-badge-color: #fff;\n --bs-badge-border-radius: var(--bs-border-radius);\n display: inline-block;\n padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x);\n font-size: var(--bs-badge-font-size);\n font-weight: var(--bs-badge-font-weight);\n line-height: 1;\n color: var(--bs-badge-color);\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: var(--bs-badge-border-radius);\n}\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.alert {\n --bs-alert-bg: transparent;\n --bs-alert-padding-x: 1rem;\n --bs-alert-padding-y: 1rem;\n --bs-alert-margin-bottom: 1rem;\n --bs-alert-color: inherit;\n --bs-alert-border-color: transparent;\n --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);\n --bs-alert-border-radius: var(--bs-border-radius);\n --bs-alert-link-color: inherit;\n position: relative;\n padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);\n margin-bottom: var(--bs-alert-margin-bottom);\n color: var(--bs-alert-color);\n background-color: var(--bs-alert-bg);\n border: var(--bs-alert-border);\n border-radius: var(--bs-alert-border-radius);\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n color: var(--bs-alert-link-color);\n}\n\n.alert-dismissible {\n padding-right: 3rem;\n}\n.alert-dismissible .btn-close {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n padding: 1.25rem 1rem;\n}\n\n.alert-primary {\n --bs-alert-color: var(--bs-primary-text-emphasis);\n --bs-alert-bg: var(--bs-primary-bg-subtle);\n --bs-alert-border-color: var(--bs-primary-border-subtle);\n --bs-alert-link-color: var(--bs-primary-text-emphasis);\n}\n\n.alert-secondary {\n --bs-alert-color: var(--bs-secondary-text-emphasis);\n --bs-alert-bg: var(--bs-secondary-bg-subtle);\n --bs-alert-border-color: var(--bs-secondary-border-subtle);\n --bs-alert-link-color: var(--bs-secondary-text-emphasis);\n}\n\n.alert-success {\n --bs-alert-color: var(--bs-success-text-emphasis);\n --bs-alert-bg: var(--bs-success-bg-subtle);\n --bs-alert-border-color: var(--bs-success-border-subtle);\n --bs-alert-link-color: var(--bs-success-text-emphasis);\n}\n\n.alert-info {\n --bs-alert-color: var(--bs-info-text-emphasis);\n --bs-alert-bg: var(--bs-info-bg-subtle);\n --bs-alert-border-color: var(--bs-info-border-subtle);\n --bs-alert-link-color: var(--bs-info-text-emphasis);\n}\n\n.alert-warning {\n --bs-alert-color: var(--bs-warning-text-emphasis);\n --bs-alert-bg: var(--bs-warning-bg-subtle);\n --bs-alert-border-color: var(--bs-warning-border-subtle);\n --bs-alert-link-color: var(--bs-warning-text-emphasis);\n}\n\n.alert-danger {\n --bs-alert-color: var(--bs-danger-text-emphasis);\n --bs-alert-bg: var(--bs-danger-bg-subtle);\n --bs-alert-border-color: var(--bs-danger-border-subtle);\n --bs-alert-link-color: var(--bs-danger-text-emphasis);\n}\n\n.alert-light {\n --bs-alert-color: var(--bs-light-text-emphasis);\n --bs-alert-bg: var(--bs-light-bg-subtle);\n --bs-alert-border-color: var(--bs-light-border-subtle);\n --bs-alert-link-color: var(--bs-light-text-emphasis);\n}\n\n.alert-dark {\n --bs-alert-color: var(--bs-dark-text-emphasis);\n --bs-alert-bg: var(--bs-dark-bg-subtle);\n --bs-alert-border-color: var(--bs-dark-border-subtle);\n --bs-alert-link-color: var(--bs-dark-text-emphasis);\n}\n\n@keyframes progress-bar-stripes {\n 0% {\n background-position-x: 1rem;\n }\n}\n.progress,\n.progress-stacked {\n --bs-progress-height: 1rem;\n --bs-progress-font-size: 0.75rem;\n --bs-progress-bg: var(--bs-secondary-bg);\n --bs-progress-border-radius: var(--bs-border-radius);\n --bs-progress-box-shadow: var(--bs-box-shadow-inset);\n --bs-progress-bar-color: #fff;\n --bs-progress-bar-bg: #0d6efd;\n --bs-progress-bar-transition: width 0.6s ease;\n display: flex;\n height: var(--bs-progress-height);\n overflow: hidden;\n font-size: var(--bs-progress-font-size);\n background-color: var(--bs-progress-bg);\n border-radius: var(--bs-progress-border-radius);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: var(--bs-progress-bar-color);\n text-align: center;\n white-space: nowrap;\n background-color: var(--bs-progress-bar-bg);\n transition: var(--bs-progress-bar-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: var(--bs-progress-height) var(--bs-progress-height);\n}\n\n.progress-stacked > .progress {\n overflow: visible;\n}\n\n.progress-stacked > .progress > .progress-bar {\n width: 100%;\n}\n\n.progress-bar-animated {\n animation: 1s linear infinite progress-bar-stripes;\n}\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.list-group {\n --bs-list-group-color: var(--bs-body-color);\n --bs-list-group-bg: var(--bs-body-bg);\n --bs-list-group-border-color: var(--bs-border-color);\n --bs-list-group-border-width: var(--bs-border-width);\n --bs-list-group-border-radius: var(--bs-border-radius);\n --bs-list-group-item-padding-x: 1rem;\n --bs-list-group-item-padding-y: 0.5rem;\n --bs-list-group-action-color: var(--bs-secondary-color);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-tertiary-bg);\n --bs-list-group-action-active-color: var(--bs-body-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-bg);\n --bs-list-group-disabled-color: var(--bs-secondary-color);\n --bs-list-group-disabled-bg: var(--bs-body-bg);\n --bs-list-group-active-color: #fff;\n --bs-list-group-active-bg: #0d6efd;\n --bs-list-group-active-border-color: #0d6efd;\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n border-radius: var(--bs-list-group-border-radius);\n}\n\n.list-group-numbered {\n list-style-type: none;\n counter-reset: section;\n}\n.list-group-numbered > .list-group-item::before {\n content: counters(section, \".\") \". \";\n counter-increment: section;\n}\n\n.list-group-item-action {\n width: 100%;\n color: var(--bs-list-group-action-color);\n text-align: inherit;\n}\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: var(--bs-list-group-action-hover-color);\n text-decoration: none;\n background-color: var(--bs-list-group-action-hover-bg);\n}\n.list-group-item-action:active {\n color: var(--bs-list-group-action-active-color);\n background-color: var(--bs-list-group-action-active-bg);\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);\n color: var(--bs-list-group-color);\n text-decoration: none;\n background-color: var(--bs-list-group-bg);\n border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color);\n}\n.list-group-item:first-child {\n border-top-left-radius: inherit;\n border-top-right-radius: inherit;\n}\n.list-group-item:last-child {\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n}\n.list-group-item.disabled, .list-group-item:disabled {\n color: var(--bs-list-group-disabled-color);\n pointer-events: none;\n background-color: var(--bs-list-group-disabled-bg);\n}\n.list-group-item.active {\n z-index: 2;\n color: var(--bs-list-group-active-color);\n background-color: var(--bs-list-group-active-bg);\n border-color: var(--bs-list-group-active-border-color);\n}\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n.list-group-item + .list-group-item.active {\n margin-top: calc(-1 * var(--bs-list-group-border-width));\n border-top-width: var(--bs-list-group-border-width);\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n.list-group-horizontal > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n}\n.list-group-horizontal > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n}\n.list-group-horizontal > .list-group-item.active {\n margin-top: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n}\n.list-group-horizontal > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-sm > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-md > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-lg > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-xl > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n@media (min-width: 1400px) {\n .list-group-horizontal-xxl {\n flex-direction: row;\n }\n .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) {\n border-bottom-left-radius: var(--bs-list-group-border-radius);\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) {\n border-top-right-radius: var(--bs-list-group-border-radius);\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xxl > .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item {\n border-top-width: var(--bs-list-group-border-width);\n border-left-width: 0;\n }\n .list-group-horizontal-xxl > .list-group-item + .list-group-item.active {\n margin-left: calc(-1 * var(--bs-list-group-border-width));\n border-left-width: var(--bs-list-group-border-width);\n }\n}\n.list-group-flush {\n border-radius: 0;\n}\n.list-group-flush > .list-group-item {\n border-width: 0 0 var(--bs-list-group-border-width);\n}\n.list-group-flush > .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n --bs-list-group-color: var(--bs-primary-text-emphasis);\n --bs-list-group-bg: var(--bs-primary-bg-subtle);\n --bs-list-group-border-color: var(--bs-primary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-primary-border-subtle);\n --bs-list-group-active-color: var(--bs-primary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-primary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-primary-text-emphasis);\n}\n\n.list-group-item-secondary {\n --bs-list-group-color: var(--bs-secondary-text-emphasis);\n --bs-list-group-bg: var(--bs-secondary-bg-subtle);\n --bs-list-group-border-color: var(--bs-secondary-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);\n --bs-list-group-active-color: var(--bs-secondary-bg-subtle);\n --bs-list-group-active-bg: var(--bs-secondary-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis);\n}\n\n.list-group-item-success {\n --bs-list-group-color: var(--bs-success-text-emphasis);\n --bs-list-group-bg: var(--bs-success-bg-subtle);\n --bs-list-group-border-color: var(--bs-success-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-success-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-success-border-subtle);\n --bs-list-group-active-color: var(--bs-success-bg-subtle);\n --bs-list-group-active-bg: var(--bs-success-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-success-text-emphasis);\n}\n\n.list-group-item-info {\n --bs-list-group-color: var(--bs-info-text-emphasis);\n --bs-list-group-bg: var(--bs-info-bg-subtle);\n --bs-list-group-border-color: var(--bs-info-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-info-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-info-border-subtle);\n --bs-list-group-active-color: var(--bs-info-bg-subtle);\n --bs-list-group-active-bg: var(--bs-info-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-info-text-emphasis);\n}\n\n.list-group-item-warning {\n --bs-list-group-color: var(--bs-warning-text-emphasis);\n --bs-list-group-bg: var(--bs-warning-bg-subtle);\n --bs-list-group-border-color: var(--bs-warning-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-warning-border-subtle);\n --bs-list-group-active-color: var(--bs-warning-bg-subtle);\n --bs-list-group-active-bg: var(--bs-warning-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-warning-text-emphasis);\n}\n\n.list-group-item-danger {\n --bs-list-group-color: var(--bs-danger-text-emphasis);\n --bs-list-group-bg: var(--bs-danger-bg-subtle);\n --bs-list-group-border-color: var(--bs-danger-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-danger-border-subtle);\n --bs-list-group-active-color: var(--bs-danger-bg-subtle);\n --bs-list-group-active-bg: var(--bs-danger-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-danger-text-emphasis);\n}\n\n.list-group-item-light {\n --bs-list-group-color: var(--bs-light-text-emphasis);\n --bs-list-group-bg: var(--bs-light-bg-subtle);\n --bs-list-group-border-color: var(--bs-light-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-light-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-light-border-subtle);\n --bs-list-group-active-color: var(--bs-light-bg-subtle);\n --bs-list-group-active-bg: var(--bs-light-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-light-text-emphasis);\n}\n\n.list-group-item-dark {\n --bs-list-group-color: var(--bs-dark-text-emphasis);\n --bs-list-group-bg: var(--bs-dark-bg-subtle);\n --bs-list-group-border-color: var(--bs-dark-border-subtle);\n --bs-list-group-action-hover-color: var(--bs-emphasis-color);\n --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);\n --bs-list-group-action-active-color: var(--bs-emphasis-color);\n --bs-list-group-action-active-bg: var(--bs-dark-border-subtle);\n --bs-list-group-active-color: var(--bs-dark-bg-subtle);\n --bs-list-group-active-bg: var(--bs-dark-text-emphasis);\n --bs-list-group-active-border-color: var(--bs-dark-text-emphasis);\n}\n\n.btn-close {\n --bs-btn-close-color: #000;\n --bs-btn-close-bg: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e\");\n --bs-btn-close-opacity: 0.5;\n --bs-btn-close-hover-opacity: 0.75;\n --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);\n --bs-btn-close-focus-opacity: 1;\n --bs-btn-close-disabled-opacity: 0.25;\n --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);\n box-sizing: content-box;\n width: 1em;\n height: 1em;\n padding: 0.25em 0.25em;\n color: var(--bs-btn-close-color);\n background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat;\n border: 0;\n border-radius: 0.375rem;\n opacity: var(--bs-btn-close-opacity);\n}\n.btn-close:hover {\n color: var(--bs-btn-close-color);\n text-decoration: none;\n opacity: var(--bs-btn-close-hover-opacity);\n}\n.btn-close:focus {\n outline: 0;\n box-shadow: var(--bs-btn-close-focus-shadow);\n opacity: var(--bs-btn-close-focus-opacity);\n}\n.btn-close:disabled, .btn-close.disabled {\n pointer-events: none;\n user-select: none;\n opacity: var(--bs-btn-close-disabled-opacity);\n}\n\n.btn-close-white {\n filter: var(--bs-btn-close-white-filter);\n}\n\n[data-bs-theme=dark] .btn-close {\n filter: var(--bs-btn-close-white-filter);\n}\n\n.toast {\n --bs-toast-zindex: 1090;\n --bs-toast-padding-x: 0.75rem;\n --bs-toast-padding-y: 0.5rem;\n --bs-toast-spacing: 1.5rem;\n --bs-toast-max-width: 350px;\n --bs-toast-font-size: 0.875rem;\n --bs-toast-color: ;\n --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-border-width: var(--bs-border-width);\n --bs-toast-border-color: var(--bs-border-color-translucent);\n --bs-toast-border-radius: var(--bs-border-radius);\n --bs-toast-box-shadow: var(--bs-box-shadow);\n --bs-toast-header-color: var(--bs-secondary-color);\n --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85);\n --bs-toast-header-border-color: var(--bs-border-color-translucent);\n width: var(--bs-toast-max-width);\n max-width: 100%;\n font-size: var(--bs-toast-font-size);\n color: var(--bs-toast-color);\n pointer-events: auto;\n background-color: var(--bs-toast-bg);\n background-clip: padding-box;\n border: var(--bs-toast-border-width) solid var(--bs-toast-border-color);\n box-shadow: var(--bs-toast-box-shadow);\n border-radius: var(--bs-toast-border-radius);\n}\n.toast.showing {\n opacity: 0;\n}\n.toast:not(.show) {\n display: none;\n}\n\n.toast-container {\n --bs-toast-zindex: 1090;\n position: absolute;\n z-index: var(--bs-toast-zindex);\n width: max-content;\n max-width: 100%;\n pointer-events: none;\n}\n.toast-container > :not(:last-child) {\n margin-bottom: var(--bs-toast-spacing);\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x);\n color: var(--bs-toast-header-color);\n background-color: var(--bs-toast-header-bg);\n background-clip: padding-box;\n border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);\n border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));\n}\n.toast-header .btn-close {\n margin-right: calc(-0.5 * var(--bs-toast-padding-x));\n margin-left: var(--bs-toast-padding-x);\n}\n\n.toast-body {\n padding: var(--bs-toast-padding-x);\n word-wrap: break-word;\n}\n\n.modal {\n --bs-modal-zindex: 1055;\n --bs-modal-width: 500px;\n --bs-modal-padding: 1rem;\n --bs-modal-margin: 0.5rem;\n --bs-modal-color: ;\n --bs-modal-bg: var(--bs-body-bg);\n --bs-modal-border-color: var(--bs-border-color-translucent);\n --bs-modal-border-width: var(--bs-border-width);\n --bs-modal-border-radius: var(--bs-border-radius-lg);\n --bs-modal-box-shadow: var(--bs-box-shadow-sm);\n --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));\n --bs-modal-header-padding-x: 1rem;\n --bs-modal-header-padding-y: 1rem;\n --bs-modal-header-padding: 1rem 1rem;\n --bs-modal-header-border-color: var(--bs-border-color);\n --bs-modal-header-border-width: var(--bs-border-width);\n --bs-modal-title-line-height: 1.5;\n --bs-modal-footer-gap: 0.5rem;\n --bs-modal-footer-bg: ;\n --bs-modal-footer-border-color: var(--bs-border-color);\n --bs-modal-footer-border-width: var(--bs-border-width);\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-modal-zindex);\n display: none;\n width: 100%;\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: var(--bs-modal-margin);\n pointer-events: none;\n}\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n.modal.show .modal-dialog {\n transform: none;\n}\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n height: calc(100% - var(--bs-modal-margin) * 2);\n}\n.modal-dialog-scrollable .modal-content {\n max-height: 100%;\n overflow: hidden;\n}\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - var(--bs-modal-margin) * 2);\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n color: var(--bs-modal-color);\n pointer-events: auto;\n background-color: var(--bs-modal-bg);\n background-clip: padding-box;\n border: var(--bs-modal-border-width) solid var(--bs-modal-border-color);\n border-radius: var(--bs-modal-border-radius);\n outline: 0;\n}\n\n.modal-backdrop {\n --bs-backdrop-zindex: 1050;\n --bs-backdrop-bg: #000;\n --bs-backdrop-opacity: 0.5;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--bs-backdrop-zindex);\n width: 100vw;\n height: 100vh;\n background-color: var(--bs-backdrop-bg);\n}\n.modal-backdrop.fade {\n opacity: 0;\n}\n.modal-backdrop.show {\n opacity: var(--bs-backdrop-opacity);\n}\n\n.modal-header {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n padding: var(--bs-modal-header-padding);\n border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);\n border-top-left-radius: var(--bs-modal-inner-border-radius);\n border-top-right-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-header .btn-close {\n padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: var(--bs-modal-title-line-height);\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: var(--bs-modal-padding);\n}\n\n.modal-footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5);\n background-color: var(--bs-modal-footer-bg);\n border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);\n border-bottom-right-radius: var(--bs-modal-inner-border-radius);\n border-bottom-left-radius: var(--bs-modal-inner-border-radius);\n}\n.modal-footer > * {\n margin: calc(var(--bs-modal-footer-gap) * 0.5);\n}\n\n@media (min-width: 576px) {\n .modal {\n --bs-modal-margin: 1.75rem;\n --bs-modal-box-shadow: var(--bs-box-shadow);\n }\n .modal-dialog {\n max-width: var(--bs-modal-width);\n margin-right: auto;\n margin-left: auto;\n }\n .modal-sm {\n --bs-modal-width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n --bs-modal-width: 800px;\n }\n}\n@media (min-width: 1200px) {\n .modal-xl {\n --bs-modal-width: 1140px;\n }\n}\n.modal-fullscreen {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n}\n.modal-fullscreen .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n}\n.modal-fullscreen .modal-header,\n.modal-fullscreen .modal-footer {\n border-radius: 0;\n}\n.modal-fullscreen .modal-body {\n overflow-y: auto;\n}\n\n@media (max-width: 575.98px) {\n .modal-fullscreen-sm-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-sm-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-header,\n .modal-fullscreen-sm-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-sm-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 767.98px) {\n .modal-fullscreen-md-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-md-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-header,\n .modal-fullscreen-md-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-md-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 991.98px) {\n .modal-fullscreen-lg-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-lg-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-header,\n .modal-fullscreen-lg-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-lg-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 1199.98px) {\n .modal-fullscreen-xl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-header,\n .modal-fullscreen-xl-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-xl-down .modal-body {\n overflow-y: auto;\n }\n}\n@media (max-width: 1399.98px) {\n .modal-fullscreen-xxl-down {\n width: 100vw;\n max-width: none;\n height: 100%;\n margin: 0;\n }\n .modal-fullscreen-xxl-down .modal-content {\n height: 100%;\n border: 0;\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-header,\n .modal-fullscreen-xxl-down .modal-footer {\n border-radius: 0;\n }\n .modal-fullscreen-xxl-down .modal-body {\n overflow-y: auto;\n }\n}\n.tooltip {\n --bs-tooltip-zindex: 1080;\n --bs-tooltip-max-width: 200px;\n --bs-tooltip-padding-x: 0.5rem;\n --bs-tooltip-padding-y: 0.25rem;\n --bs-tooltip-margin: ;\n --bs-tooltip-font-size: 0.875rem;\n --bs-tooltip-color: var(--bs-body-bg);\n --bs-tooltip-bg: var(--bs-emphasis-color);\n --bs-tooltip-border-radius: var(--bs-border-radius);\n --bs-tooltip-opacity: 0.9;\n --bs-tooltip-arrow-width: 0.8rem;\n --bs-tooltip-arrow-height: 0.4rem;\n z-index: var(--bs-tooltip-zindex);\n display: block;\n margin: var(--bs-tooltip-margin);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-tooltip-font-size);\n word-wrap: break-word;\n opacity: 0;\n}\n.tooltip.show {\n opacity: var(--bs-tooltip-opacity);\n}\n.tooltip .tooltip-arrow {\n display: block;\n width: var(--bs-tooltip-arrow-width);\n height: var(--bs-tooltip-arrow-height);\n}\n.tooltip .tooltip-arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow {\n bottom: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before {\n top: -1px;\n border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-top-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow {\n left: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before {\n right: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0;\n border-right-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow {\n top: calc(-1 * var(--bs-tooltip-arrow-height));\n}\n.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before {\n bottom: -1px;\n border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-bottom-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow {\n right: calc(-1 * var(--bs-tooltip-arrow-height));\n width: var(--bs-tooltip-arrow-height);\n height: var(--bs-tooltip-arrow-width);\n}\n.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before {\n left: -1px;\n border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height);\n border-left-color: var(--bs-tooltip-bg);\n}\n\n/* rtl:end:ignore */\n.tooltip-inner {\n max-width: var(--bs-tooltip-max-width);\n padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);\n color: var(--bs-tooltip-color);\n text-align: center;\n background-color: var(--bs-tooltip-bg);\n border-radius: var(--bs-tooltip-border-radius);\n}\n\n.popover {\n --bs-popover-zindex: 1070;\n --bs-popover-max-width: 276px;\n --bs-popover-font-size: 0.875rem;\n --bs-popover-bg: var(--bs-body-bg);\n --bs-popover-border-width: var(--bs-border-width);\n --bs-popover-border-color: var(--bs-border-color-translucent);\n --bs-popover-border-radius: var(--bs-border-radius-lg);\n --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));\n --bs-popover-box-shadow: var(--bs-box-shadow);\n --bs-popover-header-padding-x: 1rem;\n --bs-popover-header-padding-y: 0.5rem;\n --bs-popover-header-font-size: 1rem;\n --bs-popover-header-color: inherit;\n --bs-popover-header-bg: var(--bs-secondary-bg);\n --bs-popover-body-padding-x: 1rem;\n --bs-popover-body-padding-y: 1rem;\n --bs-popover-body-color: var(--bs-body-color);\n --bs-popover-arrow-width: 1rem;\n --bs-popover-arrow-height: 0.5rem;\n --bs-popover-arrow-border: var(--bs-popover-border-color);\n z-index: var(--bs-popover-zindex);\n display: block;\n max-width: var(--bs-popover-max-width);\n font-family: var(--bs-font-sans-serif);\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n white-space: normal;\n word-spacing: normal;\n line-break: auto;\n font-size: var(--bs-popover-font-size);\n word-wrap: break-word;\n background-color: var(--bs-popover-bg);\n background-clip: padding-box;\n border: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-radius: var(--bs-popover-border-radius);\n}\n.popover .popover-arrow {\n display: block;\n width: var(--bs-popover-arrow-width);\n height: var(--bs-popover-arrow-height);\n}\n.popover .popover-arrow::before, .popover .popover-arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n border-width: 0;\n}\n\n.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow {\n bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before {\n bottom: 0;\n border-top-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after {\n bottom: var(--bs-popover-border-width);\n border-top-color: var(--bs-popover-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow {\n left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0;\n}\n.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before {\n left: 0;\n border-right-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after {\n left: var(--bs-popover-border-width);\n border-right-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow {\n top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before {\n top: 0;\n border-bottom-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after {\n top: var(--bs-popover-border-width);\n border-bottom-color: var(--bs-popover-bg);\n}\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: var(--bs-popover-arrow-width);\n margin-left: calc(-0.5 * var(--bs-popover-arrow-width));\n content: \"\";\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg);\n}\n\n/* rtl:begin:ignore */\n.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow {\n right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));\n width: var(--bs-popover-arrow-height);\n height: var(--bs-popover-arrow-width);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height);\n}\n.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before {\n right: 0;\n border-left-color: var(--bs-popover-arrow-border);\n}\n.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after {\n right: var(--bs-popover-border-width);\n border-left-color: var(--bs-popover-bg);\n}\n\n/* rtl:end:ignore */\n.popover-header {\n padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);\n margin-bottom: 0;\n font-size: var(--bs-popover-header-font-size);\n color: var(--bs-popover-header-color);\n background-color: var(--bs-popover-header-bg);\n border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color);\n border-top-left-radius: var(--bs-popover-inner-border-radius);\n border-top-right-radius: var(--bs-popover-inner-border-radius);\n}\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);\n color: var(--bs-popover-body-color);\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-start),\n.active.carousel-item-end {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-end),\n.active.carousel-item-start {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-start,\n.carousel-fade .carousel-item-prev.carousel-item-end {\n z-index: 1;\n opacity: 1;\n}\n.carousel-fade .active.carousel-item-start,\n.carousel-fade .active.carousel-item-end {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-start,\n .carousel-fade .active.carousel-item-end {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n padding: 0;\n color: #fff;\n text-align: center;\n background: none;\n border: 0;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n background-repeat: no-repeat;\n background-position: 50%;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\") /*rtl:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")*/;\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\") /*rtl:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")*/;\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n display: flex;\n justify-content: center;\n padding: 0;\n margin-right: 15%;\n margin-bottom: 1rem;\n margin-left: 15%;\n}\n.carousel-indicators [data-bs-target] {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n padding: 0;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border: 0;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: 0.5;\n transition: opacity 0.6s ease;\n}\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators [data-bs-target] {\n transition: none;\n }\n}\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 1.25rem;\n left: 15%;\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n color: #fff;\n text-align: center;\n}\n\n.carousel-dark .carousel-control-prev-icon,\n.carousel-dark .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n.carousel-dark .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n.carousel-dark .carousel-caption {\n color: #000;\n}\n\n[data-bs-theme=dark] .carousel .carousel-control-prev-icon,\n[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon,\n[data-bs-theme=dark].carousel .carousel-control-next-icon {\n filter: invert(1) grayscale(100);\n}\n[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] {\n background-color: #000;\n}\n[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption {\n color: #000;\n}\n\n.spinner-grow,\n.spinner-border {\n display: inline-block;\n width: var(--bs-spinner-width);\n height: var(--bs-spinner-height);\n vertical-align: var(--bs-spinner-vertical-align);\n border-radius: 50%;\n animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name);\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg) /* rtl:ignore */;\n }\n}\n.spinner-border {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-border-width: 0.25em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-border;\n border: var(--bs-spinner-border-width) solid currentcolor;\n border-right-color: transparent;\n}\n\n.spinner-border-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n --bs-spinner-border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n transform: none;\n }\n}\n.spinner-grow {\n --bs-spinner-width: 2rem;\n --bs-spinner-height: 2rem;\n --bs-spinner-vertical-align: -0.125em;\n --bs-spinner-animation-speed: 0.75s;\n --bs-spinner-animation-name: spinner-grow;\n background-color: currentcolor;\n opacity: 0;\n}\n\n.spinner-grow-sm {\n --bs-spinner-width: 1rem;\n --bs-spinner-height: 1rem;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .spinner-border,\n .spinner-grow {\n --bs-spinner-animation-speed: 1.5s;\n }\n}\n.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {\n --bs-offcanvas-zindex: 1045;\n --bs-offcanvas-width: 400px;\n --bs-offcanvas-height: 30vh;\n --bs-offcanvas-padding-x: 1rem;\n --bs-offcanvas-padding-y: 1rem;\n --bs-offcanvas-color: var(--bs-body-color);\n --bs-offcanvas-bg: var(--bs-body-bg);\n --bs-offcanvas-border-width: var(--bs-border-width);\n --bs-offcanvas-border-color: var(--bs-border-color-translucent);\n --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);\n --bs-offcanvas-transition: transform 0.3s ease-in-out;\n --bs-offcanvas-title-line-height: 1.5;\n}\n\n@media (max-width: 575.98px) {\n .offcanvas-sm {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-sm {\n transition: none;\n }\n}\n@media (max-width: 575.98px) {\n .offcanvas-sm.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-sm.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-sm.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-sm.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show {\n visibility: visible;\n }\n}\n@media (min-width: 576px) {\n .offcanvas-sm {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-sm .offcanvas-header {\n display: none;\n }\n .offcanvas-sm .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 767.98px) {\n .offcanvas-md {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-md {\n transition: none;\n }\n}\n@media (max-width: 767.98px) {\n .offcanvas-md.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-md.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-md.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-md.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show {\n visibility: visible;\n }\n}\n@media (min-width: 768px) {\n .offcanvas-md {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-md .offcanvas-header {\n display: none;\n }\n .offcanvas-md .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 991.98px) {\n .offcanvas-lg {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-lg {\n transition: none;\n }\n}\n@media (max-width: 991.98px) {\n .offcanvas-lg.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-lg.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-lg.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-lg.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show {\n visibility: visible;\n }\n}\n@media (min-width: 992px) {\n .offcanvas-lg {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-lg .offcanvas-header {\n display: none;\n }\n .offcanvas-lg .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 1199.98px) {\n .offcanvas-xl {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-xl {\n transition: none;\n }\n}\n@media (max-width: 1199.98px) {\n .offcanvas-xl.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-xl.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-xl.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-xl.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show {\n visibility: visible;\n }\n}\n@media (min-width: 1200px) {\n .offcanvas-xl {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-xl .offcanvas-header {\n display: none;\n }\n .offcanvas-xl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n@media (max-width: 1399.98px) {\n .offcanvas-xxl {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n }\n}\n@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) {\n .offcanvas-xxl {\n transition: none;\n }\n}\n@media (max-width: 1399.98px) {\n .offcanvas-xxl.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n }\n .offcanvas-xxl.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n }\n .offcanvas-xxl.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n }\n .offcanvas-xxl.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n }\n .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) {\n transform: none;\n }\n .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show {\n visibility: visible;\n }\n}\n@media (min-width: 1400px) {\n .offcanvas-xxl {\n --bs-offcanvas-height: auto;\n --bs-offcanvas-border-width: 0;\n background-color: transparent !important;\n }\n .offcanvas-xxl .offcanvas-header {\n display: none;\n }\n .offcanvas-xxl .offcanvas-body {\n display: flex;\n flex-grow: 0;\n padding: 0;\n overflow-y: visible;\n background-color: transparent !important;\n }\n}\n\n.offcanvas {\n position: fixed;\n bottom: 0;\n z-index: var(--bs-offcanvas-zindex);\n display: flex;\n flex-direction: column;\n max-width: 100%;\n color: var(--bs-offcanvas-color);\n visibility: hidden;\n background-color: var(--bs-offcanvas-bg);\n background-clip: padding-box;\n outline: 0;\n transition: var(--bs-offcanvas-transition);\n}\n@media (prefers-reduced-motion: reduce) {\n .offcanvas {\n transition: none;\n }\n}\n.offcanvas.offcanvas-start {\n top: 0;\n left: 0;\n width: var(--bs-offcanvas-width);\n border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(-100%);\n}\n.offcanvas.offcanvas-end {\n top: 0;\n right: 0;\n width: var(--bs-offcanvas-width);\n border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateX(100%);\n}\n.offcanvas.offcanvas-top {\n top: 0;\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(-100%);\n}\n.offcanvas.offcanvas-bottom {\n right: 0;\n left: 0;\n height: var(--bs-offcanvas-height);\n max-height: 100%;\n border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);\n transform: translateY(100%);\n}\n.offcanvas.showing, .offcanvas.show:not(.hiding) {\n transform: none;\n}\n.offcanvas.showing, .offcanvas.hiding, .offcanvas.show {\n visibility: visible;\n}\n\n.offcanvas-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n.offcanvas-backdrop.fade {\n opacity: 0;\n}\n.offcanvas-backdrop.show {\n opacity: 0.5;\n}\n\n.offcanvas-header {\n display: flex;\n align-items: center;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n}\n.offcanvas-header .btn-close {\n padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5);\n margin: calc(-0.5 * var(--bs-offcanvas-padding-y)) calc(-0.5 * var(--bs-offcanvas-padding-x)) calc(-0.5 * var(--bs-offcanvas-padding-y)) auto;\n}\n\n.offcanvas-title {\n margin-bottom: 0;\n line-height: var(--bs-offcanvas-title-line-height);\n}\n\n.offcanvas-body {\n flex-grow: 1;\n padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);\n overflow-y: auto;\n}\n\n.placeholder {\n display: inline-block;\n min-height: 1em;\n vertical-align: middle;\n cursor: wait;\n background-color: currentcolor;\n opacity: 0.5;\n}\n.placeholder.btn::before {\n display: inline-block;\n content: \"\";\n}\n\n.placeholder-xs {\n min-height: 0.6em;\n}\n\n.placeholder-sm {\n min-height: 0.8em;\n}\n\n.placeholder-lg {\n min-height: 1.2em;\n}\n\n.placeholder-glow .placeholder {\n animation: placeholder-glow 2s ease-in-out infinite;\n}\n\n@keyframes placeholder-glow {\n 50% {\n opacity: 0.2;\n }\n}\n.placeholder-wave {\n mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);\n mask-size: 200% 100%;\n animation: placeholder-wave 2s linear infinite;\n}\n\n@keyframes placeholder-wave {\n 100% {\n mask-position: -200% 0%;\n }\n}\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.text-bg-primary {\n color: #fff !important;\n background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-secondary {\n color: #fff !important;\n background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-success {\n color: #fff !important;\n background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-info {\n color: #000 !important;\n background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-warning {\n color: #000 !important;\n background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-danger {\n color: #fff !important;\n background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-light {\n color: #000 !important;\n background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.text-bg-dark {\n color: #fff !important;\n background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important;\n}\n\n.link-primary {\n color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-primary:hover, .link-primary:focus {\n color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-secondary {\n color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-secondary:hover, .link-secondary:focus {\n color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-success {\n color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-success:hover, .link-success:focus {\n color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-info {\n color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-info:hover, .link-info:focus {\n color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-warning {\n color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-warning:hover, .link-warning:focus {\n color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-danger {\n color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-danger:hover, .link-danger:focus {\n color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-light {\n color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-light:hover, .link-light:focus {\n color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-dark {\n color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-dark:hover, .link-dark:focus {\n color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-body-emphasis {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n.link-body-emphasis:hover, .link-body-emphasis:focus {\n color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important;\n text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important;\n}\n\n.focus-ring:focus {\n outline: 0;\n box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color);\n}\n\n.icon-link {\n display: inline-flex;\n gap: 0.375rem;\n align-items: center;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5));\n text-underline-offset: 0.25em;\n backface-visibility: hidden;\n}\n.icon-link > .bi {\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n fill: currentcolor;\n transition: 0.2s ease-in-out transform;\n}\n@media (prefers-reduced-motion: reduce) {\n .icon-link > .bi {\n transition: none;\n }\n}\n\n.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi {\n transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0));\n}\n\n.ratio {\n position: relative;\n width: 100%;\n}\n.ratio::before {\n display: block;\n padding-top: var(--bs-aspect-ratio);\n content: \"\";\n}\n.ratio > * {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.ratio-1x1 {\n --bs-aspect-ratio: 100%;\n}\n\n.ratio-4x3 {\n --bs-aspect-ratio: 75%;\n}\n\n.ratio-16x9 {\n --bs-aspect-ratio: 56.25%;\n}\n\n.ratio-21x9 {\n --bs-aspect-ratio: 42.8571428571%;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n.sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n}\n\n.sticky-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n}\n\n@media (min-width: 576px) {\n .sticky-sm-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-sm-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 768px) {\n .sticky-md-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-md-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 992px) {\n .sticky-lg-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-lg-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1200px) {\n .sticky-xl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-xl-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n@media (min-width: 1400px) {\n .sticky-xxl-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n .sticky-xxl-bottom {\n position: sticky;\n bottom: 0;\n z-index: 1020;\n }\n}\n.hstack {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n}\n\n.vstack {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n align-self: stretch;\n}\n\n.visually-hidden,\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n margin: -1px !important;\n overflow: hidden !important;\n clip: rect(0, 0, 0, 0) !important;\n white-space: nowrap !important;\n border: 0 !important;\n}\n.visually-hidden:not(caption),\n.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) {\n position: absolute !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n content: \"\";\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.vr {\n display: inline-block;\n align-self: stretch;\n width: var(--bs-border-width);\n min-height: 1em;\n background-color: currentcolor;\n opacity: 0.25;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.float-start {\n float: left !important;\n}\n\n.float-end {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n.object-fit-contain {\n object-fit: contain !important;\n}\n\n.object-fit-cover {\n object-fit: cover !important;\n}\n\n.object-fit-fill {\n object-fit: fill !important;\n}\n\n.object-fit-scale {\n object-fit: scale-down !important;\n}\n\n.object-fit-none {\n object-fit: none !important;\n}\n\n.opacity-0 {\n opacity: 0 !important;\n}\n\n.opacity-25 {\n opacity: 0.25 !important;\n}\n\n.opacity-50 {\n opacity: 0.5 !important;\n}\n\n.opacity-75 {\n opacity: 0.75 !important;\n}\n\n.opacity-100 {\n opacity: 1 !important;\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.overflow-visible {\n overflow: visible !important;\n}\n\n.overflow-scroll {\n overflow: scroll !important;\n}\n\n.overflow-x-auto {\n overflow-x: auto !important;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden !important;\n}\n\n.overflow-x-visible {\n overflow-x: visible !important;\n}\n\n.overflow-x-scroll {\n overflow-x: scroll !important;\n}\n\n.overflow-y-auto {\n overflow-y: auto !important;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden !important;\n}\n\n.overflow-y-visible {\n overflow-y: visible !important;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-grid {\n display: grid !important;\n}\n\n.d-inline-grid {\n display: inline-grid !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n.d-none {\n display: none !important;\n}\n\n.shadow {\n box-shadow: var(--bs-box-shadow) !important;\n}\n\n.shadow-sm {\n box-shadow: var(--bs-box-shadow-sm) !important;\n}\n\n.shadow-lg {\n box-shadow: var(--bs-box-shadow-lg) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.focus-ring-primary {\n --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-secondary {\n --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-success {\n --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-info {\n --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-warning {\n --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-danger {\n --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-light {\n --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity));\n}\n\n.focus-ring-dark {\n --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity));\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.top-0 {\n top: 0 !important;\n}\n\n.top-50 {\n top: 50% !important;\n}\n\n.top-100 {\n top: 100% !important;\n}\n\n.bottom-0 {\n bottom: 0 !important;\n}\n\n.bottom-50 {\n bottom: 50% !important;\n}\n\n.bottom-100 {\n bottom: 100% !important;\n}\n\n.start-0 {\n left: 0 !important;\n}\n\n.start-50 {\n left: 50% !important;\n}\n\n.start-100 {\n left: 100% !important;\n}\n\n.end-0 {\n right: 0 !important;\n}\n\n.end-50 {\n right: 50% !important;\n}\n\n.end-100 {\n right: 100% !important;\n}\n\n.translate-middle {\n transform: translate(-50%, -50%) !important;\n}\n\n.translate-middle-x {\n transform: translateX(-50%) !important;\n}\n\n.translate-middle-y {\n transform: translateY(-50%) !important;\n}\n\n.border {\n border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top {\n border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-end {\n border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-end-0 {\n border-right: 0 !important;\n}\n\n.border-bottom {\n border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-start {\n border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important;\n}\n\n.border-start-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-secondary {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-success {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-info {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-warning {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-danger {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-light {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-dark {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-black {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-white {\n --bs-border-opacity: 1;\n border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important;\n}\n\n.border-primary-subtle {\n border-color: var(--bs-primary-border-subtle) !important;\n}\n\n.border-secondary-subtle {\n border-color: var(--bs-secondary-border-subtle) !important;\n}\n\n.border-success-subtle {\n border-color: var(--bs-success-border-subtle) !important;\n}\n\n.border-info-subtle {\n border-color: var(--bs-info-border-subtle) !important;\n}\n\n.border-warning-subtle {\n border-color: var(--bs-warning-border-subtle) !important;\n}\n\n.border-danger-subtle {\n border-color: var(--bs-danger-border-subtle) !important;\n}\n\n.border-light-subtle {\n border-color: var(--bs-light-border-subtle) !important;\n}\n\n.border-dark-subtle {\n border-color: var(--bs-dark-border-subtle) !important;\n}\n\n.border-1 {\n border-width: 1px !important;\n}\n\n.border-2 {\n border-width: 2px !important;\n}\n\n.border-3 {\n border-width: 3px !important;\n}\n\n.border-4 {\n border-width: 4px !important;\n}\n\n.border-5 {\n border-width: 5px !important;\n}\n\n.border-opacity-10 {\n --bs-border-opacity: 0.1;\n}\n\n.border-opacity-25 {\n --bs-border-opacity: 0.25;\n}\n\n.border-opacity-50 {\n --bs-border-opacity: 0.5;\n}\n\n.border-opacity-75 {\n --bs-border-opacity: 0.75;\n}\n\n.border-opacity-100 {\n --bs-border-opacity: 1;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.justify-content-evenly {\n justify-content: space-evenly !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n.order-first {\n order: -1 !important;\n}\n\n.order-0 {\n order: 0 !important;\n}\n\n.order-1 {\n order: 1 !important;\n}\n\n.order-2 {\n order: 2 !important;\n}\n\n.order-3 {\n order: 3 !important;\n}\n\n.order-4 {\n order: 4 !important;\n}\n\n.order-5 {\n order: 5 !important;\n}\n\n.order-last {\n order: 6 !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mx-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.mx-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n}\n\n.mx-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n}\n\n.mx-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n}\n\n.mx-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n}\n\n.mx-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n}\n\n.mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n.my-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n}\n\n.my-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n}\n\n.my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n\n.my-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n}\n\n.my-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n}\n\n.my-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n}\n\n.my-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n}\n\n.mt-0 {\n margin-top: 0 !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.mt-auto {\n margin-top: auto !important;\n}\n\n.me-0 {\n margin-right: 0 !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.me-auto {\n margin-right: auto !important;\n}\n\n.mb-0 {\n margin-bottom: 0 !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.mb-auto {\n margin-bottom: auto !important;\n}\n\n.ms-0 {\n margin-left: 0 !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ms-auto {\n margin-left: auto !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.px-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.px-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n}\n\n.px-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n}\n\n.px-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n}\n\n.px-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n}\n\n.px-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n}\n\n.py-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n}\n\n.py-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n}\n\n.py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.py-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n}\n\n.py-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n}\n\n.py-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n}\n\n.pt-0 {\n padding-top: 0 !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.pe-0 {\n padding-right: 0 !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0 !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ps-0 {\n padding-left: 0 !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.gap-0 {\n gap: 0 !important;\n}\n\n.gap-1 {\n gap: 0.25rem !important;\n}\n\n.gap-2 {\n gap: 0.5rem !important;\n}\n\n.gap-3 {\n gap: 1rem !important;\n}\n\n.gap-4 {\n gap: 1.5rem !important;\n}\n\n.gap-5 {\n gap: 3rem !important;\n}\n\n.row-gap-0 {\n row-gap: 0 !important;\n}\n\n.row-gap-1 {\n row-gap: 0.25rem !important;\n}\n\n.row-gap-2 {\n row-gap: 0.5rem !important;\n}\n\n.row-gap-3 {\n row-gap: 1rem !important;\n}\n\n.row-gap-4 {\n row-gap: 1.5rem !important;\n}\n\n.row-gap-5 {\n row-gap: 3rem !important;\n}\n\n.column-gap-0 {\n column-gap: 0 !important;\n}\n\n.column-gap-1 {\n column-gap: 0.25rem !important;\n}\n\n.column-gap-2 {\n column-gap: 0.5rem !important;\n}\n\n.column-gap-3 {\n column-gap: 1rem !important;\n}\n\n.column-gap-4 {\n column-gap: 1.5rem !important;\n}\n\n.column-gap-5 {\n column-gap: 3rem !important;\n}\n\n.font-monospace {\n font-family: var(--bs-font-monospace) !important;\n}\n\n.fs-1 {\n font-size: calc(1.375rem + 1.5vw) !important;\n}\n\n.fs-2 {\n font-size: calc(1.325rem + 0.9vw) !important;\n}\n\n.fs-3 {\n font-size: calc(1.3rem + 0.6vw) !important;\n}\n\n.fs-4 {\n font-size: calc(1.275rem + 0.3vw) !important;\n}\n\n.fs-5 {\n font-size: 1.25rem !important;\n}\n\n.fs-6 {\n font-size: 1rem !important;\n}\n\n.fst-italic {\n font-style: italic !important;\n}\n\n.fst-normal {\n font-style: normal !important;\n}\n\n.fw-lighter {\n font-weight: lighter !important;\n}\n\n.fw-light {\n font-weight: 300 !important;\n}\n\n.fw-normal {\n font-weight: 400 !important;\n}\n\n.fw-medium {\n font-weight: 500 !important;\n}\n\n.fw-semibold {\n font-weight: 600 !important;\n}\n\n.fw-bold {\n font-weight: 700 !important;\n}\n\n.fw-bolder {\n font-weight: bolder !important;\n}\n\n.lh-1 {\n line-height: 1 !important;\n}\n\n.lh-sm {\n line-height: 1.25 !important;\n}\n\n.lh-base {\n line-height: 1.5 !important;\n}\n\n.lh-lg {\n line-height: 2 !important;\n}\n\n.text-start {\n text-align: left !important;\n}\n\n.text-end {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-decoration-underline {\n text-decoration: underline !important;\n}\n\n.text-decoration-line-through {\n text-decoration: line-through !important;\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n/* rtl:begin:remove */\n.text-break {\n word-wrap: break-word !important;\n word-break: break-word !important;\n}\n\n/* rtl:end:remove */\n.text-primary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-secondary {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-success {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-info {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-warning {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-danger {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-light {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-dark {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-black {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-white {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-body {\n --bs-text-opacity: 1;\n color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important;\n}\n\n.text-muted {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-black-50 {\n --bs-text-opacity: 1;\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n --bs-text-opacity: 1;\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-body-secondary {\n --bs-text-opacity: 1;\n color: var(--bs-secondary-color) !important;\n}\n\n.text-body-tertiary {\n --bs-text-opacity: 1;\n color: var(--bs-tertiary-color) !important;\n}\n\n.text-body-emphasis {\n --bs-text-opacity: 1;\n color: var(--bs-emphasis-color) !important;\n}\n\n.text-reset {\n --bs-text-opacity: 1;\n color: inherit !important;\n}\n\n.text-opacity-25 {\n --bs-text-opacity: 0.25;\n}\n\n.text-opacity-50 {\n --bs-text-opacity: 0.5;\n}\n\n.text-opacity-75 {\n --bs-text-opacity: 0.75;\n}\n\n.text-opacity-100 {\n --bs-text-opacity: 1;\n}\n\n.text-primary-emphasis {\n color: var(--bs-primary-text-emphasis) !important;\n}\n\n.text-secondary-emphasis {\n color: var(--bs-secondary-text-emphasis) !important;\n}\n\n.text-success-emphasis {\n color: var(--bs-success-text-emphasis) !important;\n}\n\n.text-info-emphasis {\n color: var(--bs-info-text-emphasis) !important;\n}\n\n.text-warning-emphasis {\n color: var(--bs-warning-text-emphasis) !important;\n}\n\n.text-danger-emphasis {\n color: var(--bs-danger-text-emphasis) !important;\n}\n\n.text-light-emphasis {\n color: var(--bs-light-text-emphasis) !important;\n}\n\n.text-dark-emphasis {\n color: var(--bs-dark-text-emphasis) !important;\n}\n\n.link-opacity-10 {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-10-hover:hover {\n --bs-link-opacity: 0.1;\n}\n\n.link-opacity-25 {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-25-hover:hover {\n --bs-link-opacity: 0.25;\n}\n\n.link-opacity-50 {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-50-hover:hover {\n --bs-link-opacity: 0.5;\n}\n\n.link-opacity-75 {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-75-hover:hover {\n --bs-link-opacity: 0.75;\n}\n\n.link-opacity-100 {\n --bs-link-opacity: 1;\n}\n\n.link-opacity-100-hover:hover {\n --bs-link-opacity: 1;\n}\n\n.link-offset-1 {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-1-hover:hover {\n text-underline-offset: 0.125em !important;\n}\n\n.link-offset-2 {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-2-hover:hover {\n text-underline-offset: 0.25em !important;\n}\n\n.link-offset-3 {\n text-underline-offset: 0.375em !important;\n}\n\n.link-offset-3-hover:hover {\n text-underline-offset: 0.375em !important;\n}\n\n.link-underline-primary {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-secondary {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-success {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-info {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-warning {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-danger {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-light {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline-dark {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important;\n}\n\n.link-underline {\n --bs-link-underline-opacity: 1;\n text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important;\n}\n\n.link-underline-opacity-0 {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-0-hover:hover {\n --bs-link-underline-opacity: 0;\n}\n\n.link-underline-opacity-10 {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-10-hover:hover {\n --bs-link-underline-opacity: 0.1;\n}\n\n.link-underline-opacity-25 {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-25-hover:hover {\n --bs-link-underline-opacity: 0.25;\n}\n\n.link-underline-opacity-50 {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-50-hover:hover {\n --bs-link-underline-opacity: 0.5;\n}\n\n.link-underline-opacity-75 {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-75-hover:hover {\n --bs-link-underline-opacity: 0.75;\n}\n\n.link-underline-opacity-100 {\n --bs-link-underline-opacity: 1;\n}\n\n.link-underline-opacity-100-hover:hover {\n --bs-link-underline-opacity: 1;\n}\n\n.bg-primary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-success {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-info {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-warning {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-danger {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-light {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-dark {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-black {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-white {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-transparent {\n --bs-bg-opacity: 1;\n background-color: transparent !important;\n}\n\n.bg-body-secondary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-body-tertiary {\n --bs-bg-opacity: 1;\n background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;\n}\n\n.bg-opacity-10 {\n --bs-bg-opacity: 0.1;\n}\n\n.bg-opacity-25 {\n --bs-bg-opacity: 0.25;\n}\n\n.bg-opacity-50 {\n --bs-bg-opacity: 0.5;\n}\n\n.bg-opacity-75 {\n --bs-bg-opacity: 0.75;\n}\n\n.bg-opacity-100 {\n --bs-bg-opacity: 1;\n}\n\n.bg-primary-subtle {\n background-color: var(--bs-primary-bg-subtle) !important;\n}\n\n.bg-secondary-subtle {\n background-color: var(--bs-secondary-bg-subtle) !important;\n}\n\n.bg-success-subtle {\n background-color: var(--bs-success-bg-subtle) !important;\n}\n\n.bg-info-subtle {\n background-color: var(--bs-info-bg-subtle) !important;\n}\n\n.bg-warning-subtle {\n background-color: var(--bs-warning-bg-subtle) !important;\n}\n\n.bg-danger-subtle {\n background-color: var(--bs-danger-bg-subtle) !important;\n}\n\n.bg-light-subtle {\n background-color: var(--bs-light-bg-subtle) !important;\n}\n\n.bg-dark-subtle {\n background-color: var(--bs-dark-bg-subtle) !important;\n}\n\n.bg-gradient {\n background-image: var(--bs-gradient) !important;\n}\n\n.user-select-all {\n user-select: all !important;\n}\n\n.user-select-auto {\n user-select: auto !important;\n}\n\n.user-select-none {\n user-select: none !important;\n}\n\n.pe-none {\n pointer-events: none !important;\n}\n\n.pe-auto {\n pointer-events: auto !important;\n}\n\n.rounded {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.rounded-1 {\n border-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-2 {\n border-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-3 {\n border-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-4 {\n border-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-5 {\n border-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-top {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-0 {\n border-top-left-radius: 0 !important;\n border-top-right-radius: 0 !important;\n}\n\n.rounded-top-1 {\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-top-2 {\n border-top-left-radius: var(--bs-border-radius) !important;\n border-top-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-top-3 {\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-top-4 {\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-top-5 {\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-top-circle {\n border-top-left-radius: 50% !important;\n border-top-right-radius: 50% !important;\n}\n\n.rounded-top-pill {\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-end {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-0 {\n border-top-right-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n}\n\n.rounded-end-1 {\n border-top-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-end-2 {\n border-top-right-radius: var(--bs-border-radius) !important;\n border-bottom-right-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-end-3 {\n border-top-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-end-4 {\n border-top-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-end-5 {\n border-top-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-end-circle {\n border-top-right-radius: 50% !important;\n border-bottom-right-radius: 50% !important;\n}\n\n.rounded-end-pill {\n border-top-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-0 {\n border-bottom-right-radius: 0 !important;\n border-bottom-left-radius: 0 !important;\n}\n\n.rounded-bottom-1 {\n border-bottom-right-radius: var(--bs-border-radius-sm) !important;\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-bottom-2 {\n border-bottom-right-radius: var(--bs-border-radius) !important;\n border-bottom-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-bottom-3 {\n border-bottom-right-radius: var(--bs-border-radius-lg) !important;\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-bottom-4 {\n border-bottom-right-radius: var(--bs-border-radius-xl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-bottom-5 {\n border-bottom-right-radius: var(--bs-border-radius-xxl) !important;\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-bottom-circle {\n border-bottom-right-radius: 50% !important;\n border-bottom-left-radius: 50% !important;\n}\n\n.rounded-bottom-pill {\n border-bottom-right-radius: var(--bs-border-radius-pill) !important;\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.rounded-start {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-0 {\n border-bottom-left-radius: 0 !important;\n border-top-left-radius: 0 !important;\n}\n\n.rounded-start-1 {\n border-bottom-left-radius: var(--bs-border-radius-sm) !important;\n border-top-left-radius: var(--bs-border-radius-sm) !important;\n}\n\n.rounded-start-2 {\n border-bottom-left-radius: var(--bs-border-radius) !important;\n border-top-left-radius: var(--bs-border-radius) !important;\n}\n\n.rounded-start-3 {\n border-bottom-left-radius: var(--bs-border-radius-lg) !important;\n border-top-left-radius: var(--bs-border-radius-lg) !important;\n}\n\n.rounded-start-4 {\n border-bottom-left-radius: var(--bs-border-radius-xl) !important;\n border-top-left-radius: var(--bs-border-radius-xl) !important;\n}\n\n.rounded-start-5 {\n border-bottom-left-radius: var(--bs-border-radius-xxl) !important;\n border-top-left-radius: var(--bs-border-radius-xxl) !important;\n}\n\n.rounded-start-circle {\n border-bottom-left-radius: 50% !important;\n border-top-left-radius: 50% !important;\n}\n\n.rounded-start-pill {\n border-bottom-left-radius: var(--bs-border-radius-pill) !important;\n border-top-left-radius: var(--bs-border-radius-pill) !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n.z-n1 {\n z-index: -1 !important;\n}\n\n.z-0 {\n z-index: 0 !important;\n}\n\n.z-1 {\n z-index: 1 !important;\n}\n\n.z-2 {\n z-index: 2 !important;\n}\n\n.z-3 {\n z-index: 3 !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-start {\n float: left !important;\n }\n .float-sm-end {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n .object-fit-sm-contain {\n object-fit: contain !important;\n }\n .object-fit-sm-cover {\n object-fit: cover !important;\n }\n .object-fit-sm-fill {\n object-fit: fill !important;\n }\n .object-fit-sm-scale {\n object-fit: scale-down !important;\n }\n .object-fit-sm-none {\n object-fit: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-grid {\n display: grid !important;\n }\n .d-sm-inline-grid {\n display: inline-grid !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n .d-sm-none {\n display: none !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .justify-content-sm-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n .order-sm-first {\n order: -1 !important;\n }\n .order-sm-0 {\n order: 0 !important;\n }\n .order-sm-1 {\n order: 1 !important;\n }\n .order-sm-2 {\n order: 2 !important;\n }\n .order-sm-3 {\n order: 3 !important;\n }\n .order-sm-4 {\n order: 4 !important;\n }\n .order-sm-5 {\n order: 5 !important;\n }\n .order-sm-last {\n order: 6 !important;\n }\n .m-sm-0 {\n margin: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mx-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-sm-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-sm-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-sm-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-sm-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-sm-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-sm-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-sm-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-sm-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-sm-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-sm-0 {\n margin-top: 0 !important;\n }\n .mt-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mt-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mt-sm-3 {\n margin-top: 1rem !important;\n }\n .mt-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mt-sm-5 {\n margin-top: 3rem !important;\n }\n .mt-sm-auto {\n margin-top: auto !important;\n }\n .me-sm-0 {\n margin-right: 0 !important;\n }\n .me-sm-1 {\n margin-right: 0.25rem !important;\n }\n .me-sm-2 {\n margin-right: 0.5rem !important;\n }\n .me-sm-3 {\n margin-right: 1rem !important;\n }\n .me-sm-4 {\n margin-right: 1.5rem !important;\n }\n .me-sm-5 {\n margin-right: 3rem !important;\n }\n .me-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-0 {\n margin-bottom: 0 !important;\n }\n .mb-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-sm-3 {\n margin-bottom: 1rem !important;\n }\n .mb-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-sm-5 {\n margin-bottom: 3rem !important;\n }\n .mb-sm-auto {\n margin-bottom: auto !important;\n }\n .ms-sm-0 {\n margin-left: 0 !important;\n }\n .ms-sm-1 {\n margin-left: 0.25rem !important;\n }\n .ms-sm-2 {\n margin-left: 0.5rem !important;\n }\n .ms-sm-3 {\n margin-left: 1rem !important;\n }\n .ms-sm-4 {\n margin-left: 1.5rem !important;\n }\n .ms-sm-5 {\n margin-left: 3rem !important;\n }\n .ms-sm-auto {\n margin-left: auto !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .px-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-sm-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-sm-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-sm-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-sm-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-sm-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-sm-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-sm-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-sm-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-sm-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-sm-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-sm-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-sm-0 {\n padding-top: 0 !important;\n }\n .pt-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pt-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pt-sm-3 {\n padding-top: 1rem !important;\n }\n .pt-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pt-sm-5 {\n padding-top: 3rem !important;\n }\n .pe-sm-0 {\n padding-right: 0 !important;\n }\n .pe-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pe-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pe-sm-3 {\n padding-right: 1rem !important;\n }\n .pe-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pe-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-0 {\n padding-bottom: 0 !important;\n }\n .pb-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pb-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-sm-5 {\n padding-bottom: 3rem !important;\n }\n .ps-sm-0 {\n padding-left: 0 !important;\n }\n .ps-sm-1 {\n padding-left: 0.25rem !important;\n }\n .ps-sm-2 {\n padding-left: 0.5rem !important;\n }\n .ps-sm-3 {\n padding-left: 1rem !important;\n }\n .ps-sm-4 {\n padding-left: 1.5rem !important;\n }\n .ps-sm-5 {\n padding-left: 3rem !important;\n }\n .gap-sm-0 {\n gap: 0 !important;\n }\n .gap-sm-1 {\n gap: 0.25rem !important;\n }\n .gap-sm-2 {\n gap: 0.5rem !important;\n }\n .gap-sm-3 {\n gap: 1rem !important;\n }\n .gap-sm-4 {\n gap: 1.5rem !important;\n }\n .gap-sm-5 {\n gap: 3rem !important;\n }\n .row-gap-sm-0 {\n row-gap: 0 !important;\n }\n .row-gap-sm-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-sm-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-sm-3 {\n row-gap: 1rem !important;\n }\n .row-gap-sm-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-sm-5 {\n row-gap: 3rem !important;\n }\n .column-gap-sm-0 {\n column-gap: 0 !important;\n }\n .column-gap-sm-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-sm-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-sm-3 {\n column-gap: 1rem !important;\n }\n .column-gap-sm-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-sm-5 {\n column-gap: 3rem !important;\n }\n .text-sm-start {\n text-align: left !important;\n }\n .text-sm-end {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n@media (min-width: 768px) {\n .float-md-start {\n float: left !important;\n }\n .float-md-end {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n .object-fit-md-contain {\n object-fit: contain !important;\n }\n .object-fit-md-cover {\n object-fit: cover !important;\n }\n .object-fit-md-fill {\n object-fit: fill !important;\n }\n .object-fit-md-scale {\n object-fit: scale-down !important;\n }\n .object-fit-md-none {\n object-fit: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-grid {\n display: grid !important;\n }\n .d-md-inline-grid {\n display: inline-grid !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n .d-md-none {\n display: none !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .justify-content-md-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n .order-md-first {\n order: -1 !important;\n }\n .order-md-0 {\n order: 0 !important;\n }\n .order-md-1 {\n order: 1 !important;\n }\n .order-md-2 {\n order: 2 !important;\n }\n .order-md-3 {\n order: 3 !important;\n }\n .order-md-4 {\n order: 4 !important;\n }\n .order-md-5 {\n order: 5 !important;\n }\n .order-md-last {\n order: 6 !important;\n }\n .m-md-0 {\n margin: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mx-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-md-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-md-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-md-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-md-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-md-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-md-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-md-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-md-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-md-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-md-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-md-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-md-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-md-0 {\n margin-top: 0 !important;\n }\n .mt-md-1 {\n margin-top: 0.25rem !important;\n }\n .mt-md-2 {\n margin-top: 0.5rem !important;\n }\n .mt-md-3 {\n margin-top: 1rem !important;\n }\n .mt-md-4 {\n margin-top: 1.5rem !important;\n }\n .mt-md-5 {\n margin-top: 3rem !important;\n }\n .mt-md-auto {\n margin-top: auto !important;\n }\n .me-md-0 {\n margin-right: 0 !important;\n }\n .me-md-1 {\n margin-right: 0.25rem !important;\n }\n .me-md-2 {\n margin-right: 0.5rem !important;\n }\n .me-md-3 {\n margin-right: 1rem !important;\n }\n .me-md-4 {\n margin-right: 1.5rem !important;\n }\n .me-md-5 {\n margin-right: 3rem !important;\n }\n .me-md-auto {\n margin-right: auto !important;\n }\n .mb-md-0 {\n margin-bottom: 0 !important;\n }\n .mb-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-md-3 {\n margin-bottom: 1rem !important;\n }\n .mb-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-md-5 {\n margin-bottom: 3rem !important;\n }\n .mb-md-auto {\n margin-bottom: auto !important;\n }\n .ms-md-0 {\n margin-left: 0 !important;\n }\n .ms-md-1 {\n margin-left: 0.25rem !important;\n }\n .ms-md-2 {\n margin-left: 0.5rem !important;\n }\n .ms-md-3 {\n margin-left: 1rem !important;\n }\n .ms-md-4 {\n margin-left: 1.5rem !important;\n }\n .ms-md-5 {\n margin-left: 3rem !important;\n }\n .ms-md-auto {\n margin-left: auto !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .px-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-md-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-md-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-md-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-md-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-md-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-md-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-md-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-md-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-md-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-md-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-md-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-md-0 {\n padding-top: 0 !important;\n }\n .pt-md-1 {\n padding-top: 0.25rem !important;\n }\n .pt-md-2 {\n padding-top: 0.5rem !important;\n }\n .pt-md-3 {\n padding-top: 1rem !important;\n }\n .pt-md-4 {\n padding-top: 1.5rem !important;\n }\n .pt-md-5 {\n padding-top: 3rem !important;\n }\n .pe-md-0 {\n padding-right: 0 !important;\n }\n .pe-md-1 {\n padding-right: 0.25rem !important;\n }\n .pe-md-2 {\n padding-right: 0.5rem !important;\n }\n .pe-md-3 {\n padding-right: 1rem !important;\n }\n .pe-md-4 {\n padding-right: 1.5rem !important;\n }\n .pe-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-0 {\n padding-bottom: 0 !important;\n }\n .pb-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-md-3 {\n padding-bottom: 1rem !important;\n }\n .pb-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-md-5 {\n padding-bottom: 3rem !important;\n }\n .ps-md-0 {\n padding-left: 0 !important;\n }\n .ps-md-1 {\n padding-left: 0.25rem !important;\n }\n .ps-md-2 {\n padding-left: 0.5rem !important;\n }\n .ps-md-3 {\n padding-left: 1rem !important;\n }\n .ps-md-4 {\n padding-left: 1.5rem !important;\n }\n .ps-md-5 {\n padding-left: 3rem !important;\n }\n .gap-md-0 {\n gap: 0 !important;\n }\n .gap-md-1 {\n gap: 0.25rem !important;\n }\n .gap-md-2 {\n gap: 0.5rem !important;\n }\n .gap-md-3 {\n gap: 1rem !important;\n }\n .gap-md-4 {\n gap: 1.5rem !important;\n }\n .gap-md-5 {\n gap: 3rem !important;\n }\n .row-gap-md-0 {\n row-gap: 0 !important;\n }\n .row-gap-md-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-md-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-md-3 {\n row-gap: 1rem !important;\n }\n .row-gap-md-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-md-5 {\n row-gap: 3rem !important;\n }\n .column-gap-md-0 {\n column-gap: 0 !important;\n }\n .column-gap-md-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-md-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-md-3 {\n column-gap: 1rem !important;\n }\n .column-gap-md-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-md-5 {\n column-gap: 3rem !important;\n }\n .text-md-start {\n text-align: left !important;\n }\n .text-md-end {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n@media (min-width: 992px) {\n .float-lg-start {\n float: left !important;\n }\n .float-lg-end {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n .object-fit-lg-contain {\n object-fit: contain !important;\n }\n .object-fit-lg-cover {\n object-fit: cover !important;\n }\n .object-fit-lg-fill {\n object-fit: fill !important;\n }\n .object-fit-lg-scale {\n object-fit: scale-down !important;\n }\n .object-fit-lg-none {\n object-fit: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-grid {\n display: grid !important;\n }\n .d-lg-inline-grid {\n display: inline-grid !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n .d-lg-none {\n display: none !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .justify-content-lg-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n .order-lg-first {\n order: -1 !important;\n }\n .order-lg-0 {\n order: 0 !important;\n }\n .order-lg-1 {\n order: 1 !important;\n }\n .order-lg-2 {\n order: 2 !important;\n }\n .order-lg-3 {\n order: 3 !important;\n }\n .order-lg-4 {\n order: 4 !important;\n }\n .order-lg-5 {\n order: 5 !important;\n }\n .order-lg-last {\n order: 6 !important;\n }\n .m-lg-0 {\n margin: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mx-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-lg-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-lg-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-lg-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-lg-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-lg-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-lg-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-lg-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-lg-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-lg-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-lg-0 {\n margin-top: 0 !important;\n }\n .mt-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mt-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mt-lg-3 {\n margin-top: 1rem !important;\n }\n .mt-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mt-lg-5 {\n margin-top: 3rem !important;\n }\n .mt-lg-auto {\n margin-top: auto !important;\n }\n .me-lg-0 {\n margin-right: 0 !important;\n }\n .me-lg-1 {\n margin-right: 0.25rem !important;\n }\n .me-lg-2 {\n margin-right: 0.5rem !important;\n }\n .me-lg-3 {\n margin-right: 1rem !important;\n }\n .me-lg-4 {\n margin-right: 1.5rem !important;\n }\n .me-lg-5 {\n margin-right: 3rem !important;\n }\n .me-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-0 {\n margin-bottom: 0 !important;\n }\n .mb-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-lg-3 {\n margin-bottom: 1rem !important;\n }\n .mb-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-lg-5 {\n margin-bottom: 3rem !important;\n }\n .mb-lg-auto {\n margin-bottom: auto !important;\n }\n .ms-lg-0 {\n margin-left: 0 !important;\n }\n .ms-lg-1 {\n margin-left: 0.25rem !important;\n }\n .ms-lg-2 {\n margin-left: 0.5rem !important;\n }\n .ms-lg-3 {\n margin-left: 1rem !important;\n }\n .ms-lg-4 {\n margin-left: 1.5rem !important;\n }\n .ms-lg-5 {\n margin-left: 3rem !important;\n }\n .ms-lg-auto {\n margin-left: auto !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .px-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-lg-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-lg-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-lg-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-lg-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-lg-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-lg-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-lg-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-lg-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-lg-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-lg-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-lg-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-lg-0 {\n padding-top: 0 !important;\n }\n .pt-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pt-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pt-lg-3 {\n padding-top: 1rem !important;\n }\n .pt-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pt-lg-5 {\n padding-top: 3rem !important;\n }\n .pe-lg-0 {\n padding-right: 0 !important;\n }\n .pe-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pe-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pe-lg-3 {\n padding-right: 1rem !important;\n }\n .pe-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pe-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-0 {\n padding-bottom: 0 !important;\n }\n .pb-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pb-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-lg-5 {\n padding-bottom: 3rem !important;\n }\n .ps-lg-0 {\n padding-left: 0 !important;\n }\n .ps-lg-1 {\n padding-left: 0.25rem !important;\n }\n .ps-lg-2 {\n padding-left: 0.5rem !important;\n }\n .ps-lg-3 {\n padding-left: 1rem !important;\n }\n .ps-lg-4 {\n padding-left: 1.5rem !important;\n }\n .ps-lg-5 {\n padding-left: 3rem !important;\n }\n .gap-lg-0 {\n gap: 0 !important;\n }\n .gap-lg-1 {\n gap: 0.25rem !important;\n }\n .gap-lg-2 {\n gap: 0.5rem !important;\n }\n .gap-lg-3 {\n gap: 1rem !important;\n }\n .gap-lg-4 {\n gap: 1.5rem !important;\n }\n .gap-lg-5 {\n gap: 3rem !important;\n }\n .row-gap-lg-0 {\n row-gap: 0 !important;\n }\n .row-gap-lg-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-lg-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-lg-3 {\n row-gap: 1rem !important;\n }\n .row-gap-lg-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-lg-5 {\n row-gap: 3rem !important;\n }\n .column-gap-lg-0 {\n column-gap: 0 !important;\n }\n .column-gap-lg-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-lg-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-lg-3 {\n column-gap: 1rem !important;\n }\n .column-gap-lg-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-lg-5 {\n column-gap: 3rem !important;\n }\n .text-lg-start {\n text-align: left !important;\n }\n .text-lg-end {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .float-xl-start {\n float: left !important;\n }\n .float-xl-end {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n .object-fit-xl-contain {\n object-fit: contain !important;\n }\n .object-fit-xl-cover {\n object-fit: cover !important;\n }\n .object-fit-xl-fill {\n object-fit: fill !important;\n }\n .object-fit-xl-scale {\n object-fit: scale-down !important;\n }\n .object-fit-xl-none {\n object-fit: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-grid {\n display: grid !important;\n }\n .d-xl-inline-grid {\n display: inline-grid !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n .d-xl-none {\n display: none !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .justify-content-xl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n .order-xl-first {\n order: -1 !important;\n }\n .order-xl-0 {\n order: 0 !important;\n }\n .order-xl-1 {\n order: 1 !important;\n }\n .order-xl-2 {\n order: 2 !important;\n }\n .order-xl-3 {\n order: 3 !important;\n }\n .order-xl-4 {\n order: 4 !important;\n }\n .order-xl-5 {\n order: 5 !important;\n }\n .order-xl-last {\n order: 6 !important;\n }\n .m-xl-0 {\n margin: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mx-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xl-0 {\n margin-top: 0 !important;\n }\n .mt-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xl-3 {\n margin-top: 1rem !important;\n }\n .mt-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xl-5 {\n margin-top: 3rem !important;\n }\n .mt-xl-auto {\n margin-top: auto !important;\n }\n .me-xl-0 {\n margin-right: 0 !important;\n }\n .me-xl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xl-3 {\n margin-right: 1rem !important;\n }\n .me-xl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xl-5 {\n margin-right: 3rem !important;\n }\n .me-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xl-auto {\n margin-bottom: auto !important;\n }\n .ms-xl-0 {\n margin-left: 0 !important;\n }\n .ms-xl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xl-3 {\n margin-left: 1rem !important;\n }\n .ms-xl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xl-5 {\n margin-left: 3rem !important;\n }\n .ms-xl-auto {\n margin-left: auto !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .px-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xl-0 {\n padding-top: 0 !important;\n }\n .pt-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xl-3 {\n padding-top: 1rem !important;\n }\n .pt-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xl-5 {\n padding-top: 3rem !important;\n }\n .pe-xl-0 {\n padding-right: 0 !important;\n }\n .pe-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xl-3 {\n padding-right: 1rem !important;\n }\n .pe-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xl-0 {\n padding-left: 0 !important;\n }\n .ps-xl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xl-3 {\n padding-left: 1rem !important;\n }\n .ps-xl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xl-5 {\n padding-left: 3rem !important;\n }\n .gap-xl-0 {\n gap: 0 !important;\n }\n .gap-xl-1 {\n gap: 0.25rem !important;\n }\n .gap-xl-2 {\n gap: 0.5rem !important;\n }\n .gap-xl-3 {\n gap: 1rem !important;\n }\n .gap-xl-4 {\n gap: 1.5rem !important;\n }\n .gap-xl-5 {\n gap: 3rem !important;\n }\n .row-gap-xl-0 {\n row-gap: 0 !important;\n }\n .row-gap-xl-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-xl-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-xl-3 {\n row-gap: 1rem !important;\n }\n .row-gap-xl-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-xl-5 {\n row-gap: 3rem !important;\n }\n .column-gap-xl-0 {\n column-gap: 0 !important;\n }\n .column-gap-xl-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-xl-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-xl-3 {\n column-gap: 1rem !important;\n }\n .column-gap-xl-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-xl-5 {\n column-gap: 3rem !important;\n }\n .text-xl-start {\n text-align: left !important;\n }\n .text-xl-end {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1400px) {\n .float-xxl-start {\n float: left !important;\n }\n .float-xxl-end {\n float: right !important;\n }\n .float-xxl-none {\n float: none !important;\n }\n .object-fit-xxl-contain {\n object-fit: contain !important;\n }\n .object-fit-xxl-cover {\n object-fit: cover !important;\n }\n .object-fit-xxl-fill {\n object-fit: fill !important;\n }\n .object-fit-xxl-scale {\n object-fit: scale-down !important;\n }\n .object-fit-xxl-none {\n object-fit: none !important;\n }\n .d-xxl-inline {\n display: inline !important;\n }\n .d-xxl-inline-block {\n display: inline-block !important;\n }\n .d-xxl-block {\n display: block !important;\n }\n .d-xxl-grid {\n display: grid !important;\n }\n .d-xxl-inline-grid {\n display: inline-grid !important;\n }\n .d-xxl-table {\n display: table !important;\n }\n .d-xxl-table-row {\n display: table-row !important;\n }\n .d-xxl-table-cell {\n display: table-cell !important;\n }\n .d-xxl-flex {\n display: flex !important;\n }\n .d-xxl-inline-flex {\n display: inline-flex !important;\n }\n .d-xxl-none {\n display: none !important;\n }\n .flex-xxl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xxl-row {\n flex-direction: row !important;\n }\n .flex-xxl-column {\n flex-direction: column !important;\n }\n .flex-xxl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xxl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xxl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xxl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xxl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xxl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .flex-xxl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xxl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xxl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xxl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xxl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xxl-center {\n justify-content: center !important;\n }\n .justify-content-xxl-between {\n justify-content: space-between !important;\n }\n .justify-content-xxl-around {\n justify-content: space-around !important;\n }\n .justify-content-xxl-evenly {\n justify-content: space-evenly !important;\n }\n .align-items-xxl-start {\n align-items: flex-start !important;\n }\n .align-items-xxl-end {\n align-items: flex-end !important;\n }\n .align-items-xxl-center {\n align-items: center !important;\n }\n .align-items-xxl-baseline {\n align-items: baseline !important;\n }\n .align-items-xxl-stretch {\n align-items: stretch !important;\n }\n .align-content-xxl-start {\n align-content: flex-start !important;\n }\n .align-content-xxl-end {\n align-content: flex-end !important;\n }\n .align-content-xxl-center {\n align-content: center !important;\n }\n .align-content-xxl-between {\n align-content: space-between !important;\n }\n .align-content-xxl-around {\n align-content: space-around !important;\n }\n .align-content-xxl-stretch {\n align-content: stretch !important;\n }\n .align-self-xxl-auto {\n align-self: auto !important;\n }\n .align-self-xxl-start {\n align-self: flex-start !important;\n }\n .align-self-xxl-end {\n align-self: flex-end !important;\n }\n .align-self-xxl-center {\n align-self: center !important;\n }\n .align-self-xxl-baseline {\n align-self: baseline !important;\n }\n .align-self-xxl-stretch {\n align-self: stretch !important;\n }\n .order-xxl-first {\n order: -1 !important;\n }\n .order-xxl-0 {\n order: 0 !important;\n }\n .order-xxl-1 {\n order: 1 !important;\n }\n .order-xxl-2 {\n order: 2 !important;\n }\n .order-xxl-3 {\n order: 3 !important;\n }\n .order-xxl-4 {\n order: 4 !important;\n }\n .order-xxl-5 {\n order: 5 !important;\n }\n .order-xxl-last {\n order: 6 !important;\n }\n .m-xxl-0 {\n margin: 0 !important;\n }\n .m-xxl-1 {\n margin: 0.25rem !important;\n }\n .m-xxl-2 {\n margin: 0.5rem !important;\n }\n .m-xxl-3 {\n margin: 1rem !important;\n }\n .m-xxl-4 {\n margin: 1.5rem !important;\n }\n .m-xxl-5 {\n margin: 3rem !important;\n }\n .m-xxl-auto {\n margin: auto !important;\n }\n .mx-xxl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .mx-xxl-1 {\n margin-right: 0.25rem !important;\n margin-left: 0.25rem !important;\n }\n .mx-xxl-2 {\n margin-right: 0.5rem !important;\n margin-left: 0.5rem !important;\n }\n .mx-xxl-3 {\n margin-right: 1rem !important;\n margin-left: 1rem !important;\n }\n .mx-xxl-4 {\n margin-right: 1.5rem !important;\n margin-left: 1.5rem !important;\n }\n .mx-xxl-5 {\n margin-right: 3rem !important;\n margin-left: 3rem !important;\n }\n .mx-xxl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n .my-xxl-0 {\n margin-top: 0 !important;\n margin-bottom: 0 !important;\n }\n .my-xxl-1 {\n margin-top: 0.25rem !important;\n margin-bottom: 0.25rem !important;\n }\n .my-xxl-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n }\n .my-xxl-3 {\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n .my-xxl-4 {\n margin-top: 1.5rem !important;\n margin-bottom: 1.5rem !important;\n }\n .my-xxl-5 {\n margin-top: 3rem !important;\n margin-bottom: 3rem !important;\n }\n .my-xxl-auto {\n margin-top: auto !important;\n margin-bottom: auto !important;\n }\n .mt-xxl-0 {\n margin-top: 0 !important;\n }\n .mt-xxl-1 {\n margin-top: 0.25rem !important;\n }\n .mt-xxl-2 {\n margin-top: 0.5rem !important;\n }\n .mt-xxl-3 {\n margin-top: 1rem !important;\n }\n .mt-xxl-4 {\n margin-top: 1.5rem !important;\n }\n .mt-xxl-5 {\n margin-top: 3rem !important;\n }\n .mt-xxl-auto {\n margin-top: auto !important;\n }\n .me-xxl-0 {\n margin-right: 0 !important;\n }\n .me-xxl-1 {\n margin-right: 0.25rem !important;\n }\n .me-xxl-2 {\n margin-right: 0.5rem !important;\n }\n .me-xxl-3 {\n margin-right: 1rem !important;\n }\n .me-xxl-4 {\n margin-right: 1.5rem !important;\n }\n .me-xxl-5 {\n margin-right: 3rem !important;\n }\n .me-xxl-auto {\n margin-right: auto !important;\n }\n .mb-xxl-0 {\n margin-bottom: 0 !important;\n }\n .mb-xxl-1 {\n margin-bottom: 0.25rem !important;\n }\n .mb-xxl-2 {\n margin-bottom: 0.5rem !important;\n }\n .mb-xxl-3 {\n margin-bottom: 1rem !important;\n }\n .mb-xxl-4 {\n margin-bottom: 1.5rem !important;\n }\n .mb-xxl-5 {\n margin-bottom: 3rem !important;\n }\n .mb-xxl-auto {\n margin-bottom: auto !important;\n }\n .ms-xxl-0 {\n margin-left: 0 !important;\n }\n .ms-xxl-1 {\n margin-left: 0.25rem !important;\n }\n .ms-xxl-2 {\n margin-left: 0.5rem !important;\n }\n .ms-xxl-3 {\n margin-left: 1rem !important;\n }\n .ms-xxl-4 {\n margin-left: 1.5rem !important;\n }\n .ms-xxl-5 {\n margin-left: 3rem !important;\n }\n .ms-xxl-auto {\n margin-left: auto !important;\n }\n .p-xxl-0 {\n padding: 0 !important;\n }\n .p-xxl-1 {\n padding: 0.25rem !important;\n }\n .p-xxl-2 {\n padding: 0.5rem !important;\n }\n .p-xxl-3 {\n padding: 1rem !important;\n }\n .p-xxl-4 {\n padding: 1.5rem !important;\n }\n .p-xxl-5 {\n padding: 3rem !important;\n }\n .px-xxl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .px-xxl-1 {\n padding-right: 0.25rem !important;\n padding-left: 0.25rem !important;\n }\n .px-xxl-2 {\n padding-right: 0.5rem !important;\n padding-left: 0.5rem !important;\n }\n .px-xxl-3 {\n padding-right: 1rem !important;\n padding-left: 1rem !important;\n }\n .px-xxl-4 {\n padding-right: 1.5rem !important;\n padding-left: 1.5rem !important;\n }\n .px-xxl-5 {\n padding-right: 3rem !important;\n padding-left: 3rem !important;\n }\n .py-xxl-0 {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n }\n .py-xxl-1 {\n padding-top: 0.25rem !important;\n padding-bottom: 0.25rem !important;\n }\n .py-xxl-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n }\n .py-xxl-3 {\n padding-top: 1rem !important;\n padding-bottom: 1rem !important;\n }\n .py-xxl-4 {\n padding-top: 1.5rem !important;\n padding-bottom: 1.5rem !important;\n }\n .py-xxl-5 {\n padding-top: 3rem !important;\n padding-bottom: 3rem !important;\n }\n .pt-xxl-0 {\n padding-top: 0 !important;\n }\n .pt-xxl-1 {\n padding-top: 0.25rem !important;\n }\n .pt-xxl-2 {\n padding-top: 0.5rem !important;\n }\n .pt-xxl-3 {\n padding-top: 1rem !important;\n }\n .pt-xxl-4 {\n padding-top: 1.5rem !important;\n }\n .pt-xxl-5 {\n padding-top: 3rem !important;\n }\n .pe-xxl-0 {\n padding-right: 0 !important;\n }\n .pe-xxl-1 {\n padding-right: 0.25rem !important;\n }\n .pe-xxl-2 {\n padding-right: 0.5rem !important;\n }\n .pe-xxl-3 {\n padding-right: 1rem !important;\n }\n .pe-xxl-4 {\n padding-right: 1.5rem !important;\n }\n .pe-xxl-5 {\n padding-right: 3rem !important;\n }\n .pb-xxl-0 {\n padding-bottom: 0 !important;\n }\n .pb-xxl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pb-xxl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pb-xxl-3 {\n padding-bottom: 1rem !important;\n }\n .pb-xxl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pb-xxl-5 {\n padding-bottom: 3rem !important;\n }\n .ps-xxl-0 {\n padding-left: 0 !important;\n }\n .ps-xxl-1 {\n padding-left: 0.25rem !important;\n }\n .ps-xxl-2 {\n padding-left: 0.5rem !important;\n }\n .ps-xxl-3 {\n padding-left: 1rem !important;\n }\n .ps-xxl-4 {\n padding-left: 1.5rem !important;\n }\n .ps-xxl-5 {\n padding-left: 3rem !important;\n }\n .gap-xxl-0 {\n gap: 0 !important;\n }\n .gap-xxl-1 {\n gap: 0.25rem !important;\n }\n .gap-xxl-2 {\n gap: 0.5rem !important;\n }\n .gap-xxl-3 {\n gap: 1rem !important;\n }\n .gap-xxl-4 {\n gap: 1.5rem !important;\n }\n .gap-xxl-5 {\n gap: 3rem !important;\n }\n .row-gap-xxl-0 {\n row-gap: 0 !important;\n }\n .row-gap-xxl-1 {\n row-gap: 0.25rem !important;\n }\n .row-gap-xxl-2 {\n row-gap: 0.5rem !important;\n }\n .row-gap-xxl-3 {\n row-gap: 1rem !important;\n }\n .row-gap-xxl-4 {\n row-gap: 1.5rem !important;\n }\n .row-gap-xxl-5 {\n row-gap: 3rem !important;\n }\n .column-gap-xxl-0 {\n column-gap: 0 !important;\n }\n .column-gap-xxl-1 {\n column-gap: 0.25rem !important;\n }\n .column-gap-xxl-2 {\n column-gap: 0.5rem !important;\n }\n .column-gap-xxl-3 {\n column-gap: 1rem !important;\n }\n .column-gap-xxl-4 {\n column-gap: 1.5rem !important;\n }\n .column-gap-xxl-5 {\n column-gap: 3rem !important;\n }\n .text-xxl-start {\n text-align: left !important;\n }\n .text-xxl-end {\n text-align: right !important;\n }\n .text-xxl-center {\n text-align: center !important;\n }\n}\n@media (min-width: 1200px) {\n .fs-1 {\n font-size: 2.5rem !important;\n }\n .fs-2 {\n font-size: 2rem !important;\n }\n .fs-3 {\n font-size: 1.75rem !important;\n }\n .fs-4 {\n font-size: 1.5rem !important;\n }\n}\n@media print {\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-grid {\n display: grid !important;\n }\n .d-print-inline-grid {\n display: inline-grid !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n .d-print-none {\n display: none !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */\n","@mixin bsBanner($file) {\n /*!\n * Bootstrap #{$file} v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n}\n",":root,\n[data-bs-theme=\"light\"] {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$prefix}#{$color}-rgb: #{$value};\n }\n\n @each $color, $value in $theme-colors-text {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}white-rgb: #{to-rgb($white)};\n --#{$prefix}black-rgb: #{to-rgb($black)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$prefix}gradient: #{$gradient};\n\n // Root and body\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$prefix}root-font-size: #{$font-size-root};\n }\n --#{$prefix}body-font-family: #{inspect($font-family-base)};\n @include rfs($font-size-base, --#{$prefix}body-font-size);\n --#{$prefix}body-font-weight: #{$font-weight-base};\n --#{$prefix}body-line-height: #{$line-height-base};\n @if $body-text-align != null {\n --#{$prefix}body-text-align: #{$body-text-align};\n }\n\n --#{$prefix}body-color: #{$body-color};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color)};\n --#{$prefix}body-bg: #{$body-bg};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg)};\n // scss-docs-end root-body-variables\n\n --#{$prefix}heading-color: #{$headings-color};\n\n --#{$prefix}link-color: #{$link-color};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color)};\n --#{$prefix}link-decoration: #{$link-decoration};\n\n --#{$prefix}link-hover-color: #{$link-hover-color};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color)};\n\n @if $link-hover-decoration != null {\n --#{$prefix}link-hover-decoration: #{$link-hover-decoration};\n }\n\n --#{$prefix}code-color: #{$code-color};\n --#{$prefix}highlight-color: #{$mark-color};\n --#{$prefix}highlight-bg: #{$mark-bg};\n\n // scss-docs-start root-border-var\n --#{$prefix}border-width: #{$border-width};\n --#{$prefix}border-style: #{$border-style};\n --#{$prefix}border-color: #{$border-color};\n --#{$prefix}border-color-translucent: #{$border-color-translucent};\n\n --#{$prefix}border-radius: #{$border-radius};\n --#{$prefix}border-radius-sm: #{$border-radius-sm};\n --#{$prefix}border-radius-lg: #{$border-radius-lg};\n --#{$prefix}border-radius-xl: #{$border-radius-xl};\n --#{$prefix}border-radius-xxl: #{$border-radius-xxl};\n --#{$prefix}border-radius-2xl: var(--#{$prefix}border-radius-xxl); // Deprecated in v5.3.0 for consistency\n --#{$prefix}border-radius-pill: #{$border-radius-pill};\n // scss-docs-end root-border-var\n\n --#{$prefix}box-shadow: #{$box-shadow};\n --#{$prefix}box-shadow-sm: #{$box-shadow-sm};\n --#{$prefix}box-shadow-lg: #{$box-shadow-lg};\n --#{$prefix}box-shadow-inset: #{$box-shadow-inset};\n\n // Focus styles\n // scss-docs-start root-focus-variables\n --#{$prefix}focus-ring-width: #{$focus-ring-width};\n --#{$prefix}focus-ring-opacity: #{$focus-ring-opacity};\n --#{$prefix}focus-ring-color: #{$focus-ring-color};\n // scss-docs-end root-focus-variables\n\n // scss-docs-start root-form-validation-variables\n --#{$prefix}form-valid-color: #{$form-valid-color};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color};\n --#{$prefix}form-invalid-color: #{$form-invalid-color};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color};\n // scss-docs-end root-form-validation-variables\n}\n\n@if $enable-dark-mode {\n @include color-mode(dark, true) {\n color-scheme: dark;\n\n // scss-docs-start root-dark-mode-vars\n --#{$prefix}body-color: #{$body-color-dark};\n --#{$prefix}body-color-rgb: #{to-rgb($body-color-dark)};\n --#{$prefix}body-bg: #{$body-bg-dark};\n --#{$prefix}body-bg-rgb: #{to-rgb($body-bg-dark)};\n\n --#{$prefix}emphasis-color: #{$body-emphasis-color-dark};\n --#{$prefix}emphasis-color-rgb: #{to-rgb($body-emphasis-color-dark)};\n\n --#{$prefix}secondary-color: #{$body-secondary-color-dark};\n --#{$prefix}secondary-color-rgb: #{to-rgb($body-secondary-color-dark)};\n --#{$prefix}secondary-bg: #{$body-secondary-bg-dark};\n --#{$prefix}secondary-bg-rgb: #{to-rgb($body-secondary-bg-dark)};\n\n --#{$prefix}tertiary-color: #{$body-tertiary-color-dark};\n --#{$prefix}tertiary-color-rgb: #{to-rgb($body-tertiary-color-dark)};\n --#{$prefix}tertiary-bg: #{$body-tertiary-bg-dark};\n --#{$prefix}tertiary-bg-rgb: #{to-rgb($body-tertiary-bg-dark)};\n\n @each $color, $value in $theme-colors-text-dark {\n --#{$prefix}#{$color}-text-emphasis: #{$value};\n }\n\n @each $color, $value in $theme-colors-bg-subtle-dark {\n --#{$prefix}#{$color}-bg-subtle: #{$value};\n }\n\n @each $color, $value in $theme-colors-border-subtle-dark {\n --#{$prefix}#{$color}-border-subtle: #{$value};\n }\n\n --#{$prefix}heading-color: #{$headings-color-dark};\n\n --#{$prefix}link-color: #{$link-color-dark};\n --#{$prefix}link-hover-color: #{$link-hover-color-dark};\n --#{$prefix}link-color-rgb: #{to-rgb($link-color-dark)};\n --#{$prefix}link-hover-color-rgb: #{to-rgb($link-hover-color-dark)};\n\n --#{$prefix}code-color: #{$code-color-dark};\n --#{$prefix}highlight-color: #{$mark-color-dark};\n --#{$prefix}highlight-bg: #{$mark-bg-dark};\n\n --#{$prefix}border-color: #{$border-color-dark};\n --#{$prefix}border-color-translucent: #{$border-color-translucent-dark};\n\n --#{$prefix}form-valid-color: #{$form-valid-color-dark};\n --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark};\n --#{$prefix}form-invalid-color: #{$form-invalid-color-dark};\n --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark};\n // scss-docs-end root-dark-mode-vars\n }\n}\n","// stylelint-disable scss/dimension-no-non-numeric-values\n\n// SCSS RFS mixin\n//\n// Automated responsive values for font sizes, paddings, margins and much more\n//\n// Licensed under MIT (https://github.com/twbs/rfs/blob/main/LICENSE)\n\n// Configuration\n\n// Base value\n$rfs-base-value: 1.25rem !default;\n$rfs-unit: rem !default;\n\n@if $rfs-unit != rem and $rfs-unit != px {\n @error \"`#{$rfs-unit}` is not a valid unit for $rfs-unit. Use `px` or `rem`.\";\n}\n\n// Breakpoint at where values start decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n@if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n}\n\n// Resize values based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != number or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Mode. Possibilities: \"min-media-query\", \"max-media-query\"\n$rfs-mode: min-media-query !default;\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-rfs to false\n$enable-rfs: true !default;\n\n// Cache $rfs-base-value unit\n$rfs-base-value-unit: unit($rfs-base-value);\n\n@function divide($dividend, $divisor, $precision: 10) {\n $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);\n $dividend: abs($dividend);\n $divisor: abs($divisor);\n @if $dividend == 0 {\n @return 0;\n }\n @if $divisor == 0 {\n @error \"Cannot divide by 0\";\n }\n $remainder: $dividend;\n $result: 0;\n $factor: 10;\n @while ($remainder > 0 and $precision >= 0) {\n $quotient: 0;\n @while ($remainder >= $divisor) {\n $remainder: $remainder - $divisor;\n $quotient: $quotient + 1;\n }\n $result: $result * 10 + $quotient;\n $factor: $factor * .1;\n $remainder: $remainder * 10;\n $precision: $precision - 1;\n @if ($precision < 0 and $remainder >= $divisor * 5) {\n $result: $result + 1;\n }\n }\n $result: $result * $factor * $sign;\n $dividend-unit: unit($dividend);\n $divisor-unit: unit($divisor);\n $unit-map: (\n \"px\": 1px,\n \"rem\": 1rem,\n \"em\": 1em,\n \"%\": 1%\n );\n @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {\n $result: $result * map-get($unit-map, $dividend-unit);\n }\n @return $result;\n}\n\n// Remove px-unit from $rfs-base-value for calculations\n@if $rfs-base-value-unit == px {\n $rfs-base-value: divide($rfs-base-value, $rfs-base-value * 0 + 1);\n}\n@else if $rfs-base-value-unit == rem {\n $rfs-base-value: divide($rfs-base-value, divide($rfs-base-value * 0 + 1, $rfs-rem-value));\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == px {\n $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == rem or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));\n}\n\n// Calculate the media query value\n$rfs-mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});\n$rfs-mq-property-width: if($rfs-mode == max-media-query, max-width, min-width);\n$rfs-mq-property-height: if($rfs-mode == max-media-query, max-height, min-height);\n\n// Internal mixin used to determine which media query needs to be used\n@mixin _rfs-media-query {\n @if $rfs-two-dimensional {\n @if $rfs-mode == max-media-query {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}), (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) and (#{$rfs-mq-property-height}: #{$rfs-mq-value}) {\n @content;\n }\n }\n }\n @else {\n @media (#{$rfs-mq-property-width}: #{$rfs-mq-value}) {\n @content;\n }\n }\n}\n\n// Internal mixin that adds disable classes to the selector if needed.\n@mixin _rfs-rule {\n @if $rfs-class == disable and $rfs-mode == max-media-query {\n // Adding an extra class increases specificity, which prevents the media query to override the property\n &,\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @else if $rfs-class == enable and $rfs-mode == min-media-query {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Internal mixin that adds enable classes to the selector if needed.\n@mixin _rfs-media-query-rule {\n\n @if $rfs-class == enable {\n @if $rfs-mode == min-media-query {\n @content;\n }\n\n @include _rfs-media-query () {\n .enable-rfs &,\n &.enable-rfs {\n @content;\n }\n }\n }\n @else {\n @if $rfs-class == disable and $rfs-mode == min-media-query {\n .disable-rfs &,\n &.disable-rfs {\n @content;\n }\n }\n @include _rfs-media-query () {\n @content;\n }\n }\n}\n\n// Helper function to get the formatted non-responsive value\n@function rfs-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n }\n @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n @if $unit == px {\n // Convert to rem if needed\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $value * 0 + $rfs-rem-value)}rem, $value);\n }\n @else if $unit == rem {\n // Convert to px if needed\n $val: $val + \" \" + if($rfs-unit == px, #{divide($value, $value * 0 + 1) * $rfs-rem-value}px, $value);\n } @else {\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n $val: $val + \" \" + $value;\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// Helper function to get the responsive value calculated by RFS\n@function rfs-fluid-value($values) {\n // Convert to list\n $values: if(type-of($values) != list, ($values,), $values);\n\n $val: \"\";\n\n // Loop over each value and calculate value\n @each $value in $values {\n @if $value == 0 {\n $val: $val + \" 0\";\n } @else {\n // Cache $value unit\n $unit: if(type-of($value) == \"number\", unit($value), false);\n\n // If $value isn't a number (like inherit) or $value has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $unit or $unit != px and $unit != rem {\n $val: $val + \" \" + $value;\n } @else {\n // Remove unit from $value for calculations\n $value: divide($value, $value * 0 + if($unit == px, 1, divide(1, $rfs-rem-value)));\n\n // Only add the media query if the value is greater than the minimum value\n @if abs($value) <= $rfs-base-value or not $enable-rfs {\n $val: $val + \" \" + if($rfs-unit == rem, #{divide($value, $rfs-rem-value)}rem, #{$value}px);\n }\n @else {\n // Calculate the minimum value\n $value-min: $rfs-base-value + divide(abs($value) - $rfs-base-value, $rfs-factor);\n\n // Calculate difference between $value and the minimum value\n $value-diff: abs($value) - $value-min;\n\n // Base value formatting\n $min-width: if($rfs-unit == rem, #{divide($value-min, $rfs-rem-value)}rem, #{$value-min}px);\n\n // Use negative value if needed\n $min-width: if($value < 0, -$min-width, $min-width);\n\n // Use `vmin` if two-dimensional is enabled\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{divide($value-diff * 100, $rfs-breakpoint)}#{$variable-unit};\n\n // Return the calculated value\n $val: $val + \" calc(\" + $min-width + if($value < 0, \" - \", \" + \") + $variable-width + \")\";\n }\n }\n }\n }\n\n // Remove first space\n @return unquote(str-slice($val, 2));\n}\n\n// RFS mixin\n@mixin rfs($values, $property: font-size) {\n @if $values != null {\n $val: rfs-value($values);\n $fluid-val: rfs-fluid-value($values);\n\n // Do not print the media query if responsive & non-responsive values are the same\n @if $val == $fluid-val {\n #{$property}: $val;\n }\n @else {\n @include _rfs-rule () {\n #{$property}: if($rfs-mode == max-media-query, $val, $fluid-val);\n\n // Include safari iframe resize fix if needed\n min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);\n }\n\n @include _rfs-media-query-rule () {\n #{$property}: if($rfs-mode == max-media-query, $fluid-val, $val);\n }\n }\n }\n}\n\n// Shorthand helper mixins\n@mixin font-size($value) {\n @include rfs($value);\n}\n\n@mixin padding($value) {\n @include rfs($value, padding);\n}\n\n@mixin padding-top($value) {\n @include rfs($value, padding-top);\n}\n\n@mixin padding-right($value) {\n @include rfs($value, padding-right);\n}\n\n@mixin padding-bottom($value) {\n @include rfs($value, padding-bottom);\n}\n\n@mixin padding-left($value) {\n @include rfs($value, padding-left);\n}\n\n@mixin margin($value) {\n @include rfs($value, margin);\n}\n\n@mixin margin-top($value) {\n @include rfs($value, margin-top);\n}\n\n@mixin margin-right($value) {\n @include rfs($value, margin-right);\n}\n\n@mixin margin-bottom($value) {\n @include rfs($value, margin-bottom);\n}\n\n@mixin margin-left($value) {\n @include rfs($value, margin-left);\n}\n","// scss-docs-start color-mode-mixin\n@mixin color-mode($mode: light, $root: false) {\n @if $color-mode-type == \"media-query\" {\n @if $root == true {\n @media (prefers-color-scheme: $mode) {\n :root {\n @content;\n }\n }\n } @else {\n @media (prefers-color-scheme: $mode) {\n @content;\n }\n }\n } @else {\n [data-bs-theme=\"#{$mode}\"] {\n @content;\n }\n }\n}\n// scss-docs-end color-mode-mixin\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n @include font-size(var(--#{$prefix}root-font-size));\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$prefix}body-font-family);\n @include font-size(var(--#{$prefix}body-font-size));\n font-weight: var(--#{$prefix}body-font-weight);\n line-height: var(--#{$prefix}body-line-height);\n color: var(--#{$prefix}body-color);\n text-align: var(--#{$prefix}body-text-align);\n background-color: var(--#{$prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n opacity: $hr-opacity;\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

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

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 2. Add explicit cursor to indicate changed behavior.\n// 3. Prevent the text-decoration to be skipped.\n\nabbr[title] {\n text-decoration: underline dotted; // 1\n cursor: help; // 2\n text-decoration-skip-ink: none; // 3\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n color: var(--#{$prefix}highlight-color);\n background-color: var(--#{$prefix}highlight-bg);\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: rgba(var(--#{$prefix}link-color-rgb), var(--#{$prefix}link-opacity, 1));\n text-decoration: $link-decoration;\n\n &:hover {\n --#{$prefix}link-color-rgb: var(--#{$prefix}link-hover-color-rgb);\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: var(--#{$prefix}code-color);\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`